From c9ce99f7ba91028c168f38f041825e1d87511c7d Mon Sep 17 00:00:00 2001 From: Aunshon <32583103+Aunshon@users.noreply.github.com> Date: Thu, 20 Jul 2023 10:46:30 +0600 Subject: [PATCH 01/69] Fix: Keep the backword compatibility for `dokan_withdraw_method_additional_info` filter hook --- includes/Withdraw/functions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/Withdraw/functions.php b/includes/Withdraw/functions.php index e519f2b887..27ff4f8801 100644 --- a/includes/Withdraw/functions.php +++ b/includes/Withdraw/functions.php @@ -451,7 +451,7 @@ function dokan_withdraw_get_method_additional_info( $method_key ) { $method_info = ''; } - return apply_filters( 'dokan_withdraw_method_additional_info', $method_info, $method_key, $payment_methods, $no_information ); + return apply_filters( 'dokan_withdraw_method_additional_info', $method_info, $method_key ); } /** From e188af281119229141e3b7208227eac2e675ef84 Mon Sep 17 00:00:00 2001 From: Shazahanul Islam Shohag Date: Tue, 1 Aug 2023 08:43:22 +0600 Subject: [PATCH 02/69] feat: admin settings design update (#1947) * update: field and subsection style update * update: social field update * refactor: commented css code removed * update: copy and documentation button style updated --- src/admin/components/Fields.vue | 49 +++++++++++++++------------- src/admin/components/SecretInput.vue | 2 +- src/admin/pages/Settings.vue | 38 ++++++++++----------- 3 files changed, 45 insertions(+), 44 deletions(-) diff --git a/src/admin/components/Fields.vue b/src/admin/components/Fields.vue index 5ca0f220a2..b73eb2771a 100644 --- a/src/admin/components/Fields.vue +++ b/src/admin/components/Fields.vue @@ -849,23 +849,27 @@ margin-left: 10px; } .dokan-settings-sub-section { - margin-bottom: 30px; + padding: 20px; + border: 1px solid #f3f4f6; + border-bottom: 0; + background: #f9fafb; .sub-section-title { margin: 0; - font-size: 22px; + font-size: 14px; font-family: Roboto, sans-serif; font-weight: 600; - line-height: 26px; + line-height: 1.2; margin-bottom: 8px; } .sub-section-description { margin: 0; - font-size: 15px; + font-size: 13px; font-weight: 300; line-height: 21px; font-family: Roboto, sans-serif; + color: #6B7280; .learn-more-btn { cursor: pointer; @@ -882,10 +886,10 @@ } } .field_contents { - border: 1px solid #B0A7A7; - padding: 14px 30px 18px 27px; + border: 1px solid #f3f4f6; + padding: 15px 20px 15px 20px; border-top: 0; - background: rgba(244, 246, 250, 0.17); + background: #fff; fieldset { display: flex; @@ -895,17 +899,17 @@ flex: 2; .field_heading { - color: #000000; + color: #111827; margin: 0; - font-size: 17px; + font-size: 14px; font-style: normal; font-weight: 600; - line-height: 35px; + line-height: 1.25; font-family: 'Roboto', sans-serif; span { i { - margin: 5px 0 0 5px; + margin: -3px 0 0 5px; } .tooltip { @@ -915,12 +919,13 @@ } .field_desc { - color: #000; + color: #6B7280; margin: 0; + margin-top: 5px; font-size: 13px; font-style: normal; font-weight: 300; - line-height: 17px; + line-height: 1.2; font-family: 'Roboto', sans-serif; a { @@ -989,7 +994,7 @@ .radio_fields { label { - border: 0.882967px solid #B0A7A7; + border: 0.882967px solid #f3f4f6; padding: 10px 15px; display: inline-block; overflow: hidden; @@ -1006,7 +1011,7 @@ } &:last-child { - border-right: 0.882967px solid #B0A7A7; + border-right: 0.882967px solid #f3f4f6; border-top-right-radius: 5px; border-bottom-right-radius: 5px; } @@ -1016,13 +1021,13 @@ background: rgba(182, 206, 254, 0.38); box-sizing: border-box; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.10); - border-color: rgba(3, 58, 163, 0.81); + border-color: rgba(3, 58, 163, 0.41); } } .checked { color: rgba(3, 58, 163, 0.85); - border: 1px solid rgba(3, 58, 163, 0.81); + border: 1px solid rgba(3, 58, 163, 0.21); background: rgba(182, 206, 254, 0.38); box-sizing: border-box; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.10); @@ -1099,7 +1104,7 @@ input[type='text'], input[type='number'], input[type='button'] { - border: 0.957434px solid #686666; + border: 0.957434px solid #E9E9E9; min-height: 32px; box-shadow: 0px 3.82974px 3.82974px rgba(0, 0, 0, 0.10); border-radius: 5px; @@ -1124,7 +1129,7 @@ label.checked { color: rgba(3, 58, 163, 0.85); - border: 1px solid rgba(3, 58, 163, 0.81); + border: 1px solid rgba(3, 58, 163, 0.41); background: rgba(182, 206, 254, 0.38); box-sizing: border-box; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.10); @@ -1157,7 +1162,7 @@ border: 0.82px solid #E5E5E5; padding: 10px 25px; background: rgba(220, 232, 254, 0.38); - box-shadow: 0px 3.28px 3.28px rgba(0, 0, 0, 0.10); + //box-shadow: 0px 3.28px 3.28px rgba(0, 0, 0, 0.10); border-radius: 6.56px; .scl_header { @@ -1232,7 +1237,7 @@ .scl_text, .scl_html { - border: 1px solid #b0a7a7; + border: 1px solid #f3f4f6; display: flex; padding: 10px 30px 15px 27px; border-top: 0; @@ -1300,7 +1305,7 @@ &:nth-child(2) { margin-top: 15px; - border-top: 1px solid #b0a7a7; + border-top: 1px solid #f3f4f6; } &:last-child { diff --git a/src/admin/components/SecretInput.vue b/src/admin/components/SecretInput.vue index b98480c8e9..72bebecb67 100644 --- a/src/admin/components/SecretInput.vue +++ b/src/admin/components/SecretInput.vue @@ -97,7 +97,7 @@ export default { height: 20px; min-height: 32px; min-width: 32px; - border: 0.957434px solid #686666; + border: 1px solid #f3f4f6; box-shadow: 0px 3.82974px 3.82974px rgba(0, 0, 0, 0.1); border-radius: 5px; background: white; diff --git a/src/admin/pages/Settings.vue b/src/admin/pages/Settings.vue index 1a46060ee4..0b08be66f2 100644 --- a/src/admin/pages/Settings.vue +++ b/src/admin/pages/Settings.vue @@ -609,11 +609,9 @@ div.nav-tab-wrapper { width: 340px; - border: 1px solid #c8d7e1; padding: 14px 16px 30px 24px; overflow: hidden; - background: #FAFBFF; - box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); + background: #F9FAFB; box-sizing: border-box; margin-right: 12px; border-bottom: none; @@ -635,7 +633,7 @@ transition:none; background: transparent; font-weight: bold; - border-bottom: 1px solid #cecaca; + border-bottom: 1px solid #e9e9ea; transition-property: none; img { @@ -671,7 +669,7 @@ position: relative; transition: .3s linear; background: #fff !important; - box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); + //box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); transition-property: none; &:before { @@ -684,15 +682,6 @@ top: 0; } - &::after { - content: ''; - position: absolute; - width: 100%; - height: 1px; - background: #cecaca; - left: 0; - top: -1px; - } } &:last-child { @@ -739,16 +728,20 @@ a.doc-link { color: #033AA3D9; - border: 0.82px solid #033AA3; + border: 1px solid #f3f4f6; padding: 10px 15px; font-size: 12px; background: #FFF; box-sizing: border-box; - box-shadow: 0px 3.28px 3.28px rgba(0, 0, 0, 0.25); + box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.1); font-family: Roboto, sans-serif; line-height: 15px; border-radius: 6.56px; text-decoration: none; + + &:hover { + background: #033aa30f; + } } } } @@ -758,17 +751,20 @@ .dokan-settings-fields { .dokan-settings-field-type-sub_section, .dokan-settings-field-type-disbursement_sub_section { - border-bottom: 1px solid #b0a7a7; + border-bottom: 1px solid #f3f4f6; .sub-section-styles { - margin-top: 50px; + margin-top: 20px; + margin-bottom:0; + padding: 20px; + background: #f9fafb; } } div { &:not(.dokan-settings-field-type-sub_section) { .field_contents { - border: 1px solid #b0a7a7; + border: 1px solid #f3f4f6; border-top: none; } } @@ -777,7 +773,7 @@ > div { &:not(.dokan-settings-field-type-sub_section) { &:first-child { - border-top: 1px solid #b0a7a7; + border-top: 1px solid #f3f4f6; } } } @@ -817,7 +813,7 @@ height: 100%; content: ""; position: absolute; - background: #E5E5E5; + background: #fff; } } From 3095cf64ff3f7b6972b57c9808821faa5ec58b75 Mon Sep 17 00:00:00 2001 From: Nurul Umbhiya Date: Thu, 17 Aug 2023 19:27:33 +0600 Subject: [PATCH 03/69] Refactor: High Performance Order Storage (#1833) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: wrong review count on store listing page * refactor: HPOS support for Commission.php file * fix: error while calculating commission by product if the product has been deleted. * refactor: hpos support for order manager class and wc-legacy-functions.php new: introduced a new method named `dokan_is_hpos_enabled` * refactor: HPOS support enabled for Order/functions.php update: rewritten some codebase * refactor: added HPOS support for Order/Hooks.php * refactor: added hpos support for admin/hooks.php file new: added a new order helper utility class * fix: fixed js related issues on order list page * refactor: moved some methods to a separate file * refactor: rewritten some codebase * refactor: moved some methods to corresponding files refactor: refactored some methods * refactor: refactored templates/orders/* files * refactor: some other hpos rewrite * refactor: moved some methods to a separate file, also rewritten some codebase * refactor: moved some methods to a separate file * 🐛 fix(Manager.php): replace $wpdb->posts with $order_table_name in SQL query ✨ feat(Manager.php): add $force_create parameter to maybe_split_orders method The SQL query in line 66 was using $wpdb->posts instead of $order_table_name, which caused an error. The $force_create parameter in the maybe_split_orders method allows the suborders to be deleted and recreated if they already exist. This is useful in cases where the suborders need to be recreated due to changes in the parent order. 🔨 refactor(functions.php): change parameter name and type in dokan_get_seller_id_by_order function This commit changes the parameter name and type in the dokan_get_seller_id_by_order function. The parameter name is changed from $order_id to $order, and its type is changed from int to int|WC_Abstract_Order. The function now checks if the $order parameter is numeric, and if not, it gets the order ID using the get_id() method. This change improves the readability of the code and makes it more consistent with the WordPress coding standards. * 🐛 fix(Order): instantiate OrderCache in Controller class 🔥 refactor(Order): remove instantiation of OrderCache in Hooks class 🐛 fix(Order): use wc_get_order() instead of get_post() in delete_child_order_from_wc_order_product() function 📝 docs(Order): fix typo in comment of dokan_delete_sync_duplicate_order() function * 🚀 feat(Hooks.php): add filters to change order item display meta key and value 🚀 feat(Hooks.php): add manage_refunded_for_order action to woocommerce_order_status_changed event 🔨 refactor(Hooks.php): extract manage_refunded_for_order() method from on_order_status_change() method ✨ feat(Hooks.php): add check for exclude_cod_payment option before entering remaining balance into vendor balance table 🔥 refactor(Hooks.php): remove unused methods delete_child_order_from_wc_order_product, trim_child_order_for_analytics_order, and hide_customer_info_from_vendor_order_export 🎨 style(MiscHooks.php): add use statement for WC_Order class 🔀 chore(MiscHooks.php): move methods from Order/Hooks.php to MiscHooks.php ✨ feat(MiscHooks.php): add delete_child_order_from_wc_order_product method ✨ feat(MiscHooks.php): add trim_child_order_for_analytics_order method ✨ feat(MiscHooks.php): add hide_customer_info_from_vendor_order_export method ✨ feat(MiscHooks.php): add add_vendor_info_in_rest_order method * 🎉 feat(FakeMailer.php): add FakeMailer class to handle email sending functionality 🚀 feat(EmailHooks.php): add exclude_child_customer_receipt function to phpmailer_init action 🔨 refactor(EmailHooks.php): move exclude_child_customer_receipt method from includes/wc-functions.php to EmailHooks class 🔥 chore(wc-functions.php): remove dokan_exclude_child_customer_receipt function and DokanFakeMailer class * ✨ feat(Controller.php): add Frontend\Hooks class to container ✨ feat(Frontend/Hooks.php): add Frontend\Hooks class for bulk order status change in vendor dashboard 🔥 refactor(Order): remove dokan_is_hpos_enabled function 🔥 refactor(wc-functions): remove dokan_bulk_order_status_change function ✨ feat(Order): add check for ABSPATH constant in Hooks.php file * 🐛 fix(dokan.php): set priority to 1 for wpdb_table_shortcuts function 🔥 chore(Order/Manager.php): remove todo comments for deleting order references from vendor_balance, withdraw and refund table. Add comment about design flaw in dokan_vendor_balance table. * 🔍 chore(Manager.php): clean up whitespace and add comments 🐛 fix(Manager.php): fix is_numeric() usage in get_child_orders() ✨ feat(Manager.php): add $force_create parameter to create_sub_orders() method * 🐛 fix(Commission.php): add null check for product variable in validate_product_id method * refactor: commission calculation feature rewrite * 🐛 fix(Commission.php): save tmp_order after updating meta data 🔨 refactor(Commission.php): change null comparison to empty() function call 🔨 refactor(Commission.php): change if statement to elseif statement for commission_type check in calculate_earning() method 🐛 fix(Commission.php): remove unused variable and update return type of get_all_order_to_be_processed method 🐛 fix(functions.php): remove unused variable and simplify commission calculation * 🐛 fix(Manager.php): handle errors while deleting dokan orders, refund, vendor balance and reverse withdrawal table data ✨ feat(Manager.php): add action hook 'dokan_after_deleting_seller_order' after deleting seller order data 🔥 chore(Manager.php): remove unnecessary comment in delete sub_orders loop * 🐛 fix(Manager.php): handle different order table name based on HPOS usage status * 🚀 feat(Hooks.php): add support for trashing, untrashing, and deleting orders in both admin and frontend * update: added HPOS support for admin reports * refactor: fixed merge conflict issue * docs: updated docs for some deprecated methods. * 🐛 fix(functions.php): fix variable interpolation in SQL query strings * 🐛 fix(Commission.php): change option group from 'dokan_general' to 'dokan_selling' for shipping_fee_recipient and tax_fee_recipient options * 🐛 fix(Orders.php): use absint instead of intval to sanitize order_id input from $_GET superglobal variable * 📝 docs(Hooks.php): update @since tag to use DOKAN_SINCE instead of DOKAN_PRO_SINCE and add missing docblock for a method 📝 docs(Hooks.php): update since version and fix typo in comments * 🐛 fix(Hooks.php): fix whitespace inconsistency in line 284 * 📝 docs(Order): update @since tag in Controller.php constructor 📝 docs(Order): update @since tag in EmailHooks.php cancel order email method and add context information * 🔍 chore(Manager.php): add phpcs:disable and phpcs:enable comments to suppress code standard warnings in SQL queries * refactor: changed version number 3.7.111 with DOKAN_SINCE * refactor: refactored some codebase * refactor: refactored some codebase * refactor: refactored some codebase update: added global checking for store id under store rest api * refactor: refactored some codebase * fix: fixed a fatal error * refactor: replace dokan()->order->all() method functionality with wc_get_orders() * fix: fixed some minor issues * fix: fixed refund not working issue * 🐛 fix(Manager.php): replace deprecated function `dokan_pro_is_hpos_enabled()` with `OrderUtil::is_hpos_enabled()` to improve code maintainability and avoid using deprecated functions 🔨 refactor(Manager.php): remove deprecated and unused method `willremovesoon` from the `Manager` class 🔥 refactor(order-manager.php): remove unused code block in the `get_vendor_orders` method to improve code readability and maintainability * 🐛 fix(Manager.php): remove unused import of DateTimeZone to improve code cleanliness and reduce unnecessary dependencies 🐛 fix(Manager.php): change method call from save_meta_data() to save() to correctly save meta data changes in parent orders 🐛 fix(wc-template.php): check if sub_orders array is empty instead of falsy to correctly handle cases where there are no sub orders 🐛 fix(sub-orders.php): remove unnecessary check for existence of order object in foreach loop to simplify code and improve readability * 🐛 fix(Commission.php): change method calls from save_meta_data() to save() to correctly save order meta data * 🔧 fix(wc-functions.php): restrict vendors from reviewing their own products ✨ feat(wc-functions.php): add support for restricting vendors from purchasing their own products * 🐛 fix(Importer.php): add 'return' parameter with value 'objects' to dokan()->order->all() method to ensure that orders are returned as objects instead of arrays 🐛 fix(Manager.php): add isset() check for 'return' parameter to prevent undefined index notice 🐛 fix(OrderController.php): add 'return' parameter with value 'objects' to $request array to ensure that orders are returned as objects instead of arrays * 🐛 fix(Manager.php): add 'type' parameter with value 'shop_order' to the default arguments in the get_backward_compatibility_args() method to ensure compatibility with WooCommerce 🐛 fix(Manager.php): replace wc_get_orders() with $this->all() in the get_customer_orders_by_seller() method to ensure compatibility with Dokan plugin 🐛 fix(functions.php): add 'type' parameter with value 'shop_order' to the arguments in the dokan_get_suborder_ids_by() function to ensure compatibility with WooCommerce 🐛 fix(functions.php): replace wc_get_orders() with dokan()->order->all() in the dokan_customer_has_order_from_this_seller() function to ensure compatibility with Dokan plugin 🐛 fix(sub-orders.php): add null check for $order->get_view_order_url() in the href attribute to prevent errors when the method is not callable * fix: deleting order is not deleting data from dokan tables. * fix: shipping not appearing while creating suborders * 🐛 fix(Manager.php): add check to skip creating sub-order if no vendor is found ✨ feat(Manager.php): add check to skip processing order if it has already been assigned a vendor ID * 🐛 fix(Hooks.php): add condition to skip execution if 's' parameter is present in URL to prevent unwanted behavior * 📝 chore(Settings.php): update description for 'admin_access' setting to provide more context and mention HPOS feature 🐛 fix(Core.php): fix the issue with admin access blocking when HPOS feature is enabled 🐛 fix(Core.php): fix the issue with hiding others' uploads in media library 🐛 fix(Core.php): fix the issue with the wp_title filter 🐛 fix(functions.php): fix the issue with disabling admin bar when HPOS feature is enabled * 🐛 fix(Manager.php): update order query arguments to handle different scenarios based on the value of OrderUtil::is_hpos_enabled() * 🐛 fix(listing.php): fix the usage of dokan_format_date function to correctly format the timestamp --- assets/css/style.css | 5 + assets/css/vue-admin.css | 100 ++- assets/js/vue-admin.js | 2 +- assets/src/less/dashboard.less | 8 + composer.json | 5 +- dokan.php | 26 +- includes/Admin/Hooks.php | 352 +-------- includes/Admin/Settings.php | 2 +- includes/Admin/functions.php | 193 ++--- includes/Assets.php | 3 + includes/Commission.php | 374 +++++---- includes/Core.php | 45 +- includes/Dashboard/Templates/Orders.php | 14 +- includes/DummyData/Importer.php | 19 +- includes/FakeMailer.php | 18 + includes/Order/Admin/Hooks.php | 508 ++++++++++++ includes/Order/Admin/Permissions.php | 181 +++++ includes/Order/Controller.php | 46 ++ includes/Order/EmailHooks.php | 180 +++++ includes/Order/Frontend/Hooks.php | 54 ++ includes/Order/Hooks.php | 231 ++---- includes/Order/Manager.php | 742 ++++++++++++------ includes/Order/MiscHooks.php | 193 +++++ includes/Order/OrderCache.php | 34 + includes/Order/functions.php | 534 ++++++++----- .../ProductCategory/ProductCategoryCache.php | 44 ++ includes/REST/OrderController.php | 1 + includes/REST/StoreController.php | 20 +- includes/Tracker.php | 2 +- includes/Upgrade/Upgrades/V_1_2.php | 56 +- includes/Utilities/OrderUtil.php | 212 +++++ includes/Vendor/Vendor.php | 122 +-- includes/functions-compatibility.php | 6 +- includes/functions-rest-api.php | 39 + includes/functions.php | 481 +----------- includes/wc-functions.php | 297 +------ includes/wc-legacy-functions.php | 153 +--- includes/wc-template.php | 17 +- src/admin/pages/Vendors.vue | 2 +- templates/my-orders.php | 36 +- templates/orders/details.php | 31 +- templates/orders/listing.php | 32 +- templates/sub-orders.php | 8 +- 43 files changed, 3084 insertions(+), 2344 deletions(-) create mode 100644 includes/FakeMailer.php create mode 100644 includes/Order/Admin/Hooks.php create mode 100644 includes/Order/Admin/Permissions.php create mode 100644 includes/Order/Controller.php create mode 100644 includes/Order/EmailHooks.php create mode 100644 includes/Order/Frontend/Hooks.php create mode 100644 includes/Order/MiscHooks.php create mode 100644 includes/Utilities/OrderUtil.php create mode 100644 includes/functions-rest-api.php diff --git a/assets/css/style.css b/assets/css/style.css index 192c549c8c..3036cb4eb9 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -2730,6 +2730,11 @@ div.media-sidebar a.edit-attachment { vertical-align: middle; background: none; } +.dokan-dashboard div.chart-container > div.chart-legend-container > table td { + padding: 0; + padding-left: 5px; + padding-right: 5px; +} .dokan-column-name-with-avatar { position: relative; padding-left: 46px !important; diff --git a/assets/css/vue-admin.css b/assets/css/vue-admin.css index 8314810c99..82ab991b32 100644 --- a/assets/css/vue-admin.css +++ b/assets/css/vue-admin.css @@ -2063,34 +2063,34 @@ ul[data-v-525b077c] { border-radius: 50%; } -.secret-box-wraper[data-v-38c7e6d8] { +.secret-box-wraper[data-v-d315bc24] { display: flex; flex-direction: row-reverse; } -.secret-box-wraper .secret-input-box[data-v-38c7e6d8] { +.secret-box-wraper .secret-input-box[data-v-d315bc24] { position: relative; display: flex; width: 25em; } -.secret-box-wraper .secret-input-box div button[data-v-38c7e6d8] { +.secret-box-wraper .secret-input-box div button[data-v-d315bc24] { cursor: pointer; height: 20px; min-height: 32px; min-width: 32px; - border: 0.957434px solid #686666; + border: 1px solid #f3f4f6; box-shadow: 0px 3.82974px 3.82974px rgba(0, 0, 0, 0.1); border-radius: 5px; background: white; color: #686666; } -.secret-box-wraper .secret-input-box .secret-input[data-v-38c7e6d8] { +.secret-box-wraper .secret-input-box .secret-input[data-v-d315bc24] { width: 100%; } -.secret-box-wraper .secret-input-box .secret-input.blurry-input[data-v-38c7e6d8] { +.secret-box-wraper .secret-input-box .secret-input.blurry-input[data-v-d315bc24] { color: transparent; text-shadow: 0 0 7px #333; } -.secret-box-wraper .secret-input-box .secret-input-placeholder[data-v-38c7e6d8] { +.secret-box-wraper .secret-input-box .secret-input-placeholder[data-v-d315bc24] { position: absolute; top: 50%; left: 50%; @@ -2098,7 +2098,7 @@ ul[data-v-525b077c] { color: #686666; } @media only screen and (max-width: 768px) { -.secret-box-wraper .secret-input-box[data-v-38c7e6d8] { +.secret-box-wraper .secret-input-box[data-v-d315bc24] { max-width: 125px !important; } } @@ -2175,22 +2175,26 @@ ul.dokan-settings-repeatable-list li span.remove-item { margin-left: 10px; } .dokan-settings-sub-section { - margin-bottom: 30px; + padding: 20px; + border: 1px solid #f3f4f6; + border-bottom: 0; + background: #f9fafb; } .dokan-settings-sub-section .sub-section-title { margin: 0; - font-size: 22px; + font-size: 14px; font-family: Roboto, sans-serif; font-weight: 600; - line-height: 26px; + line-height: 1.2; margin-bottom: 8px; } .dokan-settings-sub-section .sub-section-description { margin: 0; - font-size: 15px; + font-size: 13px; font-weight: 300; line-height: 21px; font-family: Roboto, sans-serif; + color: #6B7280; } .dokan-settings-sub-section .sub-section-description .learn-more-btn { cursor: pointer; @@ -2204,10 +2208,10 @@ ul.dokan-settings-repeatable-list li span.remove-item { color: #E67E22 !important; } .field_contents { - border: 1px solid #B0A7A7; - padding: 14px 30px 18px 27px; + border: 1px solid #f3f4f6; + padding: 15px 20px 15px 20px; border-top: 0; - background: rgba(244, 246, 250, 0.17); + background: #fff; } .field_contents fieldset { display: flex; @@ -2217,27 +2221,28 @@ ul.dokan-settings-repeatable-list li span.remove-item { flex: 2; } .field_contents fieldset .field_data .field_heading { - color: #000000; + color: #111827; margin: 0; - font-size: 17px; + font-size: 14px; font-style: normal; font-weight: 600; - line-height: 35px; + line-height: 1.25; font-family: 'Roboto', sans-serif; } .field_contents fieldset .field_data .field_heading span i { - margin: 5px 0 0 5px; + margin: -3px 0 0 5px; } .field_contents fieldset .field_data .field_heading span .tooltip { font-size: 14px; } .field_contents fieldset .field_data .field_desc { - color: #000; + color: #6B7280; margin: 0; + margin-top: 5px; font-size: 13px; font-style: normal; font-weight: 300; - line-height: 17px; + line-height: 1.2; font-family: 'Roboto', sans-serif; } .field_contents fieldset .field_data .field_desc a { @@ -2289,7 +2294,7 @@ ul.dokan-settings-repeatable-list li span.remove-item { margin-top: 20px; } .field_contents .radio_fields label { - border: 0.882967px solid #B0A7A7; + border: 0.882967px solid #f3f4f6; padding: 10px 15px; display: inline-block; overflow: hidden; @@ -2305,7 +2310,7 @@ ul.dokan-settings-repeatable-list li span.remove-item { border-bottom-left-radius: 5px; } .field_contents .radio_fields label:last-child { - border-right: 0.882967px solid #B0A7A7; + border-right: 0.882967px solid #f3f4f6; border-top-right-radius: 5px; border-bottom-right-radius: 5px; } @@ -2314,11 +2319,11 @@ ul.dokan-settings-repeatable-list li span.remove-item { background: rgba(182, 206, 254, 0.38); box-sizing: border-box; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.1); - border-color: rgba(3, 58, 163, 0.81); + border-color: rgba(3, 58, 163, 0.41); } .field_contents .radio_fields .checked { color: rgba(3, 58, 163, 0.85); - border: 1px solid rgba(3, 58, 163, 0.81); + border: 1px solid rgba(3, 58, 163, 0.21); background: rgba(182, 206, 254, 0.38); box-sizing: border-box; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.1); @@ -2383,7 +2388,7 @@ ul.dokan-settings-repeatable-list li span.remove-item { .field_contents .field input[type='text'], .field_contents .field input[type='number'], .field_contents .field input[type='button'] { - border: 0.957434px solid #686666; + border: 0.957434px solid #E9E9E9; min-height: 32px; box-shadow: 0px 3.82974px 3.82974px rgba(0, 0, 0, 0.1); border-radius: 5px; @@ -2403,7 +2408,7 @@ ul.dokan-settings-repeatable-list li span.remove-item { } .field_contents .field label.checked { color: rgba(3, 58, 163, 0.85); - border: 1px solid rgba(3, 58, 163, 0.81); + border: 1px solid rgba(3, 58, 163, 0.41); background: rgba(182, 206, 254, 0.38); box-sizing: border-box; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.1); @@ -2431,7 +2436,6 @@ ul.dokan-settings-repeatable-list li span.remove-item { border: 0.82px solid #E5E5E5; padding: 10px 25px; background: rgba(220, 232, 254, 0.38); - box-shadow: 0px 3.28px 3.28px rgba(0, 0, 0, 0.1); border-radius: 6.56px; } .field_contents .scl_fields .scl_header { @@ -2496,7 +2500,7 @@ ul.dokan-settings-repeatable-list li span.remove-item { } .field_contents .scl_fields .scl_info .scl_text, .field_contents .scl_fields .scl_info .scl_html { - border: 1px solid #b0a7a7; + border: 1px solid #f3f4f6; display: flex; padding: 10px 30px 15px 27px; border-top: 0; @@ -2560,7 +2564,7 @@ ul.dokan-settings-repeatable-list li span.remove-item { } .field_contents .scl_fields .scl_info:nth-child(2) { margin-top: 15px; - border-top: 1px solid #b0a7a7; + border-top: 1px solid #f3f4f6; } .field_contents .scl_fields .scl_info:last-child { margin-bottom: 10px; @@ -2756,11 +2760,9 @@ ul.dokan-settings-repeatable-list li span.remove-item { } .dokan-settings-wrap div.nav-tab-wrapper { width: 340px; - border: 1px solid #c8d7e1; padding: 14px 16px 30px 24px; overflow: hidden; - background: #FAFBFF; - box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); + background: #F9FAFB; box-sizing: border-box; margin-right: 12px; border-bottom: none; @@ -2781,7 +2783,7 @@ ul.dokan-settings-repeatable-list li span.remove-item { transition: none; background: transparent; font-weight: bold; - border-bottom: 1px solid #cecaca; + border-bottom: 1px solid #e9e9ea; transition-property: none; } .dokan-settings-wrap div.nav-tab-wrapper .nav-tab img { @@ -2811,7 +2813,6 @@ ul.dokan-settings-repeatable-list li span.remove-item { position: relative; transition: 0.3s linear; background: #fff !important; - box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); transition-property: none; } .dokan-settings-wrap div.nav-tab-wrapper .nav-tab.nav-tab-active:before { @@ -2823,15 +2824,6 @@ ul.dokan-settings-repeatable-list li span.remove-item { height: 100%; top: 0; } -.dokan-settings-wrap div.nav-tab-wrapper .nav-tab.nav-tab-active::after { - content: ''; - position: absolute; - width: 100%; - height: 1px; - background: #cecaca; - left: 0; - top: -1px; -} .dokan-settings-wrap div.nav-tab-wrapper .nav-tab:last-child { border-bottom: 0; } @@ -2870,31 +2862,37 @@ ul.dokan-settings-repeatable-list li span.remove-item { } .dokan-settings-wrap .metabox-holder .settings-header .settings-document-button a.doc-link { color: #033AA3D9; - border: 0.82px solid #033AA3; + border: 1px solid #f3f4f6; padding: 10px 15px; font-size: 12px; background: #FFF; box-sizing: border-box; - box-shadow: 0px 3.28px 3.28px rgba(0, 0, 0, 0.25); + box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.1); font-family: Roboto, sans-serif; line-height: 15px; border-radius: 6.56px; text-decoration: none; } +.dokan-settings-wrap .metabox-holder .settings-header .settings-document-button a.doc-link:hover { + background: #033aa30f; +} .dokan-settings-wrap .metabox-holder .group .form-table .dokan-settings-fields .dokan-settings-field-type-sub_section, .dokan-settings-wrap .metabox-holder .group .form-table .dokan-settings-fields .dokan-settings-field-type-disbursement_sub_section { - border-bottom: 1px solid #b0a7a7; + border-bottom: 1px solid #f3f4f6; } .dokan-settings-wrap .metabox-holder .group .form-table .dokan-settings-fields .dokan-settings-field-type-sub_section .sub-section-styles, .dokan-settings-wrap .metabox-holder .group .form-table .dokan-settings-fields .dokan-settings-field-type-disbursement_sub_section .sub-section-styles { - margin-top: 50px; + margin-top: 20px; + margin-bottom: 0; + padding: 20px; + background: #f9fafb; } .dokan-settings-wrap .metabox-holder .group .form-table .dokan-settings-fields div:not(.dokan-settings-field-type-sub_section) .field_contents { - border: 1px solid #b0a7a7; + border: 1px solid #f3f4f6; border-top: none; } .dokan-settings-wrap .metabox-holder .group .form-table .dokan-settings-fields > div:not(.dokan-settings-field-type-sub_section):first-child { - border-top: 1px solid #b0a7a7; + border-top: 1px solid #f3f4f6; } .dokan-settings-wrap .metabox-holder .back-to-top { width: 44px; @@ -2925,7 +2923,7 @@ ul.dokan-settings-repeatable-list li span.remove-item { height: 100%; content: ""; position: absolute; - background: #E5E5E5; + background: #fff; } .dokan-settings-wrap .radio-image-container { padding: 20px 0; diff --git a/assets/js/vue-admin.js b/assets/js/vue-admin.js index 81c382247d..794724f998 100644 --- a/assets/js/vue-admin.js +++ b/assets/js/vue-admin.js @@ -1,2 +1,2 @@ /*! For license information please see vue-admin.js.LICENSE.txt */ -(()=>{var e={302:e=>{e.exports=function(e,t,a){return ta?a:e:et?t:e}},850:e=>{function t(e,t,a){var i,s,n,o,r;function l(){var d=Date.now()-o;d=0?i=setTimeout(l,t-d):(i=null,a||(r=e.apply(n,s),n=s=null))}null==t&&(t=100);var d=function(){n=this,s=arguments,o=Date.now();var d=a&&!i;return i||(i=setTimeout(l,t)),d&&(r=e.apply(n,s),n=s=null),r};return d.clear=function(){i&&(clearTimeout(i),i=null)},d.flush=function(){i&&(r=e.apply(n,s),n=s=null,clearTimeout(i),i=null)},d}t.debounce=t,e.exports=t},882:(e,t,a)=>{var i="Expected a function",s=NaN,n="[object Symbol]",o=/^\s+|\s+$/g,r=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,d=/^0o[0-7]+$/i,c=parseInt,u="object"==typeof a.g&&a.g&&a.g.Object===Object&&a.g,p="object"==typeof self&&self&&self.Object===Object&&self,h=u||p||Function("return this")(),f=Object.prototype.toString,m=Math.max,v=Math.min,_=function(){return h.Date.now()};function g(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function k(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&f.call(e)==n}(e))return s;if(g(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=g(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(o,"");var a=l.test(e);return a||d.test(e)?c(e.slice(2),a?2:8):r.test(e)?s:+e}e.exports=function(e,t,a){var s=!0,n=!0;if("function"!=typeof e)throw new TypeError(i);return g(a)&&(s="leading"in a?!!a.leading:s,n="trailing"in a?!!a.trailing:n),function(e,t,a){var s,n,o,r,l,d,c=0,u=!1,p=!1,h=!0;if("function"!=typeof e)throw new TypeError(i);function f(t){var a=s,i=n;return s=n=void 0,c=t,r=e.apply(i,a)}function b(e){var a=e-d;return void 0===d||a>=t||a<0||p&&e-c>=o}function C(){var e=_();if(b(e))return y(e);l=setTimeout(C,function(e){var a=t-(e-d);return p?v(a,o-(e-c)):a}(e))}function y(e){return l=void 0,h&&s?f(e):(s=n=void 0,r)}function w(){var e=_(),a=b(e);if(s=arguments,n=this,d=e,a){if(void 0===l)return function(e){return c=e,l=setTimeout(C,t),u?f(e):r}(d);if(p)return l=setTimeout(C,t),f(d)}return void 0===l&&(l=setTimeout(C,t)),r}return t=k(t)||0,g(a)&&(u=!!a.leading,o=(p="maxWait"in a)?m(k(a.maxWait)||0,t):o,h="trailing"in a?!!a.trailing:h),w.cancel=function(){void 0!==l&&clearTimeout(l),c=0,s=d=n=l=void 0},w.flush=function(){return void 0===l?r:y(_())},w}(e,t,{leading:s,maxWait:t,trailing:n})}},490:function(e,t){var a,i;a=function e(){"use strict";var t="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==t?t:{},a=!t.document&&!!t.postMessage,i=t.IS_PAPA_WORKER||!1,s={},n=0,o={parse:function(a,i){var r=(i=i||{}).dynamicTyping||!1;if(C(r)&&(i.dynamicTypingFunction=r,r={}),i.dynamicTyping=r,i.transform=!!C(i.transform)&&i.transform,i.worker&&o.WORKERS_SUPPORTED){var l=function(){if(!o.WORKERS_SUPPORTED)return!1;var a,i,r=(a=t.URL||t.webkitURL||null,i=e.toString(),o.BLOB_URL||(o.BLOB_URL=a.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",i,")();"],{type:"text/javascript"})))),l=new t.Worker(r);return l.onmessage=v,l.id=n++,s[l.id]=l}();return l.userStep=i.step,l.userChunk=i.chunk,l.userComplete=i.complete,l.userError=i.error,i.step=C(i.step),i.chunk=C(i.chunk),i.complete=C(i.complete),i.error=C(i.error),delete i.worker,void l.postMessage({input:a,config:i,workerId:l.id})}var h=null;return o.NODE_STREAM_INPUT,"string"==typeof a?(a=function(e){return 65279===e.charCodeAt(0)?e.slice(1):e}(a),h=i.download?new d(i):new u(i)):!0===a.readable&&C(a.read)&&C(a.on)?h=new p(i):(t.File&&a instanceof File||a instanceof Object)&&(h=new c(i)),h.stream(a)},unparse:function(e,t){var a=!1,i=!0,s=",",n="\r\n",r='"',l=r+r,d=!1,c=null,u=!1;!function(){if("object"==typeof t){if("string"!=typeof t.delimiter||o.BAD_DELIMITERS.filter((function(e){return-1!==t.delimiter.indexOf(e)})).length||(s=t.delimiter),("boolean"==typeof t.quotes||"function"==typeof t.quotes||Array.isArray(t.quotes))&&(a=t.quotes),"boolean"!=typeof t.skipEmptyLines&&"string"!=typeof t.skipEmptyLines||(d=t.skipEmptyLines),"string"==typeof t.newline&&(n=t.newline),"string"==typeof t.quoteChar&&(r=t.quoteChar),"boolean"==typeof t.header&&(i=t.header),Array.isArray(t.columns)){if(0===t.columns.length)throw new Error("Option columns is empty");c=t.columns}void 0!==t.escapeChar&&(l=t.escapeChar+r),("boolean"==typeof t.escapeFormulae||t.escapeFormulae instanceof RegExp)&&(u=t.escapeFormulae instanceof RegExp?t.escapeFormulae:/^[=+\-@\t\r].*$/)}}();var p=new RegExp(f(r),"g");if("string"==typeof e&&(e=JSON.parse(e)),Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return h(null,e,d);if("object"==typeof e[0])return h(c||Object.keys(e[0]),e,d)}else if("object"==typeof e)return"string"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields||c),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:"object"==typeof e.data[0]?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||"object"==typeof e.data[0]||(e.data=[e.data])),h(e.fields||[],e.data||[],d);throw new Error("Unable to serialize unrecognized input");function h(e,t,a){var o="";"string"==typeof e&&(e=JSON.parse(e)),"string"==typeof t&&(t=JSON.parse(t));var r=Array.isArray(e)&&0=this._config.preview;if(i)t.postMessage({results:r,workerId:o.WORKER_ID,finished:d});else if(C(this._config.chunk)&&!a){if(this._config.chunk(r,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);r=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(r.data),this._completeResults.errors=this._completeResults.errors.concat(r.errors),this._completeResults.meta=r.meta),this._completed||!d||!C(this._config.complete)||r&&r.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),d||r&&r.meta.paused||this._nextChunk(),r}this._halted=!0},this._sendError=function(e){C(this._config.error)?this._config.error(e):i&&this._config.error&&t.postMessage({workerId:o.WORKER_ID,error:e,finished:!1})}}function d(e){var t;(e=e||{}).chunkSize||(e.chunkSize=o.RemoteChunkSize),l.call(this,e),this._nextChunk=a?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(t=new XMLHttpRequest,this._config.withCredentials&&(t.withCredentials=this._config.withCredentials),a||(t.onload=b(this._chunkLoaded,this),t.onerror=b(this._chunkError,this)),t.open(this._config.downloadRequestBody?"POST":"GET",this._input,!a),this._config.downloadRequestHeaders){var e=this._config.downloadRequestHeaders;for(var i in e)t.setRequestHeader(i,e[i])}if(this._config.chunkSize){var s=this._start+this._config.chunkSize-1;t.setRequestHeader("Range","bytes="+this._start+"-"+s)}try{t.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}a&&0===t.status&&this._chunkError()}},this._chunkLoaded=function(){4===t.readyState&&(t.status<200||400<=t.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:t.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(e){var t=e.getResponseHeader("Content-Range");return null===t?-1:parseInt(t.substring(t.lastIndexOf("/")+1))}(t),this.parseChunk(t.responseText)))},this._chunkError=function(e){var a=t.statusText||e;this._sendError(new Error(a))}}function c(e){var t,a;(e=e||{}).chunkSize||(e.chunkSize=o.LocalChunkSize),l.call(this,e);var i="undefined"!=typeof FileReader;this.stream=function(e){this._input=e,a=e.slice||e.webkitSlice||e.mozSlice,i?((t=new FileReader).onload=b(this._chunkLoaded,this),t.onerror=b(this._chunkError,this)):t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(t.error)}}function u(e){var t;l.call(this,e=e||{}),this.stream=function(e){return t=e,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var e,a=this._config.chunkSize;return a?(e=t.substring(0,a),t=t.substring(a)):(e=t,t=""),this._finished=!t,this.parseChunk(e)}}}function p(e){l.call(this,e=e||{});var t=[],a=!0,i=!1;this.pause=function(){l.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){l.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){i&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):a=!0},this._streamData=b((function(e){try{t.push("string"==typeof e?e:e.toString(this._config.encoding)),a&&(a=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}}),this),this._streamError=b((function(e){this._streamCleanUp(),this._sendError(e)}),this),this._streamEnd=b((function(){this._streamCleanUp(),i=!0,this._streamData("")}),this),this._streamCleanUp=b((function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)}),this)}function h(e){var t,a,i,s=Math.pow(2,53),n=-s,r=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,l=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,d=this,c=0,u=0,p=!1,h=!1,v=[],_={data:[],errors:[],meta:{}};if(C(e.step)){var g=e.step;e.step=function(t){if(_=t,w())y();else{if(y(),0===_.data.length)return;c+=t.data.length,e.preview&&c>e.preview?a.abort():(_.data=_.data[0],g(_,d))}}}function b(t){return"greedy"===e.skipEmptyLines?""===t.join("").trim():1===t.length&&0===t[0].length}function y(){return _&&i&&(S("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+o.DefaultDelimiter+"'"),i=!1),e.skipEmptyLines&&(_.data=_.data.filter((function(e){return!b(e)}))),w()&&function(){if(_)if(Array.isArray(_.data[0])){for(var t=0;w()&&t<_.data.length;t++)_.data[t].forEach(a);_.data.splice(0,1)}else _.data.forEach(a);function a(t,a){C(e.transformHeader)&&(t=e.transformHeader(t,a)),v.push(t)}}(),function(){if(!_||!e.header&&!e.dynamicTyping&&!e.transform)return _;function t(t,a){var i,s=e.header?{}:[];for(i=0;i=v.length?"__parsed_extra":v[i]),e.transform&&(o=e.transform(o,n)),o=x(n,o),"__parsed_extra"===n?(s[n]=s[n]||[],s[n].push(o)):s[n]=o}return e.header&&(i>v.length?S("FieldMismatch","TooManyFields","Too many fields: expected "+v.length+" fields but parsed "+i,u+a):i=i.length/2?"\r\n":"\r"}(s,l)),i=!1,e.delimiter)C(e.delimiter)&&(e.delimiter=e.delimiter(s),_.meta.delimiter=e.delimiter);else{var d=function(t,a,i,s,n){var r,l,d,c;n=n||[",","\t","|",";",o.RECORD_SEP,o.UNIT_SEP];for(var u=0;u=r)return z(!0)}else for(U=c,c++;;){if(-1===(U=o.indexOf(t,U+1)))return h||y.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:b.length,index:c}),q();if(U===m-1)return q(o.substring(c,U).replace(F,t));if(t!==d||o[U+1]!==d){if(t===d||0===U||o[U-1]!==d){-1!==O&&O=r)return z(!0);break}y.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:b.length,index:c}),U++}}else U++}return q();function B(e){b.push(e),x=c}function j(e){var t=0;if(-1!==e){var a=o.substring(U+1,e);a&&""===a.trim()&&(t=a.length)}return t}function q(e){return h||(void 0===e&&(e=o.substring(c)),w.push(e),c=m,B(w),k&&W()),z()}function Z(e){c=e,B(w),w=[],E=o.indexOf(i,c)}function z(e){return{data:b,errors:y,meta:{delimiter:a,linebreak:i,aborted:u,truncated:!!e,cursor:x+(p||0)}}}function W(){n(z()),b=[],y=[]}},this.abort=function(){u=!0},this.getCharIndex=function(){return c}}function v(e){var t=e.data,a=s[t.workerId],i=!1;if(t.error)a.userError(t.error,t.file);else if(t.results&&t.results.data){var n={abort:function(){i=!0,_(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:g,resume:g};if(C(a.userStep)){for(var o=0;o{var i,s,n;!function(o){"use strict";s=[a(311)],i=function(e){var t,a=window.Slick||{};(t=0,a=function(a,i){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:e(a),appendDots:e(a),arrows:!0,asNavFor:null,prevArrow:'',nextArrow:'',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(t,a){return e(''; - } - } - /** * Send notification to the seller once a product is published from pending * - * @param \WP_Post $post + * @param WP_Post $post + * * @return void */ public function send_notification_on_product_publish( $post ) { @@ -382,8 +80,8 @@ public static function seller_meta_box_content( $post ) { $user = [ [ - 'id' => $selected, - 'text' => ! empty( $user->get_shop_name() ) ? $user->get_shop_name() : $user->get_name(), + 'id' => $selected, + 'text' => ! empty( $user->get_shop_name() ) ? $user->get_shop_name() : $user->get_name(), ], ]; ?> @@ -425,8 +123,8 @@ public function search_vendors() { if ( ! empty( $_GET['s'] ) ) { $s = sanitize_text_field( wp_unslash( $_GET['s'] ) ); - $args['search'] = '*' . $s . '*'; - $args['number'] = 35; + $args['search'] = '*' . $s . '*'; + $args['number'] = 35; $args['search_columns'] = [ 'user_login', 'user_email', 'display_name', 'user_nicename' ]; } @@ -491,7 +189,7 @@ public function override_product_author_by_admin( $product_id, $post ) { /** * Assign vendor for deleted post types * - * @param array $post_types + * @param array $post_types * @param integer $user_id * * @return array @@ -501,7 +199,7 @@ public function add_wc_post_types_to_delete_user( $post_types, $user_id ) { return $post_types; } - $wc_post_types = array( 'product', 'product_variation', 'shop_order', 'shop_coupon' ); + $wc_post_types = [ 'product', 'product_variation', 'shop_order', 'shop_coupon' ]; return array_merge( $post_types, $wc_post_types ); } @@ -519,9 +217,9 @@ public function update_pages( $value, $name ) { return $value; } - $current_settings = get_option( $name, array() ); - $current_settings = is_array( $current_settings ) ? $current_settings : array(); - $value = is_array( $value ) ? $value : array(); + $current_settings = get_option( $name, [] ); + $current_settings = is_array( $current_settings ) ? $current_settings : []; + $value = is_array( $value ) ? $value : []; return array_replace_recursive( $current_settings, $value ); } diff --git a/includes/Admin/Settings.php b/includes/Admin/Settings.php index 0af5767cdf..26e9b568c7 100644 --- a/includes/Admin/Settings.php +++ b/includes/Admin/Settings.php @@ -392,7 +392,7 @@ public function get_settings_fields() { 'admin_access' => [ 'name' => 'admin_access', 'label' => __( 'Admin Area Access', 'dokan-lite' ), - 'desc' => __( 'Disallow vendors from accessing the wp-admin dashboard area', 'dokan-lite' ), + 'desc' => __( 'Prevent vendors from accessing the wp-admin dashboard area. If HPOS feature is enabled, admin access will be blocked regardless of this setting.', 'dokan-lite' ), 'type' => 'switcher', 'default' => 'on', ], diff --git a/includes/Admin/functions.php b/includes/Admin/functions.php index 2c2b77990c..3177edeb42 100644 --- a/includes/Admin/functions.php +++ b/includes/Admin/functions.php @@ -1,4 +1,7 @@ 15 ) ); + $response = wp_remote_get( $help_url, [ 'timeout' => 15 ] ); $help_docs = wp_remote_retrieve_body( $response ); if ( is_wp_error( $response ) || (int) $response['response']['code'] !== 200 ) { @@ -35,7 +38,7 @@ function dokan_admin_get_help() { * @param string $year * @param string $start * @param string $end - * @param int $seller_id + * @param int $seller_id * * @return array */ @@ -44,8 +47,8 @@ function dokan_admin_report_data( $group_by = 'day', $year = '', $start = '', $e $now = dokan_current_datetime(); $group_by = apply_filters( 'dokan_report_group_by', $group_by ); - $start_date = ! empty( $start ) ? sanitize_text_field( $start ) : ''; // WPCS: CSRF ok. - $end_date = ! empty( $end ) ? sanitize_text_field( $end ) : ''; // WPCS: CSRF ok. + $start_date = ! empty( $start ) ? sanitize_text_field( $start ) : ''; + $end_date = ! empty( $end ) ? sanitize_text_field( $end ) : ''; $current_year = $now->format( 'Y' ); if ( empty( $start_date ) ) { @@ -64,34 +67,47 @@ function dokan_admin_report_data( $group_by = 'day', $year = '', $start = '', $e } } - $date_where = ''; + $date_where = ''; + $order_table_name = $wpdb->posts; + $id_field = 'ID'; + $date_field = 'post_date'; + $status_field = 'post_status'; + + if ( OrderUtil::is_hpos_enabled() ) { + $start_date = $now->modify( $start_date )->setTimezone( new DateTimeZone( 'UTC' ) )->format( 'Y-m-d' ); + $end_date = $now->modify( $end_date )->setTimezone( new DateTimeZone( 'UTC' ) )->format( 'Y-m-d' ); + $order_table_name = OrderUtil::get_order_table_name(); + $id_field = 'id'; + $date_field = 'date_created_gmt'; + $status_field = 'status'; + } if ( 'day' === $group_by ) { - $group_by_query = 'YEAR(p.post_date), MONTH(p.post_date), DAY(p.post_date)'; - $date_where = " AND DATE(p.post_date) >= '$start_date' AND DATE(p.post_date) <= '$end_date'"; + $group_by_query = "YEAR(p.{$date_field}), MONTH(p.{$date_field}), DAY(p.{$date_field})"; + $date_where = " AND DATE(p.{$date_field}) >= '{$start_date}' AND DATE(p.${date_field}) <= '{$end_date}'"; } else { - $group_by_query = 'YEAR(p.post_date), MONTH(p.post_date)'; - $date_where = " AND DATE(p.post_date) >= '$start_date' AND DATE(p.post_date) <= '$end_date'"; + $group_by_query = "YEAR(p.{$date_field}), MONTH(p.{$date_field})"; + $date_where = " AND DATE(p.{$date_field}) >= '{$start_date}' AND DATE(p.{$date_field}) <= '{$end_date}'"; } - $left_join = apply_filters( 'dokan_report_left_join', $date_where ); + $left_join = apply_filters( 'dokan_report_left_join', '' ); $date_where = apply_filters( 'dokan_report_where', $date_where ); $seller_where = $seller_id ? "seller_id = {$seller_id}" : 'seller_id != ' . 0; $sql = "SELECT - SUM((do.order_total - do.net_amount)) as earning, - SUM(do.order_total) as order_total, - COUNT(DISTINCT p.ID) as total_orders, - p.post_date as order_date - FROM {$wpdb->prefix}dokan_orders do - LEFT JOIN $wpdb->posts p ON do.order_id = p.ID - $left_join + SUM((do.order_total - do.net_amount)) AS earning, + SUM(do.order_total) AS order_total, + COUNT(DISTINCT p.{$id_field}) AS total_orders, + p.{$date_field} AS order_date + FROM {$wpdb->prefix}dokan_orders AS do + LEFT JOIN {$order_table_name} p ON do.order_id = p.{$id_field} + {$left_join} WHERE - $seller_where AND - p.post_status != 'trash' AND + {$seller_where} AND + p.{$status_field} != 'trash' AND do.order_status IN ('wc-on-hold', 'wc-completed', 'wc-processing') - $date_where - GROUP BY $group_by_query"; + {$date_where} + GROUP BY {$group_by_query}"; $data = $wpdb->get_results( $sql ); // phpcs:ignore WordPress.DB.PreparedSQL @@ -101,17 +117,18 @@ function dokan_admin_report_data( $group_by = 'day', $year = '', $start = '', $e /** * Generate report in admin area * - * @global WPDB $wpdb - * @global object $wp_locale - * * @param string $group_by * @param string $year * @param string $start * @param string $end * + * @deprecated DOKAN_SINCE since we are getting the report data from REST API (dokan/v1/report), we don't need this function anymore. + * * @return array */ function dokan_admin_report( $group_by = 'day', $year = '', $start = '', $end = '' ) { + wc_deprecated_function( 'dokan_admin_report', 'DOKAN_SINCE' ); + global $wp_locale; $data = dokan_admin_report_data( $group_by, $year, $start, $end ); @@ -153,17 +170,17 @@ function dokan_admin_report( $group_by = 'day', $year = '', $start = '', $end = $order_commision = dokan_prepare_chart_data( $data, 'order_date', 'earning', $chart_interval, $start_date_to_time->getTimestamp(), $group_by ); // Encode in json format - $chart_data = array( + $chart_data = [ 'order_counts' => array_values( $order_counts ), 'order_amounts' => array_values( $order_amounts ), 'order_commision' => array_values( $order_commision ), - ); + ]; - $chart_colours = array( + $chart_colours = [ 'order_counts' => '#3498db', 'order_amounts' => '#1abc9c', 'order_commision' => '#73a724', - ); + ]; ?> @@ -180,11 +197,11 @@ function dokan_admin_report( $group_by = 'day', $year = '', $start = '', $end = } + + + key ) { + $vendor = dokan()->vendor->get( $display_value ); + $url = get_edit_user_link( $display_value ); + if ( function_exists( 'dokan_pro' ) ) { + $url = admin_url( 'admin.php?page=dokan#/vendors/' . $display_value ); + } + + return '" . $vendor->get_shop_name() . ''; + } + + return $display_value; + } + + /** + * Delete sub orders when parent order is trashed + * + * @since DOKAN_SINCE Moved from includes/Admin/Hooks.php file + * @since DOKAN_SINCE Rewritten for HPOS + * + * @param int $post_id + */ + public function admin_on_trash_order( $post_id ) { + if ( ! OrderUtil::is_order( $post_id ) ) { + return; + } + + $order = wc_get_order( $post_id ); + if ( ! $order || $order->get_parent_id() !== 0 ) { + return; + } + + $child_orders = dokan()->order->get_child_orders( $order->get_id() ); + foreach ( $child_orders as $child_order ) { + $child_order->delete( false ); + } + } + + /** + * Un-trash sub orders when parent orders are un-trashed + * + * @since DOKAN_SINCE Moved from includes/Admin/Hooks.php file + * @since DOKAN_SINCE Rewritten for HPOS + * + * @param int $post_id + * + * @return void + */ + public function admin_on_untrash_order( $post_id ) { + if ( ! OrderUtil::is_order( $post_id ) ) { + return; + } + + $order = wc_get_order( $post_id ); + if ( ! $order || $order->get_parent_id() !== 0 ) { + return; + } + + $child_orders = dokan()->order->get_child_orders( $order->get_id() ); + if ( ! $child_orders ) { + return; + } + + try { + $order_data_store = WC_Data_Store::load( 'order' ); + foreach ( $child_orders as $child_order ) { + if ( method_exists( $order_data_store->get_current_class_name(), 'untrash_order' ) ) { + $order_data_store->untrash_order( $child_order ); + } else { + wp_untrash_post( $child_order->get_id() ); + } + } + } catch ( Exception $e ) { + return; + } + } + + /** + * Delete sub orders and from dokan sync table when a order is deleted + * + * @since DOKAN_SINCE Moved from includes/Admin/Hooks.php file + * @since DOKAN_SINCE Rewritten for HPOS + * + * @param int $post_id + * + * @return void + */ + public function admin_on_delete_order( $post_id ) { + dokan()->order->delete_seller_order_with_suborders( $post_id ); + } + + /** + * Delete sub orders and from dokan sync table when a order is deleted + * + * @since DOKAN_SINCE Moved from includes/Admin/Hooks.php file + * @since DOKAN_SINCE Rewritten for HPOS + * + * @param int $post_id + * + * @return void + */ + public function admin_on_delete_order_post( $post_id ) { + $order = wc_get_order( $post_id ); + if ( ! $order ) { + return; + } + dokan()->order->delete_seller_order_with_suborders( $post_id ); + } + + /** + * Show a toggle button to toggle all the sub orders + * + * @since DOKAN_SINCE Moved from includes/Admin/Hooks.php file + * @since DOKAN_SINCE Rewritten for HPOS + * + * @param string $typenow + * + * @return void + */ + public function admin_shop_order_toggle_sub_orders( $typenow ) { + if ( $typenow === 'shop_order' ) { + echo ''; + } + } +} diff --git a/includes/Order/Admin/Permissions.php b/includes/Order/Admin/Permissions.php new file mode 100644 index 0000000000..461c7232a8 --- /dev/null +++ b/includes/Order/Admin/Permissions.php @@ -0,0 +1,181 @@ +ID : 0 ); + if ( empty( $post_id ) ) { + return $caps; + } + + $order = wc_get_order( $post_id ); + if ( ! $order ) { + return $caps; + } + + $vendor_id = $order->get_meta( '_dokan_vendor_id', true ); + if ( (int) $vendor_id === (int) $user_id ) { + return [ 'edit_shop_orders' ]; + } + } + + return $caps; + } + + /** + * Filter orders of current user + * + * @since 2.9.4 + * @since DOKAN_SINCE Moved this method from includes/functions.php + * @since DOKAN_SINCE Added HPOS Support + * + * @param array $args + * @param object $query + * + * @return array + */ + public function filter_orders_for_current_vendor( $args, $query ) { + global $wpdb; + + if ( ! is_admin() || ! $query->is_main_query() ) { + return $args; + } + + if ( ! isset( $query->query_vars['post_type'] ) ) { + return $args; + } + + if ( ! in_array( $query->query_vars['post_type'], [ 'shop_order', 'wc_booking' ], true ) ) { + return $args; + } + + $vendor_id = isset( $_GET['vendor_id'] ) ? absint( wp_unslash( $_GET['vendor_id'] ) ) : 0; // phpcs:ignore; + if ( ! current_user_can( 'manage_woocommerce' ) ) { + $vendor_id = dokan_get_current_user_id(); + } + + if ( ! $vendor_id ) { + return $args; + } + + $args['join'] .= " LEFT JOIN {$wpdb->prefix}dokan_orders as do ON $wpdb->posts.ID=do.order_id"; + $args['where'] .= " AND do.seller_id=$vendor_id"; + + return $args; + } + + /** + * Revoke vendor access of changing order status in the backend if permission is not given + * + * @since 2.8.0 + * @since DOKAN_SINCE Moved this method from includes/functions.php file + * + * @return void + */ + public function revoke_change_order_status() { + if ( current_user_can( 'manage_woocommerce' ) ) { + return; + } + + if ( is_admin() && get_current_screen()->id === 'shop_order' ) { + if ( dokan_get_option( 'order_status_change', 'dokan_selling', 'on' ) !== 'on' ) { + ?> + + init_classes(); + } + + /** + * Load required classes + * + * @return void + */ + public function init_classes() { + $this->container['hooks'] = new Hooks(); + $this->container['misc_hooks'] = new MiscHooks(); + $this->container['email_hooks'] = new EmailHooks(); + $this->container['cache'] = new OrderCache(); + $this->container['frontend_hooks'] = new Frontend\Hooks(); + + if ( is_admin() ) { + $this->container['permission'] = new Admin\Permissions(); + $this->container['admin_hooks'] = new Admin\Hooks(); + } + } +} diff --git a/includes/Order/EmailHooks.php b/includes/Order/EmailHooks.php new file mode 100644 index 0000000000..c966a14334 --- /dev/null +++ b/includes/Order/EmailHooks.php @@ -0,0 +1,180 @@ +get_id() ); + + $seller_info = get_userdata( $seller_id ); + $seller_email = $seller_info->user_email; + + // if admin email & seller email is same + if ( false === strpos( $recipient, $seller_email ) ) { + $recipient .= ',' . $seller_email; + } + + return $recipient; + } + + /** + * Add vendor email on customers note mail replay to + * + * @since DOKAN_SINCE Moved this method from includes/wc-functions.php file + * + * @param string $headers + * @param string $id + * @param WC_Order $order + * + * @return string $headers + */ + public function add_reply_to_vendor_email_on_wc_customer_note_mail( $headers, $id, $order ) { + if ( ! ( $order instanceof WC_Order ) ) { + return $headers; + } + + if ( 'customer_note' === $id ) { + foreach ( $order->get_items( 'line_item' ) as $item ) { + $product_id = $item['product_id']; + $author = get_post_field( 'post_author', $product_id ); + $author_data = get_userdata( absint( $author ) ); + $user_email = $author_data->user_email; + + $headers .= "Reply-to: <$user_email>\r\n"; + } + } + + return $headers; + } + + /** + * Exclude child order emails for customers + * + * A hacky and dirty way to do this from this action. Because there is no easy + * way to do this by removing action hooks from WooCommerce. It would be easier + * if they were from functions. Because they are added from classes, we can't + * remove those action hooks. That's why we are doing this from the phpmailer_init action + * by returning a fake phpmailer class. + * + * @since DOKAN_SINCE Moved this method from includes/wc-functions.php file + * + * @param object $phpmailer + * + * @return void + */ + public function exclude_child_customer_receipt( &$phpmailer ) { + $subject = $phpmailer->Subject; ////phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + + // order receipt + $sub_receipt = __( 'Your {site_title} order receipt from {order_date}', 'dokan-lite' ); + $sub_download = __( 'Your {site_title} order from {order_date} is complete', 'dokan-lite' ); + + $sub_receipt = str_replace( + [ + '{site_title}', + '{order_date}', + ], [ wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ), '' ], $sub_receipt + ); + $sub_download = str_replace( + [ + '{site_title}', + '{order_date} is complete', + ], [ wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ), '' ], $sub_download + ); + + // not a customer receipt mail + if ( ( stripos( $subject, $sub_receipt ) === false ) && ( stripos( $subject, $sub_download ) === false ) ) { + return; + } + + $message = $phpmailer->Body; //phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + $pattern = '/Order: #(\d+)/'; + preg_match( $pattern, $message, $matches ); + + if ( isset( $matches[1] ) ) { + $order_id = $matches[1]; + $order = wc_get_order( $order_id ); + + // we found a child order + if ( $order && $order->post_parent !== 0 ) { + $phpmailer = new FakeMailer(); + } + } + } +} diff --git a/includes/Order/Frontend/Hooks.php b/includes/Order/Frontend/Hooks.php new file mode 100644 index 0000000000..730a6172d0 --- /dev/null +++ b/includes/Order/Frontend/Hooks.php @@ -0,0 +1,54 @@ + isset( $_POST['status'] ) ? sanitize_text_field( wp_unslash( $_POST['status'] ) ) : '', + 'bulk_orders' => isset( $_POST['bulk_orders'] ) ? array_map( 'absint', $_POST['bulk_orders'] ) : [], + ] + ); + } +} diff --git a/includes/Order/Hooks.php b/includes/Order/Hooks.php index 2760da2b27..22ff05458a 100644 --- a/includes/Order/Hooks.php +++ b/includes/Order/Hooks.php @@ -3,6 +3,12 @@ namespace WeDevs\Dokan\Order; use Exception; +use WC_Order; + +// don't call the file directly +if ( ! defined( 'ABSPATH' ) ) { + exit; +} /** * Admin Hooks @@ -25,7 +31,8 @@ class Hooks { public function __construct() { // on order status change add_action( 'woocommerce_order_status_changed', [ $this, 'on_order_status_change' ], 10, 4 ); - add_action( 'woocommerce_order_status_changed', [ $this, 'on_sub_order_change' ], 99, 3 ); + add_action( 'woocommerce_order_status_changed', [ $this, 'manage_refunded_for_order' ], 15, 4 ); + add_action( 'woocommerce_order_status_changed', [ $this, 'on_sub_order_change' ], 99, 4 ); // create sub-orders add_action( 'woocommerce_checkout_update_order_meta', [ $this, 'split_vendor_orders' ] ); @@ -47,71 +54,16 @@ public function __construct() { add_action( 'woocommerce_reduce_order_stock', [ $this, 'restore_reduced_order_stock' ] ); add_action( 'woocommerce_reduce_order_stock', [ $this, 'handle_order_notes_for_suborder' ], 99 ); - - //Wc remove child order from wc_order_product_lookup & trim child order from posts for analytics - add_action( 'wc-admin_import_orders', [ $this, 'delete_child_order_from_wc_order_product' ] ); - add_filter( 'woocommerce_analytics_orders_select_query', [ $this, 'trim_child_order_for_analytics_order' ] ); - - // remove customer info from order export based on setting - add_filter( 'dokan_csv_export_headers', [ $this, 'hide_customer_info_from_vendor_order_export' ], 20, 1 ); - - // Change order meta key and value. - add_filter( 'woocommerce_order_item_display_meta_key', [ $this, 'change_order_item_display_meta_key' ] ); - add_filter( 'woocommerce_order_item_display_meta_value', [ $this, 'change_order_item_display_meta_value' ], 10, 2 ); - - // Init Order Cache Class - new OrderCache(); - } - - /** - * Change order item display meta key. - * - * @since DOKAN_LITE_SINCE - * - * @param $display_key - * - * @return string - */ - public function change_order_item_display_meta_key( $display_key ) { - if ( 'seller_id' === $display_key ) { - return __( 'Vendor', 'dokan-lite' ); - } - - return $display_key; - } - - /** - * Change order item display meta value. - * - * @since DOKAN_LITE_SINCE - * - * @param $display_value - * @param $meta - * - * @return string - */ - public function change_order_item_display_meta_value( $display_value, $meta ) { - if ( 'seller_id' === $meta->key ) { - $vendor = dokan()->vendor->get( $display_value ); - $url = get_edit_user_link( $display_value ); - if ( function_exists( 'dokan_pro' ) ) { - $url = admin_url( 'admin.php?page=dokan#/vendors/' . $display_value ); - } - - return '" . $vendor->get_shop_name() . ''; - } - - return $display_value; } /** * Update the child order status when a parent order status is changed * - * @param integer $order_id - * @param string $old_status - * @param string $new_status + * @param int $order_id + * @param string $old_status + * @param string $new_status + * @param WC_Order $order * - * @global object $wpdb * @return void */ public function on_order_status_change( $order_id, $old_status, $new_status, $order ) { @@ -119,7 +71,7 @@ public function on_order_status_change( $order_id, $old_status, $new_status, $or // Split order if the order doesn't have parent and sub orders, // and the order is created from dashboard. - if ( empty( $order->post_parent ) && empty( $order->get_meta( 'has_sub_order' ) ) && is_admin() ) { + if ( empty( $order->get_parent_id() ) && empty( $order->get_meta( 'has_sub_order' ) ) && is_admin() ) { // Remove the hook to prevent recursive callas. remove_action( 'woocommerce_order_status_changed', [ $this, 'on_order_status_change' ], 10 ); @@ -145,17 +97,12 @@ public function on_order_status_change( $order_id, $old_status, $new_status, $or ); // if any child orders found, change the orders as well - $sub_orders = get_children( - [ - 'post_parent' => $order_id, - 'post_type' => 'shop_order', - ] - ); - + $sub_orders = dokan()->order->get_child_orders( $order_id ); if ( $sub_orders ) { - foreach ( $sub_orders as $order_post ) { - $order = dokan()->order->get( $order_post->ID ); - $order->update_status( $new_status ); + foreach ( $sub_orders as $sub_order ) { + if ( is_callable( [ $sub_order, 'update_status' ] ) ) { + $sub_order->update_status( $new_status ); + } } } @@ -181,28 +128,49 @@ public function on_order_status_change( $order_id, $old_status, $new_status, $or [ '%s' ], [ '%d', '%s' ] ); + } - if ( $new_status !== 'wc-refunded' ) { - return; - } + /** + * If order status is set to refunded from vendor dashboard, enter remaining balance into vendor balance table. + * + * @since DOKAN_SINCE Created this method from on_order_status_change() + * + * @param int $order_id + * @param string $old_status + * @param string $new_status + * @param WC_Order $order + * + * @return void + */ + public function manage_refunded_for_order( $order_id, $old_status, $new_status, $order ) { + global $wpdb; // verify nonce if ( ! isset( $_POST['_wpnonce'], $_POST['post_type'] ) || ! wp_verify_nonce( sanitize_key( wp_unslash( $_POST['_wpnonce'] ) ), 'dokan_change_status' ) ) { return; } + $exclude_cod_payment = 'on' === dokan_get_option( 'exclude_cod_payment', 'dokan_withdraw', 'off' ); + if ( $exclude_cod_payment && 'cod' === $order->get_payment_method() ) { + return; + } + + if ( $new_status !== 'wc-refunded' ) { + return; + } + if ( $_POST['post_type'] !== 'shop_order' ) { return; } - $balance_data = $wpdb->get_row( + $balance_data = $wpdb->get_var( $wpdb->prepare( - "select * from $wpdb->dokan_vendor_balance where trn_id = %d AND status = 'approved'", - $order_id + "SELECT 1 FROM $wpdb->dokan_vendor_balance WHERE trn_id = %d AND trn_type = %s AND status = 'approved'", + [ $order_id, 'dokan_refund' ] ) ); - if ( $balance_data ) { + if ( ! empty( $balance_data ) ) { return; } @@ -266,46 +234,41 @@ public function on_order_status_change( $order_id, $old_status, $new_status, $or /** * Mark the parent order as complete when all the child order are completed * - * @param integer $order_id - * @param string $old_status - * @param string $new_status + * @param integer $order_id + * @param string $old_status + * @param string $new_status + * @param WC_Order $order * * @return void */ - public function on_sub_order_change( $order_id, $old_status, $new_status ) { - $order_post = get_post( $order_id ); - + public function on_sub_order_change( $order_id, $old_status, $new_status, $order ) { // we are monitoring only child orders - if ( $order_post->post_parent === 0 ) { + if ( $order->get_parent_id() === 0 ) { return; } // get all the child orders and monitor the status - $parent_order_id = $order_post->post_parent; - $sub_orders = get_children( - [ - 'post_parent' => $parent_order_id, - 'post_type' => 'shop_order', - ] - ); + $parent_order_id = $order->get_parent_id(); + $sub_orders = dokan()->order->get_child_orders( $parent_order_id ); + + if ( ! $sub_orders ) { + return; + } // return if any child order is not completed $all_complete = true; - if ( $sub_orders ) { - foreach ( $sub_orders as $sub ) { - $order = dokan()->order->get( $sub->ID ); - - if ( $order->get_status() !== 'completed' ) { - $all_complete = false; - } + foreach ( $sub_orders as $sub_order ) { + if ( $sub_order->get_status() !== 'completed' ) { + $all_complete = false; + break; } } // seems like all the child orders are completed // mark the parent order as complete if ( $all_complete ) { - $parent_order = dokan()->order->get( $parent_order_id ); + $parent_order = wc_get_order( $parent_order_id ); $parent_order->update_status( 'wc-completed', __( 'Mark parent order completed when all child orders are completed.', 'dokan-lite' ) ); } } @@ -391,7 +354,7 @@ public function ensure_vendor_coupon( $valid, $coupon, $discount ) { /** * Restore order stock if it's been reduced by twice * - * @param object $order + * @param WC_Order $order * * @return void */ @@ -401,19 +364,13 @@ public function restore_reduced_order_stock( $order ) { return; } - $has_sub_order = wp_get_post_parent_id( $order->get_id() ); - // seems it's not a parent order so return early - if ( ! $has_sub_order ) { + if ( ! $order->get_meta( 'has_sub_order' ) ) { return; } // Loop over all items. - foreach ( $order->get_items() as $item ) { - if ( ! $item->is_type( 'line_item' ) ) { - continue; - } - + foreach ( $order->get_items( 'line_item' ) as $item ) { // Only reduce stock once for each item. $product = $item->get_product(); $item_stock_reduced = $item->get_meta( '_reduced_stock', true ); @@ -436,69 +393,21 @@ public function restore_reduced_order_stock( $order ) { } } - /** - * Delete_child_order_from_wc_order_product - * - * @param \ActionScheduler_Action $args - * - * @return void - */ - public function delete_child_order_from_wc_order_product( $args ) { - $order = get_post( $args ); - - if ( $order->post_parent ) { - global $wpdb; - $wpdb->delete( $wpdb->prefix . 'wc_order_product_lookup', [ 'order_id' => $order->ID ] ); - $wpdb->delete( $wpdb->prefix . 'wc_order_stats', [ 'order_id' => $order->ID ] ); - } - } - - /** - * Trim child order if parent exist from wc_order_product_lookup for analytics order - * - * @param \WC_Order $orders - * - * @return \WC_Order - */ - public function trim_child_order_for_analytics_order( $orders ) { - foreach ( $orders->data as $key => $order ) { - if ( $order['parent_id'] ) { - unset( $orders->data[ $key ] ); - } - } - - return $orders; - } - - public function hide_customer_info_from_vendor_order_export( $headers ) { - $hide_customer_info = dokan_get_option( 'hide_customer_info', 'dokan_selling', 'off' ); - if ( 'off' !== $hide_customer_info ) { - unset( $headers['billing_email'] ); - unset( $headers['customer_ip'] ); - } - - return $headers; - } - /** * Handle stock level wrong calculation in order notes for suborder * * @since DOKAN_LITE_SINCE * - * @param $order + * @param WC_Order $order * * @return void */ public function handle_order_notes_for_suborder( $order ) { - $has_sub_order = wp_get_post_parent_id( $order->get_id() ); - //return if it has suborder. only continue if this is a suborder - if ( ! $has_sub_order ) { + if ( ! $order->get_meta( 'has_sub_order' ) ) { return; } - $order = wc_get_order( $order->get_id() ); - $notes = wc_get_order_notes( [ 'order_id' => $order->get_id() ] ); //change stock level note status instead of deleting @@ -512,9 +421,7 @@ public function handle_order_notes_for_suborder( $order ) { //adding stock level notes in order foreach ( $order->get_items( 'line_item' ) as $key => $line_item ) { - $item_id = $line_item->get_variation_id() ? $line_item->get_variation_id() : $line_item->get_product_id(); - - $product = wc_get_product( $item_id ); + $product = $line_item->get_product(); if ( $product->get_manage_stock() ) { $stock_quantity = $product->get_stock_quantity(); diff --git a/includes/Order/Manager.php b/includes/Order/Manager.php index f239ec7981..e4606f960b 100644 --- a/includes/Order/Manager.php +++ b/includes/Order/Manager.php @@ -3,13 +3,17 @@ namespace WeDevs\Dokan\Order; use Exception; +use WC_Order; +use WC_Order_Refund; use WeDevs\Dokan\Cache; +use WeDevs\Dokan\Utilities\OrderUtil; use WP_Error; /** * Order Management API * * @since 2.8 + * @since DOKAN_SINCE added HPOS support */ class Manager { @@ -18,265 +22,550 @@ class Manager { * * @since 3.0.0 * @since 3.6.3 rewritten to include filters + * @since DOKAN_SINCE added HPOS support * - * @return WP_Error|int[]|\WC_Order[] + * @return WP_Error|int[]|WC_Order[] */ public function all( $args = [] ) { + $query_args = apply_filters( 'dokan_get_vendor_orders_args', wp_parse_args( $this->get_backward_compatibility_args( $args ), $args ), $args, [] ); + + if ( ! OrderUtil::is_hpos_enabled() ) { + $meta = $query_args['meta_query'] ?? []; + unset( $query_args['meta_query'] ); + + $handle_meta = function ( $query ) use ( $meta ) { + if ( [] === $meta ) { + return $query; + } + + if ( ! isset( $query['meta_query'] ) ) { + $query['meta_query'] = $meta; // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query + } else { + $query['meta_query'] = array_merge( $query['meta_query'], $meta ); // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query + } + + return $query; + }; + + add_filter( 'woocommerce_order_data_store_cpt_get_orders_query', $handle_meta, 10, 1 ); + } + + $orders = wc_get_orders( $query_args ); + + if ( ! OrderUtil::is_hpos_enabled() ) { + remove_filter( 'woocommerce_order_data_store_cpt_get_orders_query', $handle_meta, 10 ); + } + + if ( isset( $args['return'] ) && 'count' === $args['return'] ) { + return apply_filters( 'dokan_get_vendor_orders_count', $orders->total, $args ); + } + + return apply_filters( 'dokan_get_vendor_orders', $orders, $args ); + } + + /** + * Get backward compatibility args + * + * @since DOKAN_SINCE + * + * @param array $args + * + * @return array + */ + protected function get_backward_compatibility_args( $args = [] ) { $default = [ - 'seller_id' => 0, - 'customer_id' => 0, - 'order_id' => 0, - 'status' => 'all', - 'order_date' => '', // only for backward compatibility, will be removed in future, if date is passed in args, it will be ignored - 'date' => [ + 'type' => 'shop_order', + 'seller_id' => 0, + 'customer_id' => 0, + 'order_id' => 0, + 'status' => 'all', + 'order_date' => '', // only for backward compatibility, will be removed in the future, if date is passed in args, it will be ignored + 'date' => [ 'from' => '', 'to' => '', ], - 'search' => '', - 'include' => [], - 'exclude' => [], - 'order_by' => 'post_date', - 'order' => 'DESC', - 'paged' => 1, - 'limit' => 10, - 'return' => 'objects', // objects, ids, count + 'search' => '', + 'include' => [], + 'exclude' => [], + 'orderby' => 'date', + 'order' => 'DESC', + 'limit' => 10, + 'paged' => 1, // do nothing if offset is used + 'offset' => '', + 'return' => 'objects', // objects, ids, count + 'meta_query' => [], // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query + 'meta_query_relation' => 'AND', ]; - $args = apply_filters( 'dokan_get_vendor_orders_args', wp_parse_args( $args, $default ), $args, $default ); + $args = wp_parse_args( $args, $default ); - global $wpdb; - - $fields = ''; - $join = " LEFT JOIN $wpdb->posts p ON do.order_id = p.ID"; - $where = ' AND p.post_status != %s'; - $groupby = ''; - $orderby = ''; - $limits = ''; - $query_args = [ 1, 1, 'trash' ]; + $query_args = [ + 'limit' => $args['limit'], + 'paged' => $args['paged'], + 'offset' => $args['offset'], + 'order' => $args['order'], + 'return' => $args['return'], + 'meta_query' => $args['meta_query'] ?? [], // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query + ]; - // determine which fields to return - if ( in_array( $args['return'], [ 'objects', 'ids' ], true ) ) { - $fields = 'do.order_id'; - } elseif ( in_array( $args['return'], [ 'count' ], true ) ) { - $fields = 'COUNT(do.order_id) AS count'; - } + // fix meta query relation + $query_args['meta_query']['relation'] = $args['meta_query_relation']; - // now apply filtering on the fields + // now apply filtering on the field // filter by seller id if ( ! $this->is_empty( $args['seller_id'] ) ) { - $seller_ids = implode( "','", array_map( 'absint', (array) $args['seller_id'] ) ); - $where .= " AND do.seller_id IN ('$seller_ids')"; + $seller_ids = array_filter( array_map( 'absint', (array) $args['seller_id'] ) ); + $query_args['meta_query'][] = [ + [ + 'key' => '_dokan_vendor_id', + 'value' => $seller_ids, + 'compare' => 'IN', + 'type' => 'NUMERIC', + ], + ]; } // filter customer id if ( ! $this->is_empty( $args['customer_id'] ) ) { - $join .= " LEFT JOIN $wpdb->postmeta pm ON p.ID = pm.post_id"; - $customer_ids = implode( "','", array_map( 'absint', (array) $args['customer_id'] ) ); - $where .= " AND pm.meta_key = '_customer_user' AND pm.meta_value IN ('$customer_ids')"; + $customer_ids = array_filter( array_map( 'absint', (array) $args['customer_id'] ) ); + $query_args['customer_id'] = $customer_ids; } // filter order id if ( ! $this->is_empty( $args['order_id'] ) ) { - $order_ids = implode( "','", array_map( 'absint', (array) $args['order_id'] ) ); - $where .= " AND do.order_id IN ('$order_ids')"; + $order_ids = array_filter( array_map( 'absint', (array) $args['order_id'] ) ); + if ( OrderUtil::is_hpos_enabled() ) { + $query_args['id'] = $order_ids; + } else { + $query_args['post__in'] = $order_ids; + } } // filter status if ( ! $this->is_empty( $args['status'] ) && 'all' !== $args['status'] ) { - $status = implode( "','", esc_sql( (array) $args['status'] ) ); - $where .= " AND do.order_status IN ('$status')"; + $query_args['status'] = (array) $args['status']; } // include order ids if ( ! $this->is_empty( $args['include'] ) ) { - $include = implode( "','", array_map( 'absint', (array) $args['include'] ) ); - $where .= " AND do.order_id IN ('$include')"; + $include = array_filter( array_map( 'absint', (array) $args['include'] ) ); + if ( OrderUtil::is_hpos_enabled() ) { + $query_args['id'] = $include; + } else { + $query_args['post__in'] = $include; + } } // exclude order ids if ( ! $this->is_empty( $args['exclude'] ) ) { - $exclude = implode( "','", array_map( 'absint', (array) $args['exclude'] ) ); - $where .= " AND do.order_id NOT IN ('$exclude')"; + $exclude = array_filter( array_map( 'absint', (array) $args['exclude'] ) ); + $query_args['exclude'] = $exclude; } // date filter $date_from = false; $date_to = false; - // check if start date is set + // check if the start date is set if ( ! $this->is_empty( $args['date']['from'] ) ) { // convert date string to object $date_from = dokan_current_datetime()->modify( $args['date']['from'] ); } - // check if end date is set + // check if the end date is set if ( ! $this->is_empty( $args['date']['to'] ) ) { // convert date string to object $date_to = dokan_current_datetime()->modify( $args['date']['to'] ); } - //swap dates if start date is after end date - $date_filter_applied = false; if ( $date_from && $date_to ) { - // fix start and end date - if ( $date_from > $date_to ) { - $date_from = $date_from->format( 'Y-m-d' ); - $date_to = $date_to->format( 'Y-m-d' ); - $args['date'] = [ - 'from' => $date_to, - 'to' => $date_from, - ]; - } - $where .= ' AND DATE( p.post_date ) BETWEEN %s AND %s'; - $query_args[] = $args['date']['from']; - $query_args[] = $args['date']['to']; + $date_from = $date_from->format( 'Y-m-d' ); + $date_to = $date_to->format( 'Y-m-d' ); + $query_args['date_created'] = $date_from . '...' . $date_to; // if only start date is set } elseif ( $date_from ) { - $where .= ' AND DATE( p.post_date ) >= %s'; - $query_args[] = $date_from->format( 'Y-m-d' ); + $query_args['date_created'] = '>=' . $date_from->format( 'Y-m-d' ); // if only end date is set } elseif ( $date_to ) { - $where .= ' AND DATE( p.post_date ) <= %s'; - $query_args[] = $date_to->format( 'Y-m-d' ); - // if only single date is set + $query_args['date_created'] = '<=' . $date_to->format( 'Y-m-d' ); + // if only a single date is set } elseif ( is_string( $args['date'] ) && ! empty( $args['date'] ) ) { // backward compatibility for old filter - $where .= ' AND DATE( p.post_date ) = %s'; - $query_args[] = $args['date']; + $query_args['date_created'] = $args['date']; } elseif ( ! $this->is_empty( $args['order_date'] ) ) { // backward compatibility for old filter - $order_date = dokan_current_datetime()->modify( $args['order_date'] ); - if ( $order_date ) { - $where .= ' AND DATE( p.post_date ) = %s'; - $query_args[] = $order_date->format( 'Y-m-d' ); - } + $query_args['date_created'] = $args['order_date']; } // filter by search parameter if ( ! $this->is_empty( $args['search'] ) ) { - $search = '%' . $wpdb->esc_like( $args['search'] ) . '%'; - $where .= ' AND p.ID LIKE %s'; - $query_args[] = $search; + if ( OrderUtil::is_hpos_enabled() ) { + $query_args['id'] = (int) $args['search']; + } else { + $query_args['post__in'] = [ (int) $args['search'] ]; + } } // fix order by parameter if ( ! in_array( strtoupper( $args['order'] ), [ 'ASC', 'DESC' ], true ) ) { - $args['order'] = 'DESC'; + $query_args['order'] = 'DESC'; } // fix order by parameter + if ( isset( $args['order_by'] ) ) { + $args['orderby'] = $args['order_by']; + } + + // get supported orderby paramter $supported_order_by = [ - 'post_date' => 'p.post_date', - 'id' => 'do.id', - 'order_id' => 'do.order_id', - 'seller_id' => 'do.seller_id', - 'order_status' => 'do.order_status', + 'name' => 'name', + 'type' => 'type', + 'rand' => 'rand', + 'modified' => 'modified', + 'post_date' => 'date', + 'date' => 'date', + 'id' => 'ID', + 'order_id' => 'ID', + 'seller_id' => 'seller_id', ]; - if ( ! empty( $args['order_by'] ) && array_key_exists( $args['order_by'], $supported_order_by ) ) { - $orderby = "ORDER BY {$supported_order_by[ $args['order_by'] ]} {$args['order']}"; //no need for prepare, we've already whitelisted the parameters - //second order by in case of similar value on first order by field - if ( 'order_id' !== $args['order_by'] ) { - $orderby .= ", do.order_id {$args['order']}"; - } + if ( ! array_key_exists( $args['orderby'], $supported_order_by ) ) { + $args['orderby'] = 'date'; } - // pagination param - if ( ! empty( $args['limit'] ) && - 1 !== intval( $args['limit'] ) && 'count' !== $args['return'] ) { - $limit = absint( $args['limit'] ); - $page = absint( $args['paged'] ); - $page = $page > 0 ? $page : 1; - $offset = ( $page - 1 ) * $limit; + switch ( $args['orderby'] ) { + case 'seller_id': + $query_args = array_merge( + $query_args, [ + 'orderby' => 'meta_value', + 'meta_key' => '_dokan_vendor_id', // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_key + 'meta_type' => 'NUMERIC', + ] + ); + break; - $limits = 'LIMIT %d, %d'; - $query_args[] = $offset; - $query_args[] = $limit; + default: + $query_args['orderby'] = $supported_order_by[ $args['orderby'] ]; + break; } - $cache_group = 'seller_order_data'; - $cache_key = 'seller_orders_all_' . md5( wp_json_encode( $args ) ); // Use all arguments to create a hash used as cache key - if ( is_numeric( $args['seller_id'] ) ) { - $cache_group = "seller_order_data_{$args['seller_id']}"; - } elseif ( ! $this->is_empty( $args['seller_id'] ) && 1 === count( $args['seller_id'] ) ) { - $cache_group = "seller_order_data_{$args['seller_id'][0]}"; + // fix return parameter + if ( 'count' === $query_args['return'] ) { + $query_args['limit'] = 1; + $query_args['return'] = 'ids'; + $query_args['paginate'] = true; } - $orders = Cache::get( $cache_key, $cache_group ); - - if ( 'count' === $args['return'] && false === $orders ) { - // get count of entries - // @codingStandardsIgnoreStart - $orders = (int) $wpdb->get_var( - $wpdb->prepare( - "SELECT $fields FROM {$wpdb->prefix}dokan_orders AS do $join WHERE %d=%d $where", - $query_args - ) - ); + return $query_args; + } - // check for query error - if ( ! empty( $wpdb->last_error ) ) { - return new WP_Error( 'order_manager_db_error', $wpdb->last_error, $wpdb->last_query ); - } + /** + * Get single order details + * + * @since 3.0.0 + * + * @return bool|WC_Order|WC_Order_Refund + */ + public function get( $id ) { + return wc_get_order( $id ); + } - // @codingStandardsIgnoreEnd - Cache::set( $cache_key, $orders, $cache_group ); - } elseif ( in_array( $args['return'], [ 'objects', 'ids' ], true ) && false === $orders ) { - // @codingStandardsIgnoreStart - $orders = $wpdb->get_col( - $wpdb->prepare( - "SELECT $fields FROM {$wpdb->prefix}dokan_orders AS do $join WHERE %d=%d $where $groupby $orderby $limits", - $query_args - ) - ); - // @codingStandardsIgnoreEnd + /** + * Count orders for a seller + * + * @since DOKAN_SINCE moved this function from functions.php file + * + * @param int $seller_id + * + * @return array + */ + public function count_orders( $seller_id ) { + global $wpdb; - // check for query error - if ( ! empty( $wpdb->last_error ) ) { - return new WP_Error( 'order_manager_db_error', $wpdb->last_error, $wpdb->last_query ); + $cache_group = "seller_order_data_{$seller_id}"; + $cache_key = "count_orders_{$seller_id}"; + $counts = Cache::get( $cache_key, $cache_group ); + + if ( false === $counts ) { + $counts = [ + 'wc-pending' => 0, + 'wc-completed' => 0, + 'wc-on-hold' => 0, + 'wc-processing' => 0, + 'wc-refunded' => 0, + 'wc-cancelled' => 0, + 'wc-failed' => 0, + 'wc-checkout-draft' => 0, + 'total' => 0, + ]; + $counts = apply_filters( 'dokan_order_status_count', $counts ); + + $order_table_name = OrderUtil::get_order_table_name(); + if ( OrderUtil::is_hpos_enabled() ) { + // HPOS usage is enabled. + // phpcs:disable + $query = $wpdb->prepare( + "SELECT do.order_status as order_status, count(do.id) as order_count + FROM {$wpdb->prefix}dokan_orders AS do + LEFT JOIN $order_table_name p ON do.order_id = p.id + WHERE + do.seller_id = %d AND + p.status != 'trash' + GROUP BY do.order_status", + [ $seller_id ] + ); + // phpcs:enable + } else { + // traditional CPT-based orders are in use. + // phpcs:disable + $query = $wpdb->prepare( + "SELECT do.order_status as order_status, count(do.id) as order_count + FROM {$wpdb->prefix}dokan_orders AS do + LEFT JOIN $order_table_name p ON do.order_id = p.ID + WHERE + do.seller_id = %d AND + p.post_status != 'trash' + GROUP BY do.order_status", + [ $seller_id ] + ); + // phpcs:enable } - if ( 'objects' === $args['return'] ) { - $order_objects = []; - foreach ( $orders as $order_id ) { - $order = $this->get( $order_id ); - if ( $order ) { - // only send legit order object, this will prevent some fatal error in case order object is not found - $order_objects[] = $order; + $results = $wpdb->get_results( $query ); // phpcs:ignore + + if ( $results ) { + foreach ( $results as $count ) { + if ( isset( $counts[ $count->order_status ] ) ) { + $counts[ $count->order_status ] = intval( $count->order_count ); + $counts['total'] += $counts[ $count->order_status ]; } } - $orders = $order_objects; - unset( $order_objects ); } - Cache::set( $cache_key, $orders, $cache_group ); + $counts = (object) $counts; + Cache::set( $cache_key, $counts, $cache_group ); } - return apply_filters( 'dokan_get_vendor_orders', $orders, $args ); + return $counts; } /** - * Get single order details + * Check if an order with same id is exists in database * - * @since 3.0.0 + * @since DOKAN_SINCE * - * @return bool|\WC_Order|\WC_Order_Refund + * @param int|WC_Order $order_id + * + * @return boolean */ - public function get( $id ) { - return wc_get_order( $id ); + public function is_order_already_synced( $order_id ) { + global $wpdb; + + if ( $order_id instanceof WC_Order ) { + $order_id = $order_id->get_id(); + } + + if ( ! $order_id || ! is_numeric( $order_id ) ) { + return false; + } + + $order_id = $wpdb->get_var( $wpdb->prepare( "SELECT 1 FROM {$wpdb->prefix}dokan_orders WHERE order_id=%d LIMIT 1", $order_id ) ); + + return wc_string_to_bool( $order_id ); + } + + /** + * Check if order is belonged to given seller + * + * @since DOKAN_SINCE + * + * @param int $seller_id + * @param int $order_id + * + * @return bool + */ + public function is_seller_has_order( $seller_id, $order_id ) { + global $wpdb; + return 1 === (int) $wpdb->get_var( + $wpdb->prepare( + "SELECT 1 FROM {$wpdb->prefix}dokan_orders WHERE seller_id = %d AND order_id = %d LIMIT 1", + [ $seller_id, $order_id ] + ) + ); + } + + /** + * Get order of current logged-in users or by given customer id + * + * @since DOKAN_SINCE + * + * @param array $args + * + * @return \stdClass|WC_Order[]|int[] + */ + public function get_customer_orders( $args ) { + // fix customer id if not provided + $customer_id = ! empty( $args['customer_id'] ) ? intval( $args['customer_id'] ) : dokan_get_current_user_id(); + $args = [ + 'customer_id' => $customer_id, + 'limit' => ! empty( $args['limit'] ) ? intval( $args['limit'] ) : 10, + 'paged' => ! empty( $args['paged'] ) ? absint( $args['paged'] ) : 1, + 'return' => ! empty( $args['return_type'] ) && in_array( $args['return_type'], [ 'ids', 'objects' ], true ) ? sanitize_text_field( $args['return_type'] ) : 'ids', + ]; + + return $this->all( + apply_filters( 'woocommerce_my_account_my_orders_query', $args ) + ); + } + + /** + * Get Customer Order IDs by Seller + * + * @since DOKAN_SINCE + * + * @param int $customer_id + * @param int $seller_id + * + * @return int[]|null on failure + */ + public function get_customer_order_ids_by_seller( $customer_id, $seller_id ) { + if ( ! $customer_id || ! $seller_id ) { + return null; + } + + $args = [ + 'customer_id' => $customer_id, + 'seller_id' => $seller_id, + 'return' => 'ids', + 'limit' => -1, + ]; + + $orders = $this->all( apply_filters( 'dokan_get_customer_orders_by_seller', $args ) ); + + return ! empty( $orders ) ? $orders : null; + } + + /** + * @param int|WC_Order $parent_order + * + * @return WC_Order[] + */ + public function get_child_orders( $parent_order ) { + $parent_order_id = is_numeric( $parent_order ) ? $parent_order : $parent_order->get_id(); + + return wc_get_orders( + [ + 'type' => 'shop_order', + 'parent' => $parent_order_id, + 'limit' => -1, + ] + ); + } + + /** + * Delete dokan order + * + * @since DOKAN_SINCE + * + * @param int $order_id + * @param int|null $seller_id + * + * @return void + */ + public function delete_seller_order( $order_id, $seller_id = null ) { + global $wpdb; + + $where = [ + 'order_id' => $order_id, + ]; + + $where_format = [ '%d' ]; + + if ( is_numeric( $seller_id ) ) { + $where['seller_id'] = $seller_id; + $where_format[] = '%d'; + } + + $deleted = $wpdb->delete( $wpdb->prefix . 'dokan_orders', $where, $where_format ); + if ( false === $deleted ) { + dokan_log( sprintf( '[DeleteSellerOrder] Error while deleting dokan order table data, order_id: %d, Database Error: %s ', $order_id, $wpdb->last_error ) ); + + return; // since dokan_orders table data couldn't be deleted, returning from here + } + + // delete from dokan refund table -> order_id + $deleted = $wpdb->query( + $wpdb->prepare( + "DELETE FROM `{$wpdb->prefix}dokan_refund` WHERE order_id = %d", + [ $order_id ] + ) + ); + if ( false === $deleted ) { + dokan_log( sprintf( '[DeleteSellerOrder] Error while deleting refund table data, order_id: %d, Database Error: %s ', $order_id, $wpdb->last_error ) ); + } + + do_action( 'dokan_after_deleting_seller_order', $order_id ); + + // delete data from vendor balance table -> trn_id, trn_type: dokan_orders, dokan_refund, dokan_withdraw + $deleted = $wpdb->query( + $wpdb->prepare( + "DELETE FROM `{$wpdb->prefix}dokan_vendor_balance` + WHERE trn_id = %d AND trn_type in ( %s, %s, %s )", + [ $order_id, 'dokan_orders', 'dokan_refund', 'dokan_withdraw' ] + ) + ); + if ( false === $deleted ) { + dokan_log( sprintf( '[DeleteSellerOrder] Error while deleting vendor balance table data, order_id: %d, Database Error: %s ', $order_id, $wpdb->last_error ) ); + } + + // delete data from reverse withdrawal table -> order_id, trn_type: order_commission, manual_order_commission, order_refund + $deleted = $wpdb->query( + $wpdb->prepare( + "DELETE FROM `{$wpdb->prefix}dokan_reverse_withdrawal` + WHERE trn_id = %d AND trn_type in ( %s, %s, %s )", + [ $order_id, 'order_commission', 'manual_order_commission', 'order_refund' ] + ) + ); + if ( false === $deleted ) { + dokan_log( sprintf( '[DeleteSellerOrder] Error while deleting dokan reverse withdrawal table data, order_id: %d, Database Error: %s ', $order_id, $wpdb->last_error ) ); + } + } + + /** + * Delete dokan order with suborders + * + * @since DOKAN_SINCE + * + * @param int $order_id + * + * @return void + */ + public function delete_seller_order_with_suborders( $order_id ) { + // delete main order + $this->delete_seller_order( $order_id ); + + $sub_orders = $this->get_child_orders( $order_id ); + + if ( $sub_orders ) { + foreach ( $sub_orders as $sub_order ) { + // delete_seller_order for sub_order will be called from Order/Admin/Hooks.php file + $sub_order->delete( true ); + } + } } /** * Creates a sub order * - * @param \WC_Order $parent_order - * @param integer $seller_id - * @param array $seller_products + * @param WC_Order $parent_order + * @param integer $seller_id + * @param array $seller_products * * @return void|WP_Error */ public function create_sub_order( $parent_order, $seller_id, $seller_products ) { dokan_log( 'Creating sub order for vendor: #' . $seller_id ); - $bill_ship = array( + $bill_ship = [ 'billing_country', 'billing_first_name', 'billing_last_name', @@ -297,18 +586,34 @@ public function create_sub_order( $parent_order, $seller_id, $seller_products ) 'shipping_city', 'shipping_state', 'shipping_postcode', - ); + ]; try { - $order = new \WC_Order(); + $order = new WC_Order(); + + // save other details + $order->set_created_via( 'dokan' ); + $order->set_cart_hash( $parent_order->get_cart_hash() ); + $order->set_customer_id( $parent_order->get_customer_id() ); + $order->set_currency( $parent_order->get_currency() ); + $order->set_prices_include_tax( $parent_order->get_prices_include_tax() ); + $order->set_customer_ip_address( $parent_order->get_customer_ip_address() ); + $order->set_customer_user_agent( $parent_order->get_customer_user_agent() ); + $order->set_customer_note( $parent_order->get_customer_note() ); + $order->set_payment_method( $parent_order->get_payment_method() ); + $order->set_payment_method_title( $parent_order->get_payment_method_title() ); + $order->update_meta_data( '_dokan_vendor_id', $seller_id ); // save billing and shipping address foreach ( $bill_ship as $key ) { - if ( is_callable( array( $order, "set_{$key}" ) ) ) { + if ( is_callable( [ $order, "set_{$key}" ] ) ) { $order->{"set_{$key}"}( $parent_order->{"get_{$key}"}() ); } } + // save other meta data + $order->save(); // need to save order data before passing it to a hook + // now insert line items $this->create_line_items( $order, $seller_products ); @@ -321,35 +626,22 @@ public function create_sub_order( $parent_order, $seller_id, $seller_products ) // add coupons if any $this->create_coupons( $order, $parent_order, $seller_products ); - // save other details - $order->set_created_via( 'dokan' ); - $order->set_cart_hash( $parent_order->get_cart_hash() ); - $order->set_customer_id( $parent_order->get_customer_id() ); - $order->set_currency( $parent_order->get_currency() ); - $order->set_prices_include_tax( $parent_order->get_prices_include_tax() ); - $order->set_customer_ip_address( $parent_order->get_customer_ip_address() ); - $order->set_customer_user_agent( $parent_order->get_customer_user_agent() ); - $order->set_customer_note( $parent_order->get_customer_note() ); - $order->set_payment_method( $parent_order->get_payment_method() ); - $order->set_payment_method_title( $parent_order->get_payment_method_title() ); - $order->update_meta_data( '_dokan_vendor_id', $seller_id ); + $order->save(); // need to save order data before passing it to a hook do_action( 'dokan_create_sub_order_before_calculate_totals', $order, $parent_order, $seller_products ); // finally, let the order re-calculate itself and save $order->calculate_totals(); - $order->set_status( $parent_order->get_status() ); $order->set_parent_id( $parent_order->get_id() ); - - $order_id = $order->save(); + $order->save(); // update total_sales count for sub-order - wc_update_total_sales_counts( $order_id ); + wc_update_total_sales_counts( $order->get_id() ); - dokan_log( 'Created sub order : #' . $order_id ); + dokan_log( 'Created sub order : #' . $order->get_id() ); - do_action( 'dokan_checkout_update_order_meta', $order_id, $seller_id ); + do_action( 'dokan_checkout_update_order_meta', $order->get_id(), $seller_id ); } catch ( Exception $e ) { return new WP_Error( 'dokan-suborder-error', $e->getMessage() ); } @@ -358,12 +650,12 @@ public function create_sub_order( $parent_order, $seller_id, $seller_products ) /** * Create line items for order * - * @param object $order wc_get_order - * @param array $products + * @param object $order wc_get_order + * @param array $products * * @return void */ - public function create_line_items( $order, $products ) { + private function create_line_items( $order, $products ) { foreach ( $products as $item ) { $product_item = new \WC_Order_Item_Product(); @@ -388,21 +680,19 @@ public function create_line_items( $order, $products ) { $order->add_item( $product_item ); } - $order->save(); - do_action( 'dokan_after_create_line_items', $order ); } /** * Create tax line items * - * @param \WC_Order $order - * @param \WC_Order $parent_order - * @param array $products + * @param WC_Order $order + * @param WC_Order $parent_order + * @param array $products * * @return void */ - public function create_taxes( $order, $parent_order, $products ) { + private function create_taxes( $order, $parent_order, $products ) { $shipping = $order->get_items( 'shipping' ); $tax_total = 0; @@ -420,31 +710,29 @@ function ( $item ) { foreach ( $parent_order->get_taxes() as $tax ) { $item = new \WC_Order_Item_Tax(); $item->set_props( - array( + [ 'rate_id' => $tax->get_rate_id(), 'label' => $tax->get_label(), 'compound' => $tax->get_compound(), 'rate_code' => \WC_Tax::get_rate_code( $tax->get_rate_id() ), 'tax_total' => $tax_total, 'shipping_tax_total' => empty( $seller_shipping_total_taxes ) ? '' : array_sum( $seller_shipping_total_taxes ), - ) + ] ); $order->add_item( $item ); } - - $order->save(); } /** * Create shipping for a sub-order if neccessary * - * @param \WC_Order $order - * @param \WC_Order $parent_order + * @param WC_Order $order + * @param WC_Order $parent_order * * @return void */ - public function create_shipping( $order, $parent_order ) { + private function create_shipping( $order, $parent_order ) { dokan_log( sprintf( '#%d - Creating Shipping.', $order->get_id() ) ); // Get all shipping methods for parent order @@ -493,12 +781,12 @@ public function create_shipping( $order, $parent_order ) { $item = new \WC_Order_Item_Shipping(); $item->set_props( - array( + [ 'method_title' => $shipping_method->get_name(), 'method_id' => $shipping_method->get_method_id(), 'total' => $shipping_method->get_total(), 'taxes' => $shipping_method->get_taxes(), - ) + ] ); $shipping_totals += $shipping_method->get_total(); $metadata = $shipping_method->get_meta_data(); @@ -517,13 +805,13 @@ public function create_shipping( $order, $parent_order ) { /** * Create coupons for a sub-order if neccessary * - * @param \WC_Order $order - * @param \WC_Order $parent_order - * @param array $products + * @param WC_Order $order + * @param WC_Order $parent_order + * @param array $products * * @return void */ - public function create_coupons( $order, $parent_order, $products ) { + private function create_coupons( $order, $parent_order, $products ) { $used_coupons = $parent_order->get_items( 'coupon' ); $product_ids = array_map( function ( $item ) { @@ -547,17 +835,18 @@ function ( $item ) { if ( $coupon && ! is_wp_error( $coupon ) && - ( array_intersect( $product_ids, $coupon->get_product_ids() ) || + ( + array_intersect( $product_ids, $coupon->get_product_ids() ) || apply_filters( 'dokan_is_order_have_admin_coupon', false, $coupon, [ $seller_id ], $product_ids ) ) ) { $new_item = new \WC_Order_Item_Coupon(); $new_item->set_props( - array( + [ 'code' => $item->get_code(), 'discount' => $item->get_discount(), 'discount_tax' => $item->get_discount_tax(), - ) + ] ); $new_item->add_meta_data( 'coupon_data', $coupon->get_data() ); @@ -565,8 +854,6 @@ function ( $item ) { $order->add_item( $new_item ); } } - - $order->save(); } /** @@ -576,35 +863,46 @@ function ( $item ) { * to each seller dashboard. That's why we need to divide the main order to * some sub-orders based on the number of sellers. * - * @param int $parent_order_id + * @since DOKAN_SINCE added $force_create parameter + * + * @param bool $force_create if this parameter is true, if suborder is already created, they'd be deleted first + * + * @param int $parent_order_id * * @return void */ - public function maybe_split_orders( $parent_order_id ) { - $parent_order = dokan()->order->get( $parent_order_id ); + public function maybe_split_orders( $parent_order_id, $force_create = false ) { + $parent_order = $this->get( $parent_order_id ); + if ( ! $parent_order ) { + //dokan_log( sprintf( 'Invalid Order ID #%d found. Skipping from here.', $parent_order_id ) ); + return; + } - dokan_log( sprintf( 'New Order #%d created. Init sub order.', $parent_order_id ) ); + // return if order already has been processed by checking if a vendor id has been assigned to it + if ( (int) $parent_order->get_meta( '_dokan_vendor_id' ) > 0 ) { + return; + } - if ( wc_string_to_bool( $parent_order->get_meta( 'has_sub_order' ) ) === true ) { - $args = array( - 'post_parent' => $parent_order_id, - 'post_type' => 'shop_order', - 'numberposts' => - 1, - 'post_status' => 'any', - ); + //dokan_log( sprintf( 'New Order #%d created. Init sub order.', $parent_order_id ) ); - $child_orders = get_children( $args ); + if ( $force_create && wc_string_to_bool( $parent_order->get_meta( 'has_sub_order' ) ) === true ) { + $child_orders = $this->get_child_orders( $parent_order->get_id() ); - foreach ( $child_orders as $child ) { - wp_delete_post( $child->ID, true ); + foreach ( $child_orders as $child_order ) { + $child_order->delete( true ); } } $vendors = dokan_get_sellers_by( $parent_order_id ); + if ( empty( $vendors ) ) { + // we didn't find any vendor, so we can't create sub-order + //dokan_log( 'No vendor found, skipping sub order.' ); + return; + } // return if we've only ONE seller if ( count( $vendors ) === 1 ) { - dokan_log( '1 vendor only, skipping sub order.' ); + //dokan_log( '1 vendor only, skipping sub order.' ); $temp = array_keys( $vendors ); $seller_id = reset( $temp ); @@ -626,14 +924,14 @@ public function maybe_split_orders( $parent_order_id ) { $parent_order->update_meta_data( 'has_sub_order', true ); $parent_order->save(); - dokan_log( sprintf( 'Got %s vendors, starting sub order.', count( $vendors ) ) ); + //dokan_log( sprintf( 'Got %s vendors, starting sub order.', count( $vendors ) ) ); // seems like we've got multiple sellers foreach ( $vendors as $seller_id => $seller_products ) { - dokan()->order->create_sub_order( $parent_order, $seller_id, $seller_products ); + $this->create_sub_order( $parent_order, $seller_id, $seller_products ); } - dokan_log( sprintf( 'Completed sub order for #%d.', $parent_order_id ) ); + //dokan_log( sprintf( 'Completed sub order for #%d.', $parent_order_id ) ); } /** @@ -641,17 +939,17 @@ public function maybe_split_orders( $parent_order_id ) { * * @since 3.6.3 * - * @param mixed $var + * @param mixed $item * * @return bool */ - protected function is_empty( $var ) { - if ( empty( $var ) ) { + protected function is_empty( $item ) { + if ( empty( $item ) ) { return true; } // if var is an array, check if it's empty or not - if ( is_array( $var ) && isset( $var[0] ) && intval( $var[0] ) === 0 ) { + if ( is_array( $item ) && isset( $item[0] ) && intval( $item[0] ) === 0 ) { return true; } diff --git a/includes/Order/MiscHooks.php b/includes/Order/MiscHooks.php new file mode 100644 index 0000000000..28d387d7dd --- /dev/null +++ b/includes/Order/MiscHooks.php @@ -0,0 +1,193 @@ +get_parent_id() ) { + global $wpdb; + $wpdb->delete( $wpdb->prefix . 'wc_order_product_lookup', [ 'order_id' => $order->get_id() ] ); + $wpdb->delete( $wpdb->prefix . 'wc_order_stats', [ 'order_id' => $order->get_id() ] ); + } + } + + /** + * Trim child order if parent exist from wc_order_product_lookup for analytics order + * + * @since DOKAN_SINCE Moved this method from Order/Hooks.php file + * + * @param WC_Order $orders + * + * @return WC_Order + */ + public function trim_child_order_for_analytics_order( $orders ) { + foreach ( $orders->data as $key => $order ) { + if ( $order['parent_id'] ) { + unset( $orders->data[ $key ] ); + } + } + + return $orders; + } + + /** + * Remove customer sensitive information while exporting order + * + * @since DOKAN_SINCE Moved this method from Order/Hooks.php file + * + * @param array $headers + * + * @return mixed + */ + public function hide_customer_info_from_vendor_order_export( $headers ) { + $hide_customer_info = dokan_get_option( 'hide_customer_info', 'dokan_selling', 'off' ); + if ( 'off' !== $hide_customer_info ) { + unset( $headers['billing_email'] ); + unset( $headers['customer_ip'] ); + } + + return $headers; + } + + /** + * Add vendor info in restful wc_order + * + * @since DOKAN_SINCE Moved this method from includes/functions.php file + * + * @param WP_REST_Response $response + * + * @return WP_REST_Response + */ + public function add_vendor_info_in_rest_order( $response ) { + $vendor_ids = []; + + foreach ( $response as $data ) { + if ( empty( $data['line_items'] ) ) { + continue; + } + + foreach ( $data['line_items'] as $item ) { + $product_id = ! empty( $item['product_id'] ) ? $item['product_id'] : 0; + $vendor_id = (int) get_post_field( 'post_author', $product_id ); + + if ( $vendor_id && ! in_array( $vendor_id, $vendor_ids, true ) ) { + array_push( $vendor_ids, $vendor_id ); + } + } + } + + if ( ! $vendor_ids ) { + return $response; + } + + $data = $response->get_data(); + + foreach ( $vendor_ids as $store_id ) { + $store = dokan()->vendor->get( $store_id ); + $data['stores'][] = [ + 'id' => $store->get_id(), + 'name' => $store->get_name(), + 'shop_name' => $store->get_shop_name(), + 'url' => $store->get_shop_url(), + 'address' => $store->get_address(), + ]; + } + + // for backward compatibility, if there are multiple vendors, pass empty array. + if ( count( $vendor_ids ) > 1 ) { + $data['store'] = []; + } else { + $store = dokan()->vendor->get( $vendor_ids[0] ); + $data['store'] = [ + 'id' => $store->get_id(), + 'name' => $store->get_name(), + 'shop_name' => $store->get_shop_name(), + 'url' => $store->get_shop_url(), + 'address' => $store->get_address(), + ]; + } + + $response->set_data( $data ); + + return $response; + } + + /** + * Modify order counts for vendor. + * + * @since DOKAN_SINCE Moved this method from includes/wc-functions.php file + * + * @param object $counts + * + * @return object $counts + */ + public function modify_vendor_order_counts( $counts ) { + global $pagenow; + + if ( current_user_can( 'manage_woocommerce' ) ) { + return $counts; + } + + if ( 'edit.php' !== $pagenow || 'shop_order' !== get_query_var( 'post_type' ) ) { + return $counts; + } + + $vendor_id = dokan_get_current_user_id(); + if ( empty( $vendor_id ) ) { + return $counts; + } + + // Current order counts for the vendor. + $vendor_order_counts = dokan_count_orders( $vendor_id ); + + // Modify WP dashboard order counts as per vendor's order counts. + foreach ( $vendor_order_counts as $count_key => $count_value ) { + if ( 'total' !== $count_key ) { + $counts->{$count_key} = $count_value; + } + } + + return $counts; + } +} diff --git a/includes/Order/OrderCache.php b/includes/Order/OrderCache.php index dd383294a9..f2685dd1c8 100644 --- a/includes/Order/OrderCache.php +++ b/includes/Order/OrderCache.php @@ -25,6 +25,9 @@ public function __construct() { add_action( 'wp_trash_post', [ $this, 'reset_cache_before_deleting_order' ], 20 ); add_action( 'before_delete_post', [ $this, 'reset_cache_before_deleting_order' ], 20 ); + + add_action( 'woocommerce_new_order', [ $this, 'clear_product_cache' ], 10, 1 ); + add_action( 'woocommerce_update_order', [ $this, 'clear_product_cache' ], 10, 1 ); } /** @@ -102,4 +105,35 @@ public function reset_cache_before_deleting_order( $order_id ) { self::delete( $seller_id, $order_id ); } + + /** + * This method will delete vendors best-selling product cache after a new order has been made + * + * @since 3.2.11 + * @since DOKAN_SINCE Moved this function from includes/wc-functions.php + * + * @param int $post_id + */ + public function clear_product_cache( $order_id ) { + $order = wc_get_order( $order_id ); + + if ( ! $order ) { + return; + } + + // check if order has suborder + if ( $order->get_meta( 'has_sub_order' ) ) { + // same hooks will be called for individual sub orders + return; + } + + // get vendor id from order + $seller_id = dokan_get_seller_id_by_order( $order_id ); + if ( empty( $seller_id ) ) { + return; + } + + $cache_group = "seller_product_data_$seller_id"; + Cache::invalidate_group( $cache_group ); + } } diff --git a/includes/Order/functions.php b/includes/Order/functions.php index b4d66a8897..b22d1b8c36 100644 --- a/includes/Order/functions.php +++ b/includes/Order/functions.php @@ -7,18 +7,27 @@ * * @param int $order_id * - * @return float + * @deprecated DOKAN_SINCE + * + * @return float|array|WP_Error */ function dokan_get_seller_amount_from_order( $order_id, $get_array = false ) { - $order = dokan()->order->get( $order_id ); - $seller_id = dokan_get_seller_id_by_order( $order_id ); - $net_amount = dokan_get_seller_earnings_by_order( $order, $seller_id ); - $order_shipping = $order->get_total_shipping(); - $order_tax = $order->get_total_tax(); - $shipping_recipient = apply_filters( 'dokan_shipping_fee_recipient', dokan_get_option( 'shipping_fee_recipient', 'dokan_selling', 'seller' ), $order_id ); - $tax_recipient = apply_filters( 'dokan_tax_fee_recipient', dokan_get_option( 'tax_fee_recipient', 'dokan_selling', 'seller' ), $order_id ); + wc_deprecated_function( 'dokan_get_seller_amount_from_order', 'DOKAN_SINCE', 'dokan()->commission->get_earning_by_order()' ); + + $order = wc_get_order( $order_id ); + if ( ! $order ) { + return $order; + } + + $seller_id = dokan_get_seller_id_by_order( $order_id ); + $net_amount = dokan()->commission->get_earning_by_order( $order, 'seller' ); if ( $get_array ) { + $shipping_recipient = apply_filters( 'dokan_shipping_fee_recipient', dokan_get_option( 'shipping_fee_recipient', 'dokan_selling', 'seller' ), $order_id ); + $tax_recipient = apply_filters( 'dokan_tax_fee_recipient', dokan_get_option( 'tax_fee_recipient', 'dokan_selling', 'seller' ), $order_id ); + $order_shipping = $order->get_shipping_total(); + $order_tax = $order->get_total_tax(); + $amount = [ 'net_amount' => $net_amount, 'shipping' => 0, @@ -42,15 +51,18 @@ function dokan_get_seller_amount_from_order( $order_id, $get_array = false ) { /** * Get all the orders from a specific seller * - * @since 3.6.3 Rewritten whole method + * @since 3.6.3 Rewritten whole method + * + * @param int $seller_id + * @param array $args * - * @param int $seller_id - * @param array $args + * @deprecated DOKAN_SINCE since this is an alias only. * - * @global object $wpdb - * @return array + * @return WP_Error|int[]|WC_Order[] */ function dokan_get_seller_orders( $seller_id, $args ) { + wc_deprecated_function( 'dokan_get_seller_orders', 'DOKAN_SINCE', 'dokan()->order->all()' ); + $args['seller_id'] = $seller_id; if ( ! empty( $args['offset'] ) ) { // backward compatibility @@ -65,23 +77,27 @@ function dokan_get_seller_orders( $seller_id, $args ) { /** * Get all the orders from a specific date range * - * @param int $seller_id + * @param string $start_date + * @param string $end_date + * @param int|false $seller_id + * @param string $status * - * @global object $wpdb - * @return array + * @deprecated DOKAN_SINCE + * + * @return WP_Error|WC_Order[] */ function dokan_get_seller_orders_by_date( $start_date, $end_date, $seller_id = false, $status = 'all' ) { + wc_deprecated_function( 'dokan_get_seller_orders_by_date', 'DOKAN_SINCE', 'dokan()->order->all()' ); + // format start and end date - $date_start = dokan_current_datetime()->setTime( 0, 0, 0 ); - $date_end = $date_start->setTime( 23, 59, 59 ); - $start_date = strtotime( $start_date ) ? $date_start->modify( $start_date ) : $date_start; // strtotime is needed because modify() method can return false - $end_date = strtotime( $end_date ) ? $date_end->modify( $end_date ) : $date_end; + $start_date = dokan_current_datetime()->modify( $start_date ); + $end_date = dokan_current_datetime()->modify( $end_date ); $query_args = [ 'seller_id' => $seller_id, 'date' => [ - 'from' => $start_date->format( 'Y-m-d' ), - 'to' => $end_date->format( 'Y-m-d' ), + 'from' => $start_date ? $start_date->format( 'Y-m-d' ) : dokan_current_datetime()->format( 'Y-m-d' ), + 'to' => $end_date ? $end_date->format( 'Y-m-d' ) : dokan_current_datetime()->format( 'Y-m-d' ), ], 'status' => $status, 'return' => 'objects', @@ -90,12 +106,29 @@ function dokan_get_seller_orders_by_date( $start_date, $end_date, $seller_id = f return dokan()->order->all( $query_args ); } +/** + * Get the orders total from a specific seller + * + * @param array $args + * + * @deprecated DOKAN_SINCE + * + * @return int + */ +function dokan_get_seller_orders_number( $args = [] ) { + wc_deprecated_function( 'dokan_get_seller_orders_number', 'DOKAN_SINCE', 'dokan()->order->all()' ); + + $args['return'] = 'count'; + + return dokan()->order->all( $args ); +} + /** * Get seller withdraw by date range * - * @param string $start_date - * @param string $end_date - * @param int $seller_id + * @param string $start_date + * @param string $end_date + * @param int|false $seller_id * * @return object */ @@ -115,130 +148,65 @@ function dokan_get_seller_withdraw_by_date( $start_date, $end_date, $seller_id = } /** - * Get the orders total from a specific seller - * - * @param array $args - * - * @return int - */ -function dokan_get_seller_orders_number( $args = [] ) { - $args['return'] = 'count'; - - return dokan()->order->all( $args ); -} - -/** - * Get all the orders from a specific seller + * Check if order is belonged to given seller * * @param int $seller_id + * @param int $order_id * * @return bool */ function dokan_is_seller_has_order( $seller_id, $order_id ) { - $args = [ - 'seller_id' => $seller_id, - 'order_id' => $order_id, - 'return' => 'objects', - 'limit' => 1, - ]; - - $orders = dokan()->order->all( $args ); - - return ! empty( $orders ); + return dokan()->order->is_seller_has_order( $seller_id, $order_id ); } /** * Count orders for a seller * - * @param int $user_id + * @since DOKAN_SINCE moved the functionality of this function to Order Manager class + * + * @param int $seller_id * - * @global WPDB $wpdb * @return array */ -function dokan_count_orders( $user_id ) { - global $wpdb; - - $cache_group = "seller_order_data_{$user_id}"; - $cache_key = "count_orders_{$user_id}"; - $counts = Cache::get( $cache_key, $cache_group ); - - if ( false === $counts ) { - $counts = [ - 'wc-pending' => 0, - 'wc-completed' => 0, - 'wc-on-hold' => 0, - 'wc-processing' => 0, - 'wc-refunded' => 0, - 'wc-cancelled' => 0, - 'wc-failed' => 0, - 'wc-checkout-draft' => 0, - 'total' => 0, - ]; - - $counts = apply_filters( 'dokan_order_status_count', $counts ); - - $results = $wpdb->get_results( - $wpdb->prepare( - "SELECT do.order_status - FROM {$wpdb->prefix}dokan_orders AS do - LEFT JOIN $wpdb->posts p ON do.order_id = p.ID - WHERE - do.seller_id = %d AND - p.post_type = 'shop_order' AND - p.post_status != 'trash'", $user_id - ) - ); - - if ( $results ) { - foreach ( $results as $order ) { - if ( isset( $counts[ $order->order_status ] ) ) { - $counts[ $order->order_status ] += 1; - $counts['total'] += 1; - } - } - } - - $counts = (object) $counts; - Cache::set( $cache_key, $counts, $cache_group ); - } - - return $counts; +function dokan_count_orders( $seller_id ) { + return dokan()->order->count_orders( $seller_id ); } /** - * Delete a order row from sync table when a order is deleted from WooCommerce + * Delete an order row from sync table when an order is deleted from WooCommerce * * @param int $order_id * + * @deprecated DOKAN_SINCE + * * @return void */ function dokan_delete_sync_order( $order_id ) { - global $wpdb; - $wpdb->delete( $wpdb->prefix . 'dokan_orders', [ 'order_id' => $order_id ] ); + wc_deprecated_function( 'dokan_delete_sync_order', 'DOKAN_SINCE', 'dokan()->order->delete_seller_order()' ); + + dokan()->order->delete_seller_order( $order_id ); } /** - * Delete a order row from sync table to not insert duplicate + * Delete an order row from sync table to not insert duplicate * - * @since 2.4.11 + * @since 2.4.11 * * @param int $order_id * @param int $seller_id * + * @deprecated DOKAN_SINCE + * * @return void */ function dokan_delete_sync_duplicate_order( $order_id, $seller_id ) { - global $wpdb; - $wpdb->delete( - $wpdb->prefix . 'dokan_orders', [ - 'order_id' => $order_id, - 'seller_id' => $seller_id, - ] - ); + wc_deprecated_function( 'dokan_delete_sync_duplicate_order', 'DOKAN_SINCE', 'dokan()->order->delete_seller_order()' ); + + dokan()->order->delete_seller_order( $order_id, $seller_id ); } /** - * Insert a order in sync table once a order is created + * Insert an order in sync table once an order is created * * @param int $order_id * @@ -247,35 +215,30 @@ function dokan_delete_sync_duplicate_order( $order_id, $seller_id ) { function dokan_sync_insert_order( $order_id ) { global $wpdb; - if ( dokan_is_order_already_exists( $order_id ) ) { + $order = wc_get_order( $order_id ); + + if ( dokan()->order->is_order_already_synced( $order ) ) { return; } - if ( get_post_meta( $order_id, 'has_sub_order', true ) === '1' ) { + if ( (int) $order->get_meta( 'has_sub_order', true ) === 1 ) { return; } - $order = wc_get_order( $order_id ); - $seller_id = dokan_get_seller_id_by_order( $order_id ); + $seller_id = dokan_get_seller_id_by_order( $order->get_id() ); $order_total = $order->get_total(); - $order_status = $order->get_status(); + $order_status = 'wc-' . $order->get_status(); if ( dokan_is_admin_coupon_applied( $order, $seller_id ) ) { $net_amount = dokan()->commission->get_earning_by_order( $order, 'seller' ); } else { - $admin_commission = dokan()->commission->get_earning_by_order( $order, 'admin' ); - $net_amount = $order_total - $admin_commission; + $net_amount = dokan()->commission->get_earning_by_order( $order ); } $net_amount = apply_filters( 'dokan_order_net_amount', $net_amount, $order ); $threshold_day = dokan_get_withdraw_threshold( $seller_id ); - dokan_delete_sync_duplicate_order( $order_id, $seller_id ); - - // make sure order status contains "wc-" prefix - if ( stripos( $order_status, 'wc-' ) === false ) { - $order_status = 'wc-' . $order_status; - } + dokan()->order->delete_seller_order( $order_id, $seller_id ); $wpdb->insert( $wpdb->prefix . 'dokan_orders', @@ -305,7 +268,7 @@ function dokan_sync_insert_order( $order_id ) { 'debit' => $net_amount, 'credit' => 0, 'status' => $order_status, - 'trn_date' => current_time( 'mysql' ), + 'trn_date' => dokan_current_datetime()->format( 'Y-m-d H:i:s' ), 'balance_date' => dokan_current_datetime()->modify( "+ $threshold_day days" )->format( 'Y-m-d H:i:s' ), ], [ @@ -329,27 +292,31 @@ function dokan_sync_insert_order( $order_id ) { * * @since 3.2.11 rewritten entire function * - * @param int $order_id + * @param int|WC_Abstract_Order $order * * @return int | 0 on failure */ -function dokan_get_seller_id_by_order( $order_id ) { +function dokan_get_seller_id_by_order( $order ) { global $wpdb; + $order_id = $order; + if ( ! is_numeric( $order ) ) { + $order_id = $order->get_id(); + } + $cache_key = 'get_seller_id_by_order_' . $order_id; $seller_id = Cache::get( $cache_key ); $items = []; - // hack: delete old cached data, will delete this code later version of dokan lite - if ( is_array( $seller_id ) ) { - $seller_id = false; - } - if ( false === $seller_id ) { $seller_id = (int) $wpdb->get_var( $wpdb->prepare( "SELECT seller_id FROM {$wpdb->prefix}dokan_orders WHERE order_id = %d LIMIT 1", $order_id ) ); - Cache::set( $cache_key, $seller_id ); + + // store in cache + if ( ! empty( $seller_id ) ) { + Cache::set( $cache_key, $seller_id ); + } } if ( ! empty( $seller_id ) ) { @@ -357,7 +324,7 @@ function dokan_get_seller_id_by_order( $order_id ) { } // get order instance - $order = wc_get_order( $order_id ); + $order = is_numeric( $order ) ? wc_get_order( $order_id ) : $order; if ( ! $order ) { return apply_filters( 'dokan_get_seller_id_by_order', 0, $items ); @@ -399,34 +366,39 @@ function dokan_get_seller_id_by_order( $order_id ) { * @return string */ function dokan_get_order_status_class( $status ) { + $order_status_class = ''; switch ( $status ) { case 'completed': case 'wc-completed': - return 'success'; + $order_status_class = 'success'; + break; case 'pending': case 'wc-pending': case 'failed': case 'wc-failed': - return 'danger'; + $order_status_class = 'danger'; + break; case 'on-hold': case 'wc-on-hold': - return 'warning'; + $order_status_class = 'warning'; + break; case 'processing': case 'wc-processing': - return 'info'; + $order_status_class = 'info'; + break; case 'refunded': case 'wc-refunded': case 'cancelled': case 'wc-cancelled': - return 'default'; - - default: - return apply_filters( 'dokan_get_order_status_class', '', $status ); + $order_status_class = 'default'; + break; } + + return apply_filters( 'dokan_get_order_status_class', $order_status_class, $status ); } /** @@ -437,61 +409,64 @@ function dokan_get_order_status_class( $status ) { * @return string */ function dokan_get_order_status_translated( $status ) { + $translated_order_status = ''; switch ( $status ) { case 'completed': case 'wc-completed': - return __( 'Completed', 'dokan-lite' ); + $translated_order_status = __( 'Completed', 'dokan-lite' ); + break; case 'pending': case 'wc-pending': - return __( 'Pending Payment', 'dokan-lite' ); + $translated_order_status = __( 'Pending Payment', 'dokan-lite' ); + break; case 'on-hold': case 'wc-on-hold': - return __( 'On-hold', 'dokan-lite' ); + $translated_order_status = __( 'On-hold', 'dokan-lite' ); + break; case 'processing': case 'wc-processing': - return __( 'Processing', 'dokan-lite' ); + $translated_order_status = __( 'Processing', 'dokan-lite' ); + break; case 'refunded': case 'wc-refunded': - return __( 'Refunded', 'dokan-lite' ); + $translated_order_status = __( 'Refunded', 'dokan-lite' ); + break; case 'cancelled': case 'wc-cancelled': - return __( 'Cancelled', 'dokan-lite' ); + $translated_order_status = __( 'Cancelled', 'dokan-lite' ); + break; case 'failed': case 'wc-failed': - return __( 'Failed', 'dokan-lite' ); - - default: - return apply_filters( 'dokan_get_order_status_translated', '', $status ); + $translated_order_status = __( 'Failed', 'dokan-lite' ); + break; } + + return apply_filters( 'dokan_get_order_status_translated', $translated_order_status, $status ); } /** - * Get product items list from order + * Get product items list from order seperated by given glue * * @since 1.4 * - * @param object $order - * @param string $glue + * @param WC_Order $order + * @param string $glue * * @return string list of products */ function dokan_get_product_list_by_order( $order, $glue = ',' ) { - $product_list = ''; - $order_item = $order->get_items(); - - foreach ( $order_item as $product ) { - $prodct_name[] = $product['name']; + $product_names = []; + foreach ( $order->get_items( 'line_item' ) as $line_item ) { + $product_names[] = $line_item['name']; } - $product_list = implode( $glue, $prodct_name ); - - return $product_list; + return implode( $glue, $product_names ); } /** @@ -499,28 +474,30 @@ function dokan_get_product_list_by_order( $order, $glue = ',' ) { * * @since 2.4.11 * - * @param int $order_id + * @param int|WC_Abstract_Order $order * * @return boolean */ -function dokan_is_sub_order( $order_id ) { - $parent_order_id = wp_get_post_parent_id( $order_id ); - - if ( 0 !== $parent_order_id ) { - return true; +function dokan_is_sub_order( $order ) { + if ( is_numeric( $order ) ) { + $order = wc_get_order( $order ); } - return false; + return ! ( ! $order || $order->get_parent_id() === 0 ); } /** * Get total number of orders in Dokan order table * - * @since 2.4.3 + * @since 2.4.3 + * + * @deprecated DOKAN_SINCE * * @return int Order_count */ function dokan_total_orders() { + wc_deprecated_function( 'dokan_total_orders', 'DOKAN_SINCE', 'dokan()->order->all()' ); + global $wpdb; $order_count = $wpdb->get_var( 'SELECT COUNT(id) FROM ' . $wpdb->prefix . 'dokan_orders ' ); @@ -549,7 +526,6 @@ function dokan_get_sellers_by( $order ) { } $order_items = $order->get_items(); - foreach ( $order_items as $item ) { $seller_id = get_post_field( 'post_author', $item['product_id'] ); @@ -579,20 +555,20 @@ function dokan_get_seller_ids_by( $order_id ) { } /** + * Get suborder ids by parent order id * * @param int $parent_order_id * - * @return object[]|null + * @return int[]|null */ function dokan_get_suborder_ids_by( $parent_order_id ) { - global $wpdb; - - $sub_orders = $wpdb->get_results( - $wpdb->prepare( - "SELECT ID FROM {$wpdb->posts} - WHERE post_type = 'shop_order' - AND post_parent = %d", $parent_order_id - ) + $sub_orders = wc_get_orders( + [ + 'type' => 'shop_order', + 'parent' => $parent_order_id, + 'return' => 'ids', + 'limit' => -1, + ] ); if ( empty( $sub_orders ) ) { @@ -603,17 +579,20 @@ function dokan_get_suborder_ids_by( $parent_order_id ) { } /** - * Return admin commisson from an order + * Return admin commission from an order * - * @since 2.4.12 + * @since 2.4.12 * - * @param object $order + * @param WC_Order $order + * @param string $context accepted values are seller and admin * - * @return float $commission + * @deprecated 2.9.21 + * + * @return float */ function dokan_get_admin_commission_by( $order, $context ) { + wc_deprecated_function( 'dokan_get_admin_commission_by', '2.9.21', 'dokan()->commission->get_earning_by_order( $order, $context )' ); $context = 'seller' === $context ? $context : 'admin'; - wc_deprecated_function( 'dokan_get_admin_commission_by', '2.9.21', 'dokan()->commission->get_earning_by_order()' ); return dokan()->commission->get_earning_by_order( $order, $context ); } @@ -621,32 +600,19 @@ function dokan_get_admin_commission_by( $order, $context ) { /** * Get Customer Order IDs by Seller * - * @since 2.6.6 + * @since 2.6.6 * * @param int $customer_id - * * @param int $seller_id * + * @deprecated DOKAN_SINCE + * * @return array|null on failure */ function dokan_get_customer_orders_by_seller( $customer_id, $seller_id ) { - if ( ! $customer_id || ! $seller_id ) { - return null; - } - - $args = [ - 'customer_id' => $customer_id, - 'post_type' => 'shop_order', - 'meta_key' => '_dokan_vendor_id', // phpcs:ignore - 'meta_value' => $seller_id, // phpcs:ignore - 'post_status' => array_keys( wc_get_order_statuses() ), - 'return' => 'ids', - 'numberposts' => - 1, - ]; - - $orders = wc_get_orders( apply_filters( 'dokan_get_customer_orders_by_seller', $args ) ); + wc_deprecated_function( 'dokan_get_customer_orders_by_seller', 'DOKAN_SINCE', 'dokan()->order->get_customer_order_ids_by_seller()' ); - return $orders ? $orders : null; + return dokan()->order->get_customer_order_ids_by_seller( $customer_id, $seller_id ); } /** @@ -734,7 +700,7 @@ function dokan_order_csv_export( $orders, $file = null ) { $line[ $row_key ] = $the_order->get_shipping_method(); break; case 'order_shipping_cost': - $line[ $row_key ] = $the_order->get_total_shipping(); + $line[ $row_key ] = $the_order->get_shipping_total(); break; case 'order_payment_method': $line[ $row_key ] = $the_order->get_payment_method_title(); @@ -746,7 +712,7 @@ function dokan_order_csv_export( $orders, $file = null ) { $line[ $row_key ] = dokan()->commission->get_earning_by_order( $the_order ); break; case 'order_status': - $line[ $row_key ] = $statuses[ 'wc-' . dokan_get_prop( $the_order, 'status' ) ]; + $line[ $row_key ] = $statuses[ 'wc-' . $the_order->get_status() ]; break; case 'order_date': $line[ $row_key ] = dokan_get_date_created( $the_order ); @@ -847,31 +813,165 @@ function dokan_order_csv_export( $orders, $file = null ) { /** * Dokan get seller id by order id * - * @param int order_id + * @param int $order_id + * + * @deprecated DOKAN_SINCE * * @return int */ -function dokan_get_seller_id_by_order_id( $id ) { +function dokan_get_seller_id_by_order_id( $order_id ) { wc_deprecated_function( 'dokan_get_seller_id_by_order_id', '2.9.10', 'dokan_get_seller_id_by_order' ); - return dokan_get_seller_id_by_order( $id ); + return dokan_get_seller_id_by_order( $order_id ); } /** * Check if an order with same id is exists in database * - * @param int order_id + * @param int $order_id + * + * @deprecated DOKAN_SINCE * * @return boolean */ -function dokan_is_order_already_exists( $id ) { - global $wpdb; +function dokan_is_order_already_exists( $order_id ) { + wc_deprecated_function( 'dokan_is_order_already_exists', 'DOKAN_SINCE', 'dokan()->order->is_order_already_synced()' ); + + return dokan()->order->is_order_already_synced( $order_id ); +} + +/** + * Customer has order from current seller + * + * @since 2.8.6 + * @since DOKAN_SINCE moved this function from includes/functions.php + * + * @param int $customer_id + * @param int|null $seller_id + * + * @return bool + */ +function dokan_customer_has_order_from_this_seller( $customer_id, $seller_id = null ) { + $seller_id = ! empty( $seller_id ) ? $seller_id : dokan_get_current_user_id(); + $args = [ + 'seller_id' => $seller_id, + 'customer_id' => $customer_id, + 'return' => 'count', + ]; + $count = dokan()->order->all( $args ); + + return $count > 0; +} + +/** + * Get total sales amount of a seller + * + * @since DOKAN_SINCE moved from includes/functions.php + * + * @param int $seller_id + * + * @return float + */ +function dokan_author_total_sales( $seller_id ) { + $vendor = dokan()->vendor->get( $seller_id ); - if ( ! $id || ! is_numeric( $id ) ) { - return false; + if ( $vendor->id === 0 ) { + return 0; } - $order_id = $wpdb->get_var( $wpdb->prepare( "SELECT order_id FROM {$wpdb->prefix}dokan_orders WHERE order_id=%d", $id ) ); + return $vendor->get_total_sales(); +} + +if ( ! function_exists( 'dokan_get_seller_earnings_by_order' ) ) { + + /** + * Get Seller's net Earnings from a order + * + * @since 2.5.2 + * @since DOKAN_SINCE moved from includes/functions.php + * + * @param WC_ORDER $order + * @param int $seller_id + * + * @deprecated DOKAN_SINCE + * + * @return int $earned + */ + function dokan_get_seller_earnings_by_order( $order, $seller_id ) { + wc_deprecated_function( 'dokan_get_seller_earnings_by_order', 'DOKAN_SINCE', 'dokan()->commission->get_earning_by_order( $order, \'seller\' )' ); + $earned = dokan()->commission->get_earning_by_order( $order, 'seller' ); + + return apply_filters( 'dokan_get_seller_earnings_by_order', $earned, $order, $seller_id ); + } +} + +/** + * Dokan get vendor order details by order ID + * + * @since 3.2.11 rewritten entire function + * @since DOKAN_SINCE Moved this function from includes/functions.php + * + * @param int $order_id + * @param int|null $vendor_id will remove this parameter in future + * + * @return array will return empty array in case order has suborders + */ +function dokan_get_vendor_order_details( $order_id, $vendor_id = null ) { + $order = wc_get_order( $order_id ); + $order_info = []; + + if ( ! $order || $order->get_meta( 'has_sub_order' ) ) { + return apply_filters( 'dokan_get_vendor_order_details', $order_info, $order_id, $vendor_id ); + } + + foreach ( $order->get_items( 'line_item' ) as $item ) { + $info = [ + 'product' => $item['name'], + 'quantity' => $item['quantity'], + 'total' => $item['total'], + ]; + array_push( $order_info, $info ); + } + + return apply_filters( 'dokan_get_vendor_order_details', $order_info, $order_id, $vendor_id ); +} - return $order_id ? true : false; +/** + * Updates bulk orders status by orders ids. + * + * @since 3.7.10 + * @since DOKAN_SINCE Moved this method from includes/functions.php file + * + * @param array $postdata + * + * @return void + */ +function dokan_apply_bulk_order_status_change( $postdata ) { + if ( ! isset( $postdata['status'] ) || ! isset( $postdata['bulk_orders'] ) ) { + return; + } + + $status = sanitize_text_field( wp_unslash( $postdata['status'] ) ); + $orders = array_map( 'absint', $postdata['bulk_orders'] ); + + // -1 means bluk action option value + $excluded_status = [ '-1', 'cancelled', 'refunded' ]; + + if ( in_array( $status, $excluded_status, true ) ) { + return; + } + + foreach ( $orders as $order_id ) { + $order = wc_get_order( $order_id ); + + if ( ! $order instanceof \WC_Order ) { + continue; + } + + if ( in_array( $order->get_status(), $excluded_status, true ) || $order->get_status() === $status ) { + continue; + } + + $order->update_status( $status ); + } } diff --git a/includes/ProductCategory/ProductCategoryCache.php b/includes/ProductCategory/ProductCategoryCache.php index f702774e3f..ae81594735 100644 --- a/includes/ProductCategory/ProductCategoryCache.php +++ b/includes/ProductCategory/ProductCategoryCache.php @@ -2,6 +2,7 @@ namespace WeDevs\Dokan\ProductCategory; +use WC_Product_Query; use WeDevs\Dokan\Cache; /** @@ -20,6 +21,9 @@ public function __construct() { add_action( 'pre_delete_term', [ $this, 'clear_multistep_category_cache' ], 10, 1 ); add_action( 'create_product_cat', [ $this, 'clear_multistep_category_cache' ], 10 ); add_action( 'wpml_sync_term_hierarchy_done', [ $this, 'clear_multistep_category_cache' ], 99 ); + + add_action( 'edit_product_cat', [ $this, 'clear_product_category_cache' ], 10, 1 ); + add_action( 'pre_delete_term', [ $this, 'clear_product_category_cache' ], 10, 1 ); } /** @@ -39,4 +43,44 @@ public function clear_multistep_category_cache() { Cache::delete_transient( 'multistep_categories' ); } + + /** + * This method will delete store category cache after a category is updated + * + * @since 3.2.10 + * @since DOKAN_SINCE Moved this method from includes/wc-functions.php file + * + * @param int $term_id + */ + public function clear_product_category_cache( $term_id ) { + // get taxonomy slug + $term = get_term_by( 'ID', $term_id, 'product_cat' ); + if ( false === $term || ! isset( $term->slug ) ) { + return; + } + + // get associated product id with this category + $args = [ + 'status' => 'publish', + 'limit' => - 1, + 'return' => 'ids', + 'category' => [ $term->slug ], + ]; + + $query = new WC_Product_Query( $args ); + $products = $query->get_products(); + + if ( empty( $products ) ) { + return; + } + + global $wpdb; + $products = implode( ',', array_map( 'absint', (array) $products ) ); + $seller_ids = $wpdb->get_col( "SELECT DISTINCT post_author from {$wpdb->posts} WHERE ID in ($products)" ); // phpcs:ignore + + foreach ( $seller_ids as $seller_id ) { + $transient_group = "seller_product_data_{$seller_id}"; + Cache::invalidate_transient_group( $transient_group ); + } + } } diff --git a/includes/REST/OrderController.php b/includes/REST/OrderController.php index c2a46615e8..89e75dd0cf 100644 --- a/includes/REST/OrderController.php +++ b/includes/REST/OrderController.php @@ -439,6 +439,7 @@ public function get_items( $request ) { 'from' => isset( $request['after'] ) ? sanitize_text_field( wp_unslash( $request['after'] ) ) : '', 'to' => isset( $request['before'] ) ? sanitize_text_field( wp_unslash( $request['before'] ) ) : '', ], + 'return' => 'objects', ]; // Admin can get any vendor orders but vendor can't get other vendors orders. diff --git a/includes/REST/StoreController.php b/includes/REST/StoreController.php index effeb1de6a..d0e491e99f 100644 --- a/includes/REST/StoreController.php +++ b/includes/REST/StoreController.php @@ -60,8 +60,10 @@ public function register_routes() { $this->namespace, '/' . $this->base . '/(?P[\d]+)', [ 'args' => [ 'id' => [ - 'description' => __( 'Unique identifier for the object.', 'dokan-lite' ), - 'type' => 'integer', + 'description' => __( 'Unique identifier for the object.', 'dokan-lite' ), + 'type' => 'integer', + 'sanitize_callback' => 'absint', + 'validate_callback' => 'dokan_rest_validate_store_id', ], ], [ @@ -313,10 +315,6 @@ public function get_store( $request ) { $store = dokan()->vendor->get( $store_id ); - if ( empty( $store->id ) ) { - return new WP_Error( 'no_store_found', __( 'No store found', 'dokan-lite' ), [ 'status' => 404 ] ); - } - $stores_data = $this->prepare_item_for_response( $store, $request ); $response = rest_ensure_response( $stores_data ); @@ -333,13 +331,9 @@ public function get_store( $request ) { * @return WP_Error|WP_REST_Response */ public function delete_store( $request ) { - $store_id = ! empty( $request['id'] ) ? (int) $request['id'] : 0; + $store_id = $request['id']; $reassign = false === $request['reassign'] ? null : absint( $request['reassign'] ); - if ( empty( $store_id ) ) { - return new WP_Error( 'no_vendor_found', __( 'No vendor found for updating status', 'dokan-lite' ), [ 'status' => 400 ] ); - } - if ( ! empty( $reassign ) ) { if ( $reassign === $store_id || ! get_userdata( $reassign ) ) { return new WP_Error( 'rest_user_invalid_reassign', __( 'Invalid user ID for reassignment.', 'dokan-lite' ), [ 'status' => 400 ] ); @@ -384,10 +378,6 @@ public function update_store_permissions_check( $request ) { public function update_store( $request ) { $store = dokan()->vendor->get( (int) $request->get_param( 'id' ) ); - if ( empty( $store->get_id() ) ) { - return new WP_Error( 'no_store_found', __( 'No store found', 'dokan-lite' ), [ 'status' => 404 ] ); - } - $params = $request->get_params(); $store_id = dokan()->vendor->update( $store->get_id(), $params ); diff --git a/includes/Tracker.php b/includes/Tracker.php index 9612b21859..711a9e0fde 100644 --- a/includes/Tracker.php +++ b/includes/Tracker.php @@ -65,7 +65,7 @@ function () { protected function get_order_count() { global $wpdb; - return (int) $wpdb->get_var( "SELECT count(ID) FROM $wpdb->posts WHERE post_type = 'shop_order' and post_status IN ('wc-completed', 'wc-processing', 'wc-on-hold', 'wc-refunded');" ); + return (int) $wpdb->get_var( "SELECT count(id) FROM {$wpdb->prefix}dokan_orders WHERE order_status IN ('wc-completed', 'wc-processing', 'wc-on-hold', 'wc-refunded');" ); } /** diff --git a/includes/Upgrade/Upgrades/V_1_2.php b/includes/Upgrade/Upgrades/V_1_2.php index f294c59a90..3c4177afe6 100644 --- a/includes/Upgrade/Upgrades/V_1_2.php +++ b/includes/Upgrade/Upgrades/V_1_2.php @@ -5,8 +5,60 @@ use WeDevs\Dokan\Abstracts\DokanUpgrader; class V_1_2 extends DokanUpgrader { - public static function generate_sync_table() { - dokan_generate_sync_table(); + self::dokan_generate_sync_table(); + } + + /** + * Generate dokan sync table + * + * @since DOKAN_SINCE moved from includes/functions.php file + * + * @deprecated since 2.4.3 + */ + private static function dokan_generate_sync_table() { + global $wpdb; + + $orders = $wpdb->get_results( + $wpdb->prepare( + "SELECT oi.order_id, p.ID as product_id, p.post_title, p.post_author as seller_id, + oim2.meta_value as order_total, p.post_status as order_status + FROM {$wpdb->prefix}woocommerce_order_items oi + INNER JOIN {$wpdb->prefix}woocommerce_order_itemmeta oim ON oim.order_item_id = oi.order_item_id + INNER JOIN {$wpdb->prefix}woocommerce_order_itemmeta oim2 ON oim2.order_item_id = oi.order_item_id + INNER JOIN $wpdb->posts p ON oi.order_id = p.ID + WHERE + oim.meta_key = %s AND + oim2.meta_key = %s + GROUP BY oi.order_id", + '_product_id', + '_line_total' + ) + ); + + $table_name = $wpdb->prefix . 'dokan_orders'; + + $wpdb->query( "TRUNCATE TABLE {$wpdb->prefix}dokan_orders" ); + + foreach ( $orders as $order ) { + $net_amount = dokan()->commission->get_earning_by_order( $order->order_id, 'seller' ); + $wpdb->insert( + $table_name, + [ + 'order_id' => $order->order_id, + 'seller_id' => $order->seller_id, + 'order_total' => $order->order_total, + 'net_amount' => $net_amount, + 'order_status' => $order->order_status, + ], + [ + '%d', + '%d', + '%f', + '%f', + '%s', + ] + ); + } } } diff --git a/includes/Utilities/OrderUtil.php b/includes/Utilities/OrderUtil.php new file mode 100644 index 0000000000..7bb2df1990 --- /dev/null +++ b/includes/Utilities/OrderUtil.php @@ -0,0 +1,212 @@ +=' ) ) { + return false; + } + + return WCOrderUtil::custom_orders_table_usage_is_enabled(); + } + + /** + * Checks if posts and order custom table sync are enabled, and there are no pending orders. + * + * @since DOKAN_SINCE + * + * @return bool + */ + public static function is_custom_order_tables_in_sync(): bool { + return self::is_hpos_enabled() && WCOrderUtil::is_custom_order_tables_in_sync(); + } + + /** + * Helper function to get whether the order cache should be used or not. + * + * @since DOKAN_SINCE + * + * @return bool True if the order cache should be used, false otherwise. + */ + public static function is_order_cache_usages_enabled(): bool { + return self::is_hpos_enabled() && WCOrderUtil::orders_cache_usage_is_enabled(); + } + + /** + * Helper function to initialize the global $theorder object, mostly used during order meta boxes rendering. + * + * @since DOKAN_SINCE + * + * @param WC_Order|WP_Post $post_or_order_object Post or order object. + * + * @return WC_Order_Refund|bool|WC_Order WC_Order object. + */ + public static function init_theorder_object( $post_or_order_object ) { + if ( self::is_hpos_enabled() ) { + return WCOrderUtil::init_theorder_object( $post_or_order_object ); + } + + global $theorder; + if ( $theorder instanceof WC_Order ) { + return $theorder; + } + + if ( $post_or_order_object instanceof WC_Order ) { + $theorder = $post_or_order_object; + } else { + $theorder = wc_get_order( $post_or_order_object->ID ); + } + return $theorder; + } + + /** + * Helper function to id from a post or order object. + * + * @since DOKAN_SINCE + * + * @param WP_Post|WC_Order $post_or_order_object WP_Post/WC_Order object to get ID for. + * + * @return int Order or post ID. + */ + public static function get_post_or_order_id( $post_or_order_object ): int { + if ( self::is_hpos_enabled() ) { + return WCOrderUtil::get_post_or_order_id( $post_or_order_object ); + } elseif ( is_numeric( $post_or_order_object ) ) { + return (int) $post_or_order_object; + } elseif ( $post_or_order_object instanceof WC_Order ) { + return $post_or_order_object->get_id(); + } elseif ( $post_or_order_object instanceof WP_Post ) { + return $post_or_order_object->ID; + } + return 0; + } + + /** + * Checks if passed id, post or order object is a WC_Order object. + * + * This method can be removed, and we can directly use WC OrderUtil::is_order method in future + * if we set the minimum wc version requirements to 8.0 + * + * @since DOKAN_SINCE + * + * @param int|WP_Post|WC_Order $order_id Order ID, post object or order object. + * @param string[] $types Types to match against. + * + * @return bool Whether the passed param is an order. + */ + public static function is_order( $order_id, $types = [] ): bool { + $types = empty( $types ) ? wc_get_order_types() : $types; + if ( self::is_hpos_enabled() ) { + return WCOrderUtil::is_order( $order_id, $types ); + } + + return in_array( get_post_type( $order_id ), $types, true ); + } + + /** + * Helper function to get the screen name of order page in wp-admin. + * + * This method can be removed, and we can directly use WC OrderUtil::get_order_admin_screen method in future + * if we set minimum wc version requirements to 8.0 + * + * @since DOKAN_SINCE + * + * @return string + */ + public static function get_order_admin_screen(): string { + return self::is_hpos_enabled() && function_exists( 'wc_get_page_screen_id' ) + ? wc_get_page_screen_id( 'shop-order' ) + : 'shop_order'; + } + + /** + * Get admin order list page url + * + * @since DOKAN_SINCE + * + * @return string + */ + public static function get_admin_order_list_url(): string { + return self::is_hpos_enabled() + ? esc_url_raw( admin_url( 'admin.php?page=wc-orders' ) ) + : esc_url_raw( admin_url( 'edit.php?post_type=shop_order' ) ); + } + + /** + * Helper method to generate admin URL for new order. + * + * @since DOKAN_SINCE + * + * @return string Link for new order. + */ + public static function get_order_admin_new_url(): string { + if ( ! self::is_hpos_enabled() ) { + return admin_url( 'post-new.php?post_type=shop_order' ); + } + return WCOrderUtil::get_order_admin_new_url(); + } + + /** + * Get admin order edit page url + * + * @since DOKAN_SINCE + * + * @param int $order_id + * + * @return string + */ + public static function get_admin_order_edit_url( $order_id = 0 ): string { + if ( ! self::is_hpos_enabled() ) { + return admin_url( 'post.php?post=' . absint( $order_id ) ) . '&action=edit'; + } + + return WCOrderUtil::get_order_admin_edit_url( $order_id ); + } + + /** + * Get the custom orders table name for wc. + * + * @since DOKAN_SINCE + * + * @return string + */ + public static function get_order_table_name() { + if ( ! self::is_hpos_enabled() ) { + global $wpdb; + return $wpdb->posts; + } + + return WCOrderUtil::get_table_for_orders(); + } + + /** + * Get the name of the database table that's currently in use for orders. + * + * @since DOKAN_SINCE + * + * @return string + */ + public static function get_table_for_order_meta() { + if ( ! self::is_hpos_enabled() ) { + global $wpdb; + return $wpdb->postmeta; + } + + return WCOrderUtil::get_table_for_order_meta(); + } +} diff --git a/includes/Vendor/Vendor.php b/includes/Vendor/Vendor.php index 1571add537..cf9847befe 100644 --- a/includes/Vendor/Vendor.php +++ b/includes/Vendor/Vendor.php @@ -3,8 +3,10 @@ namespace WeDevs\Dokan\Vendor; use Automattic\WooCommerce\Utilities\NumberUtil; +use WC_Order; use WeDevs\Dokan\Cache; use WeDevs\Dokan\Product\ProductCache; +use WP_Error; use WP_Query; use WP_User; @@ -429,7 +431,7 @@ public function get_location() { $location = $this->get_info_part( 'location' ); if ( $location ) { - list( $default['lat'], $default['long'] ) = explode( ',', $location ); + [ $default['lat'], $default['long'] ] = explode( ',', $location ); } return $location; @@ -512,7 +514,7 @@ public function get_per_page() { * @return boolean */ public function show_email() { - return 'yes' == $this->get_info_part( 'show_email' ); + return 'yes' === $this->get_info_part( 'show_email' ); } /** @@ -523,7 +525,7 @@ public function show_email() { * @return boolean */ public function toc_enabled() { - return 'on' == $this->get_info_part( 'enable_tnc' ); + return 'on' === $this->get_info_part( 'enable_tnc' ); } /** @@ -545,7 +547,7 @@ public function get_toc() { * @return boolean */ public function show_more_products_tab() { - return 'yes' == $this->get_info_part( 'show_more_ptab' ); + return 'yes' === $this->get_info_part( 'show_more_ptab' ); } /** @@ -554,9 +556,7 @@ public function show_more_products_tab() { * @return object */ public function get_products() { - $products = dokan()->product->all( [ - 'author' => $this->id - ] ); + $products = dokan()->product->all( [ 'author' => $this->id ] ); if ( ! $products ) { return null; @@ -577,11 +577,13 @@ public function get_published_products() { $transient_key = "get_published_products_{$this->get_id()}"; if ( false === ( $products = Cache::get_transient( $transient_key, $transient_group ) ) ) { - $products = dokan()->product->all( [ - 'author' => $this->id, - 'post_status' => 'publish', - 'fields' => 'ids' - ] ); + $products = dokan()->product->all( + [ + 'author' => $this->id, + 'post_status' => 'publish', + 'fields' => 'ids', + ] + ); $products = $products->posts; Cache::set_transient( $transient_key, $products, $transient_group ); } @@ -745,10 +747,10 @@ public function get_vendor_used_terms_list( $vendor_id, $taxonomy ){ [ 'taxonomy' => $taxonomy, 'field' => 'slug', - 'terms' => $term + 'terms' => $term, ], ], - 'fields' => 'ids' + 'fields' => 'ids', ]; $all_posts = get_posts( $args ); @@ -761,8 +763,6 @@ public function get_vendor_used_terms_list( $vendor_id, $taxonomy ){ } } -// Cache::set_transient( $transient_key, $author_terms, $transient_group ); - return $author_terms; } @@ -771,9 +771,10 @@ public function get_vendor_used_terms_list( $vendor_id, $taxonomy ){ * * @since 3.0.0 * - * @return wc_get_order objects + * @return WP_Error|WC_Order[] objects */ public function get_orders( $args = [] ) { + $args['seller_id'] = empty( $args['seller_id'] ) ? $this->get_id() : $args['seller_id']; return dokan()->order->all( $args ); } @@ -783,7 +784,21 @@ public function get_orders( $args = [] ) { * @return float */ public function get_total_sales() { - return dokan_author_total_sales( $this->id ); + global $wpdb; + + $cache_group = "seller_order_data_{$this->id}"; + $cache_key = "earning_{$this->id}"; + $earnings = Cache::get( $cache_key, $cache_group ); + + if ( false === $earnings ) { + $earnings = (float) $wpdb->get_var( + $wpdb->prepare( "SELECT SUM(order_total) as earnings FROM {$wpdb->prefix}dokan_orders WHERE seller_id = %d AND order_status IN('wc-completed', 'wc-processing', 'wc-on-hold')", $this->id ) + ); + + Cache::set( $cache_key, $earnings, $cache_group ); + } + + return apply_filters( 'dokan_seller_total_sales', $earnings, $this->id ); } /** @@ -810,35 +825,28 @@ public function get_earnings( $formatted = true, $on_date = '' ) { $on_date = $on_date->format( 'Y-m-d H:i:s' ); if ( false === $earning ) { - $installed_version = get_option( 'dokan_theme_version' ); - $status = dokan_withdraw_get_active_order_status_in_comma(); - - if ( ! $installed_version || version_compare( $installed_version, '2.8.2', '>' ) ) { - $debit_balance = $wpdb->get_var( $wpdb->prepare( + $status = dokan_withdraw_get_active_order_status_in_comma(); + $debit_balance = $wpdb->get_var( + $wpdb->prepare( "SELECT SUM(debit) AS earnings FROM {$wpdb->prefix}dokan_vendor_balance WHERE vendor_id = %d AND DATE(balance_date) <= %s AND status IN ($status) AND trn_type = 'dokan_orders'", - $this->id, $on_date ) ); + $this->id, $on_date + ) + ); - $credit_balance = $wpdb->get_var( $wpdb->prepare( + $credit_balance = $wpdb->get_var( + $wpdb->prepare( "SELECT SUM(credit) AS earnings FROM {$wpdb->prefix}dokan_vendor_balance WHERE vendor_id = %d AND DATE(balance_date) <= %s AND trn_type = %s AND status = %s", - $this->id, $on_date, 'dokan_refund', 'approved' ) ); - - $earning = floatval( $debit_balance - $credit_balance ); - } else { - $earning = (float) $wpdb->get_var( $wpdb->prepare( - "SELECT - SUM(net_amount) as earnings - FROM - {$wpdb->prefix}dokan_orders as do LEFT JOIN {$wpdb->prefix}posts as p ON do.order_id = p.ID - WHERE - seller_id = %d AND DATE(p.post_date) <= %s AND order_status IN ($status)", - $this->id, $on_date ) ); - } + $this->id, $on_date, 'dokan_refund', 'approved' + ) + ); + + $earning = floatval( $debit_balance - $credit_balance ); Cache::set( $cache_key, $earning, $cache_group ); } @@ -874,24 +882,19 @@ public function get_balance( $formatted = true, $on_date = '' ) { if ( false === $earning ) { - $installed_version = get_option( 'dokan_theme_version' ); - $status = dokan_withdraw_get_active_order_status_in_comma(); - - if ( ! $installed_version || version_compare( $installed_version, '2.8.2', '>' ) ) { - $result = $wpdb->get_row( $wpdb->prepare( - "SELECT SUM(debit) as earnings, - ( SELECT SUM(credit) FROM {$wpdb->prefix}dokan_vendor_balance WHERE vendor_id = %d AND DATE(balance_date) <= %s ) as withdraw - from {$wpdb->prefix}dokan_vendor_balance - WHERE vendor_id = %d AND DATE(balance_date) <= %s AND status IN($status)", - $seller_id, $on_date, $seller_id, $on_date ) ); - } else { - $result = $wpdb->get_row( $wpdb->prepare( - "SELECT SUM(net_amount) as earnings, - (SELECT SUM(amount) FROM {$wpdb->prefix}dokan_withdraw WHERE user_id = %d AND status = 1 AND DATE(`date`) <= %s) as withdraw - FROM {$wpdb->prefix}dokan_orders as do LEFT JOIN {$wpdb->prefix}posts as p ON do.order_id = p.ID - WHERE seller_id = %d AND DATE(p.post_date) <= %s AND order_status IN ($status)", - $seller_id, $on_date, $seller_id, $date ) ); - } + $status = dokan_withdraw_get_active_order_status_in_comma(); + $result = $wpdb->get_row( + $wpdb->prepare( + "SELECT SUM(debit) as earnings, + ( + SELECT SUM(credit) FROM {$wpdb->prefix}dokan_vendor_balance + WHERE vendor_id = %d AND DATE(balance_date) <= %s + ) as withdraw + from {$wpdb->prefix}dokan_vendor_balance + WHERE vendor_id = %d AND DATE(balance_date) <= %s AND status IN($status)", + $seller_id, $on_date, $seller_id, $on_date + ) + ); $earning = (float) $result->earnings - (float) NumberUtil::round( $result->withdraw, wc_get_rounding_precision() ); @@ -902,8 +905,11 @@ public function get_balance( $formatted = true, $on_date = '' ) { $decimal = ( 0 === wc_get_price_decimals() ) ? 2 : wc_get_price_decimals(); return apply_filters( 'dokan_get_formatted_seller_balance', - wc_price( $earning, [ 'decimals' => $decimal ] - ), $this->id ); + wc_price( + $earning, [ 'decimals' => $decimal ] + ), + $this->id + ); } return apply_filters( 'dokan_get_seller_balance', $earning, $this->id ); diff --git a/includes/functions-compatibility.php b/includes/functions-compatibility.php index da10761cb7..1ab9c39397 100644 --- a/includes/functions-compatibility.php +++ b/includes/functions-compatibility.php @@ -74,11 +74,7 @@ function dokan_replace_func( $old_method, $new_method, $object = null ) { * @return String date */ function dokan_get_date_created( $order ) { - if ( version_compare( WC_VERSION, '2.7', '>' ) ) { - return wc_format_datetime( $order->get_date_created(), get_option( 'date_format' ) . ', ' . get_option( 'time_format' ) ); - } - - return $order->order_date; + return wc_format_datetime( $order->get_date_created(), wc_date_format() . ', ' . wc_time_format() ); } /** diff --git a/includes/functions-rest-api.php b/includes/functions-rest-api.php new file mode 100644 index 0000000000..e0f3ae7504 --- /dev/null +++ b/includes/functions-rest-api.php @@ -0,0 +1,39 @@ +get_attributes(); + + if ( isset( $attributes['args'][ $key ] ) ) { + $argument = $attributes['args'][ $key ]; + // Check to make sure our argument is an int. + if ( 'integer' === $argument['type'] && ! is_numeric( $value ) ) { + // translators: 1) argument name, 2) argument value + return new WP_Error( 'rest_invalid_param', sprintf( esc_html__( '%1$s is not of type %2$s', 'dokan-lite' ), $key, 'integer' ), [ 'status' => 400 ] ); + } + } else { + // this code won't execute because we have specified this argument as required. + // if we reused this validation callback and did not have required args then this would fire. + // translators: 1) argument name + return new WP_Error( 'rest_invalid_param', sprintf( esc_html__( '%s was not registered as a request argument.', 'dokan-lite' ), $key ), [ 'status' => 400 ] ); + } + + $vendor = dokan()->vendor->get( intval( $value ) ); + if ( $vendor->get_id() && $vendor->is_vendor() ) { + return true; + } + + // translators: 1) rest api endpoint key name + return new WP_Error( 'rest_invalid_param', sprintf( esc_html__( 'No store found with given store id', 'dokan-lite' ), $key ), [ 'status' => 400 ] ); + } +} diff --git a/includes/functions.php b/includes/functions.php index 88f474add5..c495fcf7ea 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -1,6 +1,7 @@ get_var( - $wpdb->prepare( "SELECT SUM(order_total) as earnings FROM {$wpdb->prefix}dokan_orders WHERE seller_id = %d AND order_status IN('wc-completed', 'wc-processing', 'wc-on-hold')", $seller_id ) - ); - - Cache::set( $cache_key, $earnings, $cache_group ); - } - - return apply_filters( 'dokan_seller_total_sales', $earnings, $seller_id ); -} - -/** - * Generate dokan sync table - * - * @deprecated since 2.4.3 - */ -function dokan_generate_sync_table() { - wc_deprecated_function( 'dokan_generate_sync_table', '2.4.3' ); - - global $wpdb; - - $orders = $wpdb->get_results( - $wpdb->prepare( - "SELECT oi.order_id, p.ID as product_id, p.post_title, p.post_author as seller_id, - oim2.meta_value as order_total, p.post_status as order_status - FROM {$wpdb->prefix}woocommerce_order_items oi - INNER JOIN {$wpdb->prefix}woocommerce_order_itemmeta oim ON oim.order_item_id = oi.order_item_id - INNER JOIN {$wpdb->prefix}woocommerce_order_itemmeta oim2 ON oim2.order_item_id = oi.order_item_id - INNER JOIN $wpdb->posts p ON oi.order_id = p.ID - WHERE - oim.meta_key = %s AND - oim2.meta_key = %s - GROUP BY oi.order_id", - '_product_id', - '_line_total' - ) - ); - - $table_name = $wpdb->prefix . 'dokan_orders'; - - $wpdb->query( "TRUNCATE TABLE {$wpdb->prefix}dokan_orders" ); - - if ( $orders ) { - foreach ( $orders as $order ) { - if ( dokan_is_admin_coupon_applied( $order, $seller_id ) ) { - $net_amount = dokan()->commission->get_earning_by_order( $order, 'seller' ); - } else { - $admin_commission = dokan()->commission->get_earning_by_order( $order, 'admin' ); - $net_amount = $order_total - $admin_commission; - } - - $wpdb->insert( - $table_name, - [ - 'order_id' => $order->order_id, - 'seller_id' => $order->seller_id, - 'order_total' => $order->order_total, - 'net_amount' => $net_amount, - 'order_status' => $order->order_status, - ], - [ - '%d', - '%d', - '%f', - '%f', - '%s', - ] - ); - } - } -} - -if ( ! function_exists( 'dokan_get_seller_earnings_by_order' ) ) { - - /** - * Get Seller's net Earnings from a order - * - * @since 2.5.2 - * - * @param WC_ORDER $order - * @param int $seller_id - * - * @return int $earned - */ - function dokan_get_seller_earnings_by_order( $order, $seller_id ) { - $earned = $order->get_total() - dokan_get_admin_commission_by( $order, $seller_id ); - - return apply_filters( 'dokan_get_seller_earnings_by_order', $earned, $order, $seller_id ); - } -} - if ( ! function_exists( 'dokan_get_seller_percentage' ) ) { /** @@ -1132,7 +1028,7 @@ function dokan_admin_product_columns( $columns ) { * @return mixed */ function dokan_get_option( $option, $section, $default = '' ) { - list( $option, $section ) = dokan_admin_settings_rearrange_map( $option, $section ); + [ $option, $section ] = dokan_admin_settings_rearrange_map( $option, $section ); $options = get_option( $section ); @@ -1898,8 +1794,12 @@ function dokan_disable_admin_bar( $show_admin_bar ) { if ( $current_user->ID !== 0 ) { $role = reset( $current_user->roles ); + $block_admin_access = dokan_get_option( 'admin_access', 'dokan_general', 'on' ); + if ( OrderUtil::is_hpos_enabled() ) { + $block_admin_access = 'on'; + } - if ( dokan_get_option( 'admin_access', 'dokan_general', 'on' ) === 'on' ) { + if ( $block_admin_access === 'on' ) { if ( in_array( $role, [ 'seller', 'customer', 'vendor_staff' ], true ) ) { return false; } @@ -1938,95 +1838,6 @@ function dokan_filter_product_for_current_vendor( $query ) { add_filter( 'pre_get_posts', 'dokan_filter_product_for_current_vendor' ); -/** - * Filter orders of current user - * - * @since 2.9.4 - * - * @param object $query - * - * @param object $args - * - * @return object $args - */ -function dokan_filter_orders_for_current_vendor( $args, $query ) { - global $wpdb; - - if ( ! is_admin() || ! $query->is_main_query() ) { - return $args; - } - - if ( ! isset( $query->query_vars['post_type'] ) ) { - return $args; - } - - if ( ! in_array( $query->query_vars['post_type'], [ 'shop_order', 'wc_booking' ], true ) ) { - return $args; - } - - $vendor_id = 0; - - if ( ! current_user_can( 'manage_woocommerce' ) ) { - $vendor_id = dokan_get_current_user_id(); - } elseif ( ! empty( $_GET['vendor_id'] ) ) { // phpcs:ignore - $vendor_id = absint( wp_unslash( $_GET['vendor_id'] ) ); // phpcs:ignore - } - - if ( ! $vendor_id ) { - return $args; - } - - $args['join'] .= " LEFT JOIN {$wpdb->prefix}dokan_orders as do ON $wpdb->posts.ID=do.order_id"; - $args['where'] .= " AND do.seller_id=$vendor_id"; - - return $args; -} - -add_filter( 'posts_clauses', 'dokan_filter_orders_for_current_vendor', 12, 2 ); - -/** - * Dokan map meta cpas for vendors - * - * @param array $caps - * @param string $cap - * @param int $user_id - * @param array $args - * - * @return array - */ -function dokan_map_meta_caps( $caps, $cap, $user_id, $args ) { - global $post; - - if ( ! is_admin() ) { - return $caps; - } - - $post_id = ! empty( $args[0] ) ? $args[0] : 0; - - if ( $cap === 'edit_post' || $cap === 'edit_others_shop_orders' ) { - $post_id = ! empty( $args[0] ) ? $args[0] : 0; - - if ( empty( $post_id ) ) { - if ( empty( $post->ID ) ) { - return $caps; - } - - $post_id = $post->ID; - } - - $vendor_id = get_post_meta( $post_id, '_dokan_vendor_id', true ); - $current_user_id = get_current_user_id(); - - if ( absint( $vendor_id ) === absint( $current_user_id ) ) { - return [ 'edit_shop_orders' ]; - } - } - - return $caps; -} - -add_filter( 'map_meta_cap', 'dokan_map_meta_caps', 12, 4 ); - /** * Remove sellerdiv metabox when a seller can access the backend * @@ -2259,36 +2070,6 @@ function dokan_get_processing_time_value( $index ) { } } -/** - * Dokan get vendor order details by order ID - * - * @since 3.2.11 rewritten entire function - * - * @param int|null $vendor_id will remove this parameter in future - * @param int $order - * - * @return array will return empty array in case order has suborders - */ -function dokan_get_vendor_order_details( $order_id, $vendor_id = null ) { - $order = wc_get_order( $order_id ); - $order_info = []; - - if ( ! $order instanceof WC_Abstract_Order || $order->get_meta( 'has_sub_order' ) ) { - return apply_filters( 'dokan_get_vendor_order_details', $order_info, $order_id, $vendor_id ); - } - - foreach ( $order->get_items( 'line_item' ) as $item ) { - $info = [ - 'product' => $item['name'], - 'quantity' => $item['quantity'], - 'total' => $item['total'], - ]; - array_push( $order_info, $info ); - } - - return apply_filters( 'dokan_get_vendor_order_details', $order_info, $order_id, $vendor_id ); -} - /** * Send email to seller and admin when there is no product in stock or low stock * @@ -2853,6 +2634,8 @@ function dokan_get_category_wise_seller_commission_type( $product_id, $category_ * @param int $product_id * @param int $seller_id * + * @deprecated 2.9.11 + * * @return float $earning | zero on failure or no price */ function dokan_get_earning_by_product( $product_id, $seller_id ) { @@ -3114,75 +2897,6 @@ function dokan_get_jed_locale_data( $domain, $language_dir = null ) { return $locale; } -/** - * Revoke vendor access of changing order status in the backend if permission is not given - * - * @since 2.8.0 - * - * @return void; - */ -function dokan_revoke_change_order_status() { - if ( current_user_can( 'manage_woocommerce' ) ) { - return; - } - - if ( is_admin() && get_current_screen()->id === 'shop_order' ) { - if ( dokan_get_option( 'order_status_change', 'dokan_selling', 'on' ) !== 'on' ) { - ?> - - $customer_id, - 'post_type' => 'shop_order', - 'meta_key' => '_dokan_vendor_id', // phpcs:ignore - 'meta_value' => $seller_id, // phpcs:ignore - 'post_status' => 'any', - 'return' => 'ids', - 'numberposts' => 1, - ]; - - $orders = wc_get_orders( $args ); - - return ! empty( $orders ) ? true : false; -} - /** * Dokan get pro buy now url * @@ -3354,104 +3041,6 @@ function dokan_pro_buynow_url() { return $link; } -/** - * Add vendor info in restful wc_order - * - * @param WP_REST_Response $response - * - * @return WP_REST_Response - */ -function dokan_add_vendor_info_in_rest_order( $response ) { - $vendor_ids = []; - - foreach ( $response as $data ) { - if ( empty( $data['line_items'] ) ) { - continue; - } - - foreach ( $data['line_items'] as $item ) { - $product_id = ! empty( $item['product_id'] ) ? $item['product_id'] : 0; - $vendor_id = (int) get_post_field( 'post_author', $product_id ); - - if ( $vendor_id && ! in_array( $vendor_id, $vendor_ids, true ) ) { - array_push( $vendor_ids, $vendor_id ); - } - } - } - - if ( ! $vendor_ids ) { - return $response; - } - - $data = $response->get_data(); - - foreach ( $vendor_ids as $store_id ) { - $store = dokan()->vendor->get( $store_id ); - $data['stores'][] = [ - 'id' => $store->get_id(), - 'name' => $store->get_name(), - 'shop_name' => $store->get_shop_name(), - 'url' => $store->get_shop_url(), - 'address' => $store->get_address(), - ]; - } - - // for backward compatibility, if there are multiple vendors, pass empty array. - if ( count( $vendor_ids ) > 1 ) { - $data['store'] = []; - } else { - $store = dokan()->vendor->get( $vendor_ids[0] ); - $data['store'] = [ - 'id' => $store->get_id(), - 'name' => $store->get_name(), - 'shop_name' => $store->get_shop_name(), - 'url' => $store->get_shop_url(), - 'address' => $store->get_address(), - ]; - } - - $response->set_data( $data ); - - return $response; -} - -add_filter( 'woocommerce_rest_prepare_shop_order_object', 'dokan_add_vendor_info_in_rest_order', 10, 1 ); - -/** - * Stop sending multiple email for an order - * - * @since 2.8.6 - * - * @return void - */ -function dokan_stop_sending_multiple_email() { - if ( did_action( 'woocommerce_order_status_pending_to_on-hold_notification' ) === 1 ) { - dokan_remove_hook_for_anonymous_class( 'woocommerce_order_status_pending_to_on-hold_notification', 'WC_Email_Customer_On_Hold_Order', 'trigger', 10 ); - } - - if ( did_action( 'woocommerce_order_status_on-hold_to_processing_notification' ) === 1 ) { - dokan_remove_hook_for_anonymous_class( 'woocommerce_order_status_on-hold_to_processing_notification', 'WC_Email_Customer_Processing_Order', 'trigger', 10 ); - } - - if ( did_action( 'woocommerce_order_status_pending_to_processing_notification' ) === 1 ) { - dokan_remove_hook_for_anonymous_class( 'woocommerce_order_status_pending_to_processing_notification', 'WC_Email_Customer_Processing_Order', 'trigger', 10 ); - } - - if ( did_action( 'woocommerce_order_status_completed_notification' ) === 1 ) { - dokan_remove_hook_for_anonymous_class( 'woocommerce_order_status_completed_notification', 'WC_Email_Customer_Completed_Order', 'trigger', 10 ); - } - - if ( did_action( 'woocommerce_order_status_failed_to_processing_notification' ) === 1 ) { - dokan_remove_hook_for_anonymous_class( 'woocommerce_order_status_failed_to_processing_notification', 'WC_Email_Customer_Processing_Order', 'trigger', 10 ); - } -} - -add_action( 'woocommerce_order_status_pending_to_on-hold', 'dokan_stop_sending_multiple_email' ); -add_action( 'woocommerce_order_status_on-hold_to_processing', 'dokan_stop_sending_multiple_email' ); -add_action( 'woocommerce_order_status_pending_to_processing', 'dokan_stop_sending_multiple_email' ); -add_action( 'woocommerce_order_status_completed', 'dokan_stop_sending_multiple_email' ); -add_action( 'woocommerce_order_status_failed_to_processing', 'dokan_stop_sending_multiple_email' ); - /** * Remove hook for anonymous class * @@ -4226,13 +3815,15 @@ function dokan_get_interval_between_dates( $start_date, $end_date, $group_by = ' * @since 2.6.8 * @since 3.7.0 This method was moved from wc-functions.php * + * @param string $time * @param boolean $date_only * - * @param string $time + * @deprecated DOKAN_SINCE * * @return string */ function dokan_date_time_format( $time, $date_only = false ) { + wc_deprecated_function( 'dokan_date_time_format', 'DOKAN_SINCE', 'dokan_format_datetime()' ); $format = apply_filters( 'dokan_date_time_format', wc_date_format() . ' ' . wc_time_format() ); if ( $date_only ) { @@ -4276,7 +3867,7 @@ function dokan_mask_email_address( $email ) { return $email; } - list( $first, $last ) = explode( '@', $email ); + [ $first, $last ] = explode( '@', $email ); $first = str_replace( substr( $first, '1' ), str_repeat( '*', strlen( $first ) - 1 ), $first ); $last = explode( '.', $last ); $last_domain = str_replace( substr( $last['0'], '1' ), str_repeat( '*', strlen( $last['0'] ) - 1 ), $last['0'] ); @@ -4338,16 +3929,15 @@ function dokan_array_after( $array, $position, $new_array ) { * * @since 3.2.16 * + * @param array $old_array * @param array $new_array * @param string $insert_after_key * - * @param array $old_array - * * @return array */ -function dokan_array_insert_after( array $old_array, array $new_array, $insert_after_key ) { +function dokan_array_insert_after( array $old_array, array $new_array, $insert_after_key = '' ) { $keys = array_keys( $old_array ); - $index = array_search( $insert_after_key, $keys, true ); + $index = ! empty( $insert_after_key ) ? array_search( $insert_after_key, $keys, true ) : false; $pos = false === $index ? count( $old_array ) : $index + 1; return array_slice( $old_array, 0, $pos, true ) + $new_array + array_slice( $old_array, $pos, count( $old_array ) - 1, true ); @@ -4530,45 +4120,6 @@ function is_tweleve_hour_format() { return preg_match( '/(am|pm)$/i', dokan_current_datetime()->format( wc_time_format() ) ); } -/** - * Updates bulk orders status by orders ids. - * - * @since 3.7.10 - * - * @param array $postdata - * - * @return void - */ -function dokan_apply_bulk_order_status_change( $postdata ) { - if ( ! isset( $postdata['status'] ) || ! isset( $postdata['bulk_orders'] ) ) { - return; - } - - $status = sanitize_text_field( wp_unslash( $postdata['status'] ) ); - $orders = array_map( 'absint', $postdata['bulk_orders'] ); - - // -1 means bluk action option value - $excluded_status = [ '-1', 'cancelled', 'refunded' ]; - - if ( in_array( $status, $excluded_status, true ) ) { - return; - } - - foreach ( $orders as $order_id ) { - $order = wc_get_order( $order_id ); - - if ( ! $order instanceof \WC_Order ) { - continue; - } - - if ( in_array( $order->get_status(), $excluded_status, true ) || $order->get_status() === $status ) { - continue; - } - - $order->update_status( $status ); - } -} - /** * Sanitize phone number. * Allows only numbers and "+" (plus sign) "." (full stop) "(" ")" "-". diff --git a/includes/wc-functions.php b/includes/wc-functions.php index bfba86a65b..01aad2efe9 100755 --- a/includes/wc-functions.php +++ b/includes/wc-functions.php @@ -5,11 +5,11 @@ * * @access public * - * @param int $post_id + * @param int $post_id * @param array $data * - * @return void * @throws WC_Data_Exception + * @return void */ function dokan_process_product_meta( int $post_id, array $data = [] ) { if ( ! $post_id || ! $data ) { @@ -38,7 +38,7 @@ function dokan_process_product_meta( int $post_id, array $data = [] ) { update_post_meta( $post_id, '_product_image_gallery', implode( ',', $attachment_ids ) ); } - // Check product visibility and purchases note + // Check product visibility and purchase note $data['_visibility'] = isset( $data['_visibility'] ) ? sanitize_text_field( $data['_visibility'] ) : ''; $data['_purchase_note'] = isset( $data['_purchase_note'] ) ? sanitize_textarea_field( $data['_purchase_note'] ) : ''; @@ -419,9 +419,12 @@ function ( $value ) { * @param int $variation_id optional product variation identifier * @param array $downloadable_files newly set files * + * @deprecated DOKAN_SINCE + * * @return void */ function dokan_process_product_file_download_paths( int $product_id, int $variation_id, array $downloadable_files ) { + wc_deprecated_function( 'dokan_process_product_file_download_paths', 'DOKAN_SINCE' ); global $wpdb; if ( $variation_id ) { @@ -471,9 +474,12 @@ function dokan_process_product_file_download_paths( int $product_id, int $variat * * @param int $order_id * + * @deprecated DOKAN_SINCE + * * @return int */ -function dokan_sub_order_get_total_coupon( int $order_id ): int { +function dokan_sub_order_get_total_coupon( int $order_id ) : int { + wc_deprecated_function( 'dokan_sub_order_get_total_coupon', 'DOKAN_SINCE' ); global $wpdb; $result = $wpdb->get_var( @@ -653,7 +659,7 @@ function dokan_get_top_rated_products( $per_page = 8, $seller_id = '', $page = 1 * * @return WP_Query */ -function dokan_get_on_sale_products( int $per_page = 10, int $paged = 1, int $seller_id = 0 ): WP_Query { +function dokan_get_on_sale_products( int $per_page = 10, int $paged = 1, int $seller_id = 0 ) : WP_Query { // Get products on sale $product_ids_on_sale = wc_get_product_ids_on_sale(); @@ -749,69 +755,6 @@ function dokan_get_readable_seller_rating( $seller_id ) { return $vendor->get_readable_rating( false ); } -/** - * Exclude child order emails for customers - * - * A hacky and dirty way to do this from this action. Because there is no easy - * way to do this by removing action hooks from WooCommerce. It would be easier - * if they were from functions. Because they are added from classes, we can't - * remove those action hooks. That's why we are doing this from the phpmailer_init action - * by returning a fake phpmailer class. - * - * @param array $attr - * - * @return void - */ -function dokan_exclude_child_customer_receipt( &$phpmailer ) { - $subject = $phpmailer->Subject; ////phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase - - // order receipt - $sub_receipt = __( 'Your {site_title} order receipt from {order_date}', 'dokan-lite' ); - $sub_download = __( 'Your {site_title} order from {order_date} is complete', 'dokan-lite' ); - - $sub_receipt = str_replace( - [ - '{site_title}', - '{order_date}', - ], [ wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ), '' ], $sub_receipt - ); - $sub_download = str_replace( - [ - '{site_title}', - '{order_date} is complete', - ], [ wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ), '' ], $sub_download - ); - - // not a customer receipt mail - if ( ( stripos( $subject, $sub_receipt ) === false ) && ( stripos( $subject, $sub_download ) === false ) ) { - return; - } - - $message = $phpmailer->Body; //phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase - $pattern = '/Order: #(\d+)/'; - preg_match( $pattern, $message, $matches ); - - if ( isset( $matches[1] ) ) { - $order_id = $matches[1]; - $order = get_post( $order_id ); - - // we found a child order - if ( ! is_wp_error( $order ) && $order->post_parent !== 0 ) { - $phpmailer = new DokanFakeMailer(); - } - } -} - -add_action( 'phpmailer_init', 'dokan_exclude_child_customer_receipt' ); - -/** - * A fake mailer class to replace phpmailer - */ -class DokanFakeMailer { - public function Send() { - } -} - add_filter( 'woocommerce_dashboard_status_widget_sales_query', 'dokan_filter_woocommerce_dashboard_status_widget_sales_query' ); /** @@ -826,7 +769,8 @@ public function Send() { function dokan_filter_woocommerce_dashboard_status_widget_sales_query( $query ) { global $wpdb; - $query['where'] .= " AND posts.ID NOT IN ( SELECT post_parent FROM {$wpdb->posts} WHERE post_type IN ( '" . implode( "','", array_merge( wc_get_order_types( 'sales-reports' ), [ 'shop_order_refund' ] ) ) . "' ) )"; + $query['where'] .= " AND posts.ID NOT IN ( SELECT post_parent FROM { + $wpdb->posts} WHERE post_type IN ( '" . implode( "','", array_merge( wc_get_order_types( 'sales-reports' ), [ 'shop_order_refund' ] ) ) . "' ) )"; return $query; } @@ -937,87 +881,6 @@ function dokan_save_account_details() { add_action( 'template_redirect', 'dokan_save_account_details' ); -/** - * This method will delete vendors best-selling product cache after a new order has been made - * - * @since 3.2.11 - * - * @param int $post_id - */ -function dokan_clear_best_selling_product_category_cache( $order_id ) { - $order = wc_get_order( $order_id ); - - if ( ! $order ) { - return; - } - - // check if order has suborder - if ( $order->get_meta( 'has_sub_order' ) ) { - // same hooks will be called for individual sub orders - return; - } - - // get vendor id from order - $seller_id = dokan_get_seller_id_by_order( $order_id ); - if ( empty( $seller_id ) ) { - return; - } - - delete_transient( 'dokan_vendor_get_best_selling_products_' . $seller_id ); - delete_transient( 'dokan_vendor_get_best_selling_categories_' . $seller_id ); -} - -add_action( 'woocommerce_new_order', 'dokan_clear_best_selling_product_category_cache', 10, 1 ); -add_action( 'woocommerce_update_order', 'dokan_clear_best_selling_product_category_cache', 10, 1 ); - -/** - * This method will delete store category cache after a category is updated - * - * @since 3.2.10 - * - * @param int $term_id - */ -function dokan_clear_edit_product_category_cache( $term_id ) { - // get taxonomy slug - $term = get_term_by( 'ID', $term_id, 'product_cat' ); - if ( false === $term || ! isset( $term->slug ) ) { - return; - } - - // get associated product id with this category - $args = [ - 'status' => 'publish', - 'limit' => - 1, - 'return' => 'ids', - 'category' => [ $term->slug ], - ]; - - $query = new WC_Product_Query( $args ); - $products = $query->get_products(); - - if ( empty( $products ) ) { - return; - } - - global $wpdb; - $products = implode( ',', array_map( 'absint', (array) $products ) ); - $seller_ids = $wpdb->get_col( "SELECT DISTINCT post_author from {$wpdb->posts} WHERE ID in ($products)" ); // phpcs:ignore - - foreach ( $seller_ids as $seller_id ) { - // delete vendor get_store_categories() method transient - if ( function_exists( 'wpml_get_active_languages' ) ) { - foreach ( wpml_get_active_languages() as $active_language ) { - delete_transient( 'dokan_vendor_get_store_categories_' . $active_language['code'] . '_' . $seller_id ); - } - } - - delete_transient( 'dokan_vendor_get_store_categories_' . $seller_id ); - } -} - -add_action( 'edit_product_cat', 'dokan_clear_edit_product_category_cache', 10, 1 ); -add_action( 'pre_delete_term', 'dokan_clear_edit_product_category_cache', 10, 1 ); - /** * Remove banner when without banner layout selected for profile * @@ -1112,67 +975,6 @@ function dokan_get_more_products_from_seller( $seller_id = 0, $posts_per_page = wp_reset_postdata(); } -/** - * Change bulk order status in vendor dashboard - * - * @since 2.8.3 - * - * @return void - */ -function dokan_bulk_order_status_change() { - if ( ! current_user_can( 'dokan_manage_order' ) ) { - return; - } - - if ( dokan_get_option( 'order_status_change', 'dokan_selling' ) === 'off' ) { - return; - } - - if ( ! isset( $_POST['security'] ) || ! wp_verify_nonce( sanitize_key( $_POST['security'] ), 'bulk_order_status_change' ) ) { - return; - } - - // Doing the bulk action for orders. - dokan_apply_bulk_order_status_change( - [ - 'status' => isset( $_POST['status'] ) ? sanitize_text_field( wp_unslash( $_POST['status'] ) ) : '', - 'bulk_orders' => isset( $_POST['bulk_orders'] ) ? array_map( 'absint', $_POST['bulk_orders'] ) : [], - ] - ); -} - -add_action( 'template_redirect', 'dokan_bulk_order_status_change' ); - -/** - * Add vendor email on customers note mail replay to - * - * @param string $headers - * @param string $id - * @param WC_Order $order - * - * @return string $headers - */ -function dokan_add_reply_to_vendor_email_on_wc_customer_note_mail( $headers, $id, $order ) { - if ( ! ( $order instanceof WC_Order ) ) { - return $headers; - } - - if ( 'customer_note' === $id ) { - foreach ( $order->get_items( 'line_item' ) as $item ) { - $product_id = $item['product_id']; - $author = get_post_field( 'post_author', $product_id ); - $author_data = get_userdata( absint( $author ) ); - $user_email = $author_data->user_email; - - $headers .= "Reply-to: <$user_email>\r\n"; - } - } - - return $headers; -} - -add_filter( 'woocommerce_email_headers', 'dokan_add_reply_to_vendor_email_on_wc_customer_note_mail', 10, 3 ); - /** * Keep old vendor after duplicate any product * @@ -1194,79 +996,6 @@ function dokan_keep_old_vendor_woocommerce_duplicate_product( $duplicate, $produ add_action( 'woocommerce_product_duplicate', 'dokan_keep_old_vendor_woocommerce_duplicate_product', 35, 2 ); - -/** - * Send email to the vendor/seller when cancel the order - * - * @param string $recipient - * @param WC_Order $order - * - * @return string - */ -function send_email_for_order_cancellation( $recipient, $order ) { - if ( ! $order instanceof \WC_Order ) { - return $recipient; - } - - // get the order id from order object - $seller_id = dokan_get_seller_id_by_order( $order->get_id() ); - - $seller_info = get_userdata( $seller_id ); - $seller_email = $seller_info->user_email; - - // if admin email & seller email is same - if ( false === strpos( $recipient, $seller_email ) ) { - $recipient .= ',' . $seller_email; - } - - return $recipient; -} - -add_filter( 'woocommerce_email_recipient_cancelled_order', 'send_email_for_order_cancellation', 10, 2 ); - - -/** - * Modify order counts for vendor. - * - * @since DOKAN_LITE_SINCE - * - * @param object $counts - * - * @return object $counts - */ -function dokan_modify_vendor_order_counts( $counts ) { - global $pagenow; - - if ( 'edit.php' !== $pagenow || 'shop_order' !== get_query_var( 'post_type' ) ) { - return $counts; - } - - if ( current_user_can( 'manage_woocommerce' ) ) { - return $counts; - } - - $vendor_id = dokan_get_current_user_id(); - - if ( empty( $vendor_id ) ) { - return $counts; - } - - // Current order counts for the vendor. - $vendor_order_counts = dokan_count_orders( $vendor_id ); - - // Modify WP dashboard order counts as per vendor's order counts. - foreach ( $vendor_order_counts as $count_key => $count_value ) { - if ( 'total' !== $count_key ) { - $counts->{$count_key} = $count_value; - } - } - - return $counts; -} - -add_filter( 'wp_count_posts', 'dokan_modify_vendor_order_counts', 10, 1 ); - - /** * @since 3.7.24 * diff --git a/includes/wc-legacy-functions.php b/includes/wc-legacy-functions.php index ff8a99ec23..aba875527d 100644 --- a/includes/wc-legacy-functions.php +++ b/includes/wc-legacy-functions.php @@ -9,50 +9,12 @@ * * @param int $parent_order_id * - * @throws Exception - * @return void + * @deprecated DOKAN_SINCE * - * @hooked woocommerce_checkout_update_order_meta - 10 + * @return void */ function dokan_create_sub_order( $parent_order_id ) { - if ( dokan_string_to_bool( get_post_meta( $parent_order_id, 'has_sub_order' ) ) === true ) { - $args = [ - 'post_parent' => $parent_order_id, - 'post_type' => 'shop_order', - 'numberposts' => - 1, - 'post_status' => 'any', - ]; - $child_orders = get_children( $args ); - - foreach ( $child_orders as $child ) { - wp_delete_post( $child->ID ); - } - } - - $parent_order = new WC_Order( $parent_order_id ); - $sellers = dokan_get_sellers_by( $parent_order_id ); - - // return if we've only ONE seller - if ( count( $sellers ) === 1 ) { - $temp = array_keys( $sellers ); - $seller_id = reset( $temp ); - wp_update_post( - [ - 'ID' => $parent_order_id, - 'post_author' => $seller_id, - ] - ); - - return; - } - - // flag it as it has a suborder - update_post_meta( $parent_order_id, 'has_sub_order', true ); - - // seems like we've got multiple sellers - foreach ( $sellers as $seller_id => $seller_products ) { - dokan_create_seller_order( $parent_order, $seller_id, $seller_products ); - } + wc_deprecated_function( 'dokan_create_sub_order', '3.7.13', 'dokan()->order->create_sub_order()' ); } /** @@ -62,113 +24,12 @@ function dokan_create_sub_order( $parent_order_id ) { * @param int $seller_id * @param array $seller_products * - * @throws Exception + * @deprecated DOKAN_SINCE + * + * @return void */ function dokan_create_seller_order( $parent_order, $seller_id, $seller_products ) { - $order_data = apply_filters( - 'woocommerce_new_order_data', [ - 'post_type' => 'shop_order', - // translators: 1) time format - 'post_title' => sprintf( __( 'Order – %s', 'dokan-lite' ), strftime( _x( '%1$b %2$d, %Y @ %I:%M %p', 'Order date parsed by strftime', 'dokan-lite' ) ) ), - 'post_status' => 'wc-pending', - 'ping_status' => 'closed', - 'post_excerpt' => isset( $posted['order_comments'] ) ? $posted['order_comments'] : '', - 'post_author' => $seller_id, - 'post_parent' => $parent_order->id, - 'post_password' => uniqid( 'order_' ), // Protects the post just in case - ] - ); - - $order_id = wp_insert_post( $order_data ); - - if ( $order_id && ! is_wp_error( $order_id ) ) { - $order_total = 0; - $order_tax = 0; - $product_ids = []; - - do_action( 'woocommerce_new_order', $order_id ); - - // now insert line items - foreach ( $seller_products as $item ) { - $order_total += (float) $item['line_total']; - $order_tax += (float) $item['line_tax']; - $product_ids[] = $item['product_id']; - - $item_id = wc_add_order_item( - $order_id, [ - 'order_item_name' => $item['name'], - 'order_item_type' => 'line_item', - ] - ); - - if ( $item_id ) { - foreach ( $item['item_meta'] as $meta_key => $meta_value ) { - wc_add_order_item_meta( $item_id, $meta_key, $meta_value[0] ); - } - } - } // foreach - - $bill_ship = [ - '_billing_country', - '_billing_first_name', - '_billing_last_name', - '_billing_company', - '_billing_address_1', - '_billing_address_2', - '_billing_city', - '_billing_state', - '_billing_postcode', - '_billing_email', - '_billing_phone', - '_shipping_country', - '_shipping_first_name', - '_shipping_last_name', - '_shipping_company', - '_shipping_address_1', - '_shipping_address_2', - '_shipping_city', - '_shipping_state', - '_shipping_postcode', - ]; - - // save billing and shipping address - foreach ( $bill_ship as $val ) { - $order_key = ltrim( $val, '_' ); - update_post_meta( $order_id, $val, dokan_get_prop( $parent_order, $order_key ) ); - } - - // do shipping - $shipping_values = dokan_create_sub_order_shipping( $parent_order, $order_id, $seller_products ); - $shipping_cost = $shipping_values['cost']; - $shipping_tax = $shipping_values['tax']; - - // add coupons if any - dokan_create_sub_order_coupon( $parent_order, $order_id, $product_ids ); - $discount = dokan_sub_order_get_total_coupon( $order_id ); - - // calculate the total - $order_in_total = $order_total + $shipping_cost + $order_tax + $shipping_tax; - //$order_in_total = $order_total + $shipping_cost + $order_tax - $discount; - - // set order meta - update_post_meta( $order_id, '_payment_method', $parent_order->payment_method ); - update_post_meta( $order_id, '_payment_method_title', $parent_order->payment_method_title ); - - update_post_meta( $order_id, '_order_shipping', woocommerce_format_decimal( $shipping_cost ) ); - update_post_meta( $order_id, '_order_discount', woocommerce_format_decimal( $discount ) ); - update_post_meta( $order_id, '_cart_discount', woocommerce_format_decimal( $discount ) ); - update_post_meta( $order_id, '_order_tax', woocommerce_format_decimal( $order_tax ) ); - update_post_meta( $order_id, '_order_shipping_tax', woocommerce_format_decimal( $shipping_tax ) ); - update_post_meta( $order_id, '_order_total', woocommerce_format_decimal( $order_in_total ) ); - update_post_meta( $order_id, '_order_key', apply_filters( 'woocommerce_generate_order_key', uniqid( 'order_' ) ) ); - update_post_meta( $order_id, '_customer_user', $parent_order->customer_user ); - update_post_meta( $order_id, '_order_currency', get_post_meta( $parent_order->id, '_order_currency', true ) ); - update_post_meta( $order_id, '_prices_include_tax', $parent_order->prices_include_tax ); - update_post_meta( $order_id, '_customer_ip_address', get_post_meta( $parent_order->id, '_customer_ip_address', true ) ); - update_post_meta( $order_id, '_customer_user_agent', get_post_meta( $parent_order->id, '_customer_user_agent', true ) ); - - do_action( 'dokan_checkout_update_order_meta', $order_id, $seller_id ); - } // if order + wc_deprecated_function( 'dokan_create_sub_order', '3.7.13', 'dokan()->order->create_sub_order()' ); } /** diff --git a/includes/wc-template.php b/includes/wc-template.php index 27a8dab7c6..02180c0796 100755 --- a/includes/wc-template.php +++ b/includes/wc-template.php @@ -73,15 +73,8 @@ function dokan_product_seller_tab( $val ) { * @return void */ function dokan_order_show_suborders( $parent_order ) { - $sub_orders = get_children( - [ - 'post_parent' => dokan_get_prop( $parent_order, 'id' ), - 'post_type' => 'shop_order', - 'post_status' => array_keys( wc_get_order_statuses() ), - ] - ); - - if ( ! $sub_orders ) { + $sub_orders = dokan()->order->get_child_orders( $parent_order ); + if ( empty( $sub_orders ) ) { return; } @@ -297,7 +290,7 @@ function dokan_set_go_to_vendor_dashboard_btn() { * * @since 2.8.3 * - * @return string + * @return void */ function dokan_attach_vendor_name( $item_id, $order ) { $product_id = $order->get_product_id(); @@ -309,7 +302,7 @@ function dokan_attach_vendor_name( $item_id, $order ) { $vendor_id = get_post_field( 'post_author', $product_id ); $vendor = dokan()->vendor->get( $vendor_id ); - if ( ! is_object( $vendor ) ) { + if ( ! $vendor->is_vendor() ) { return; } @@ -400,7 +393,7 @@ function ( $store_id, $settings ) { 'pre_get_avatar', function () { $page_id = get_queried_object_id(); - $page = get_page( $page_id ); + $page = get_post( $page_id ); if ( ! $page instanceof WP_Post ) { return; diff --git a/src/admin/pages/Vendors.vue b/src/admin/pages/Vendors.vue index dbae9d4938..3b87fb8638 100644 --- a/src/admin/pages/Vendors.vue +++ b/src/admin/pages/Vendors.vue @@ -400,7 +400,7 @@ export default { }, ordersUrl(id) { - return dokan.urls.adminRoot + 'edit.php?post_type=shop_order&vendor_id=' + id; + return dokan.urls.adminOrderListUrl + '&vendor_id=' + id; }, editUrl(id) { diff --git a/templates/my-orders.php b/templates/my-orders.php index f3b8c2462a..31017bf626 100755 --- a/templates/my-orders.php +++ b/templates/my-orders.php @@ -8,16 +8,10 @@ - 1, - 'meta_key' => '_customer_user', // phpcs:ignore - 'meta_value' => get_current_user_id(), // phpcs:ignore - 'post_type' => 'shop_order', - 'post_status' => 'wc-publish', - ] - ) +$customer_orders = dokan()->order->get_customer_orders( + [ + 'limit' => -1, + ] ); if ( $customer_orders ) : @@ -27,14 +21,14 @@ - - - - - - - - + + + + + + + + @@ -42,7 +36,7 @@ $statuses = wc_get_order_statuses(); $now = dokan_current_datetime(); foreach ( $customer_orders as $customer_order ) { - $order = new WC_Order( $customer_order ); // phpcs:ignore + $order = wc_get_order( $customer_order ); // phpcs:ignore $item_count = $order->get_item_count(); $order_date = $order->get_date_created(); $order_date = is_a( $order_date, 'WC_DateTime' ) ? $now->setTimestamp( $order_date->getTimestamp() ) : $now; @@ -55,11 +49,11 @@ ID ); // phpcs:ignore - if ( ! $order ) { - continue; - } + foreach ( $sub_orders as $order ) { $item_count = $order->get_item_count(); $order_date = $order->get_date_created(); $order_date = is_a( $order_date, 'WC_DateTime' ) ? $now->setTimestamp( $order_date->getTimestamp() ) : $now; ?> From 1e105ffb714411a6ce48b360090f63d68460ec9b Mon Sep 17 00:00:00 2001 From: Nurul Umbhiya Date: Fri, 18 Aug 2023 11:08:10 +0600 Subject: [PATCH 04/69] chore: bump version to 3.8.0 --- README.md | 15 +- composer.json | 4 +- composer.lock | 131 +- dokan.php | 6 +- includes/Admin/functions.php | 8 +- includes/Commission.php | 6 +- includes/FakeMailer.php | 2 +- includes/Order/Admin/Hooks.php | 46 +- includes/Order/Admin/Permissions.php | 18 +- includes/Order/Controller.php | 4 +- includes/Order/EmailHooks.php | 12 +- includes/Order/Frontend/Hooks.php | 6 +- includes/Order/Hooks.php | 2 +- includes/Order/Manager.php | 22 +- includes/Order/MiscHooks.php | 14 +- includes/Order/OrderCache.php | 2 +- includes/Order/functions.php | 54 +- .../ProductCategory/ProductCategoryCache.php | 2 +- includes/Upgrade/Upgrades/V_1_2.php | 2 +- includes/Utilities/OrderUtil.php | 24 +- includes/functions-rest-api.php | 2 +- includes/functions.php | 4 +- includes/wc-functions.php | 8 +- includes/wc-legacy-functions.php | 4 +- languages/dokan-lite.pot | 1284 ++++---- package-lock.json | 2873 ++++++++++------- package.json | 4 +- readme.txt | 15 +- templates/whats-new.php | 26 + 29 files changed, 2604 insertions(+), 1996 deletions(-) diff --git a/README.md b/README.md index 398d32fbb5..db8f756f5a 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,11 @@ **Donate Link:** http://tareq.co/donate/ **Tags:** WooCommerce multivendor marketplace, multi vendor marketplace, multi seller store, multi-vendor, multi seller, commissions, multivendor, marketplace, product vendors, woocommerce vendor, commission rate, e-commerce, woocommerce, ebay, ecommerce. **Requires at least:** 5.4 -**Tested up to:** 6.2.2 +**Tested up to:** 6.3.0 **WC requires at least:** 5.0.0 -**WC tested up to:** 7.9.0 -**Requires PHP:** 7.2 -**Stable tag:** 3.7.24 +**WC tested up to:** 8.0.2 +**Requires PHP:** 7.3 +**Stable tag:** 3.8.0 **License:** GPLv2 or later **License URI:** http://www.gnu.org/licenses/gpl-2.0.html @@ -338,6 +338,13 @@ A. Just install and activate the PRO version without deleting the free plugin. A ## Changelog ## +### v3.8.0 ( Aug 18, 2023 ) ### + +- **update:** Added HPOS (High-Performance Order Storage) support for Dokan Lite. +- **fix:** Resolved an issue where traces of order data were left on the Dokan end even after the order had been deleted from the WordPress admin panel. +Previously, deleted orders were still visible under the Dashboard Overview menu, Reports menu, and under Withdraw menu. This issue has been fixed in the current release. +- **fix:** Multiple issues have been fixed after a product of an order has been deleted. + ### v3.7.24 ( Jul 25, 2023 ) ### - **update:** Restrictions added for vendors to review and purchase their own products. diff --git a/composer.json b/composer.json index e142083c06..8632d92436 100644 --- a/composer.json +++ b/composer.json @@ -11,7 +11,7 @@ ], "minimum-stability": "dev", "require": { - "php": ">=7.2", + "php": ">=7.3", "appsero/client": "dev-develop", "jakeasmith/http_build_url": "^1" }, @@ -26,7 +26,7 @@ }, "config": { "platform": { - "php": "7.2" + "php": "7.3" }, "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true diff --git a/composer.lock b/composer.lock index 5685b175c3..0ee5ecddf2 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "dd73715be5f50d194b2d939b42bb397d", + "content-hash": "b8f3c6d04a4644d7cba672818b0aa712", "packages": [ { "name": "appsero/client", @@ -12,12 +12,12 @@ "source": { "type": "git", "url": "https://github.com/Appsero/client.git", - "reference": "985363ac0bd17d8cfaa45b0e6780ad68ccfe3ca8" + "reference": "3aa85cbb4eb25f648be8104d0a1fb14275f31e1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Appsero/client/zipball/985363ac0bd17d8cfaa45b0e6780ad68ccfe3ca8", - "reference": "985363ac0bd17d8cfaa45b0e6780ad68ccfe3ca8", + "url": "https://api.github.com/repos/Appsero/client/zipball/3aa85cbb4eb25f648be8104d0a1fb14275f31e1d", + "reference": "3aa85cbb4eb25f648be8104d0a1fb14275f31e1d", "shasum": "" }, "require": { @@ -57,9 +57,9 @@ ], "support": { "issues": "https://github.com/Appsero/client/issues", - "source": "https://github.com/Appsero/client/tree/develop" + "source": "https://github.com/Appsero/client/tree/v1.2.4" }, - "time": "2023-03-30T06:42:02+00:00" + "time": "2023-08-10T10:32:13+00:00" }, { "name": "jakeasmith/http_build_url", @@ -251,12 +251,12 @@ "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "928a96f585b86224ebc78f8f09d0482cf15b04f5" + "reference": "f6f48cfecf52ab791fe18cc1b11d6345512dc4b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/928a96f585b86224ebc78f8f09d0482cf15b04f5", - "reference": "928a96f585b86224ebc78f8f09d0482cf15b04f5", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/f6f48cfecf52ab791fe18cc1b11d6345512dc4b8", + "reference": "f6f48cfecf52ab791fe18cc1b11d6345512dc4b8", "shasum": "" }, "require": { @@ -304,29 +304,31 @@ "type": "tidelift" } ], - "time": "2023-03-08T17:24:01+00:00" + "time": "2023-07-30T10:01:33+00:00" }, { "name": "phar-io/manifest", - "version": "2.0.3", + "version": "dev-master", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + "reference": "67729272c564ab9f953c81f48db44e8b1cb1e1c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/67729272c564ab9f953c81f48db44e8b1cb1e1c3", + "reference": "67729272c564ab9f953c81f48db44e8b1cb1e1c3", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-phar": "*", "ext-xmlwriter": "*", "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" + "php": "^7.3 || ^8.0" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -362,9 +364,15 @@ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" + "source": "https://github.com/phar-io/manifest/tree/master" }, - "time": "2021-07-20T11:28:43+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2023-06-01T14:19:47+00:00" }, { "name": "phar-io/version", @@ -598,17 +606,17 @@ "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHPCSExtra.git", - "reference": "187da1c292882aaa079e79950400ae96bd0d8d64" + "reference": "ad2b11964680e23af8a13b3b200da35d98ad7395" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/187da1c292882aaa079e79950400ae96bd0d8d64", - "reference": "187da1c292882aaa079e79950400ae96bd0d8d64", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/ad2b11964680e23af8a13b3b200da35d98ad7395", + "reference": "ad2b11964680e23af8a13b3b200da35d98ad7395", "shasum": "" }, "require": { "php": ">=5.4", - "phpcsstandards/phpcsutils": "^1.0.6", + "phpcsstandards/phpcsutils": "^1.0.8", "squizlabs/php_codesniffer": "^3.7.1" }, "require-dev": { @@ -654,7 +662,7 @@ "issues": "https://github.com/PHPCSStandards/PHPCSExtra/issues", "source": "https://github.com/PHPCSStandards/PHPCSExtra" }, - "time": "2023-06-19T04:53:17+00:00" + "time": "2023-08-16T21:39:53+00:00" }, { "name": "phpcsstandards/phpcsutils", @@ -662,12 +670,12 @@ "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHPCSUtils.git", - "reference": "4a4ea6774dd7a64dc64f4fbc55e14dd0bb2fefd9" + "reference": "69465cab9d12454e5e7767b9041af0cd8cd13be7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/4a4ea6774dd7a64dc64f4fbc55e14dd0bb2fefd9", - "reference": "4a4ea6774dd7a64dc64f4fbc55e14dd0bb2fefd9", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/69465cab9d12454e5e7767b9041af0cd8cd13be7", + "reference": "69465cab9d12454e5e7767b9041af0cd8cd13be7", "shasum": "" }, "require": { @@ -728,7 +736,7 @@ "issues": "https://github.com/PHPCSStandards/PHPCSUtils/issues", "source": "https://github.com/PHPCSStandards/PHPCSUtils" }, - "time": "2023-06-12T01:08:28+00:00" + "time": "2023-07-16T21:39:41+00:00" }, { "name": "phpunit/php-code-coverage", @@ -969,29 +977,30 @@ }, { "name": "phpunit/php-token-stream", - "version": "3.1.x-dev", + "version": "dev-master", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "9c1da83261628cb24b6a6df371b6e312b3954768" + "reference": "76fc0567751d177847112bd3e26e4890529c98da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/9c1da83261628cb24b6a6df371b6e312b3954768", - "reference": "9c1da83261628cb24b6a6df371b6e312b3954768", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/76fc0567751d177847112bd3e26e4890529c98da", + "reference": "76fc0567751d177847112bd3e26e4890529c98da", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": ">=7.1" + "php": "^7.3 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^9.0" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1016,7 +1025,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", - "source": "https://github.com/sebastianbergmann/php-token-stream/tree/3.1" + "source": "https://github.com/sebastianbergmann/php-token-stream/tree/master" }, "funding": [ { @@ -1025,7 +1034,7 @@ } ], "abandoned": true, - "time": "2021-07-26T12:15:06+00:00" + "time": "2020-08-06T06:03:05+00:00" }, { "name": "phpunit/phpunit", @@ -1033,12 +1042,12 @@ "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "42a347539aff5499b4da776dd5fa94bdd4c952ae" + "reference": "998b8252e7798e8a44027d0e4a26764af5216a53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/42a347539aff5499b4da776dd5fa94bdd4c952ae", - "reference": "42a347539aff5499b4da776dd5fa94bdd4c952ae", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/998b8252e7798e8a44027d0e4a26764af5216a53", + "reference": "998b8252e7798e8a44027d0e4a26764af5216a53", "shasum": "" }, "require": { @@ -1123,7 +1132,7 @@ "type": "tidelift" } ], - "time": "2023-06-19T06:32:09+00:00" + "time": "2023-08-14T13:24:16+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -1466,12 +1475,12 @@ "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "de036ec91d55d2a9e0db2ba975b512cdb1c23921" + "reference": "66783ce213de415b451b904bfef9dda0cf9aeae0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/de036ec91d55d2a9e0db2ba975b512cdb1c23921", - "reference": "de036ec91d55d2a9e0db2ba975b512cdb1c23921", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/66783ce213de415b451b904bfef9dda0cf9aeae0", + "reference": "66783ce213de415b451b904bfef9dda0cf9aeae0", "shasum": "" }, "require": { @@ -1522,7 +1531,7 @@ "type": "github" } ], - "time": "2022-02-10T06:55:38+00:00" + "time": "2023-08-02T09:23:32+00:00" }, { "name": "sebastian/object-enumerator", @@ -1860,12 +1869,12 @@ "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "d148febc2a2eb82972121d7f962883f7a5697b55" + "reference": "a813c38729aef0034ff7b0f5f0ac54e94ea76804" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/d148febc2a2eb82972121d7f962883f7a5697b55", - "reference": "d148febc2a2eb82972121d7f962883f7a5697b55", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/a813c38729aef0034ff7b0f5f0ac54e94ea76804", + "reference": "a813c38729aef0034ff7b0f5f0ac54e94ea76804", "shasum": "" }, "require": { @@ -1910,7 +1919,7 @@ "source": "https://github.com/squizlabs/PHP_CodeSniffer", "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" }, - "time": "2023-05-26T22:32:02+00:00" + "time": "2023-08-06T23:03:57+00:00" }, { "name": "tareq1988/wp-php-cs-fixer", @@ -2006,19 +2015,22 @@ "source": { "type": "git", "url": "https://github.com/WordPress/WordPress-Coding-Standards.git", - "reference": "f2b63051f08cf6d51360896bb1647eabc6911bf2" + "reference": "04dba4728f341745e37c7ed1a1a38b3a43ee3ee0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/f2b63051f08cf6d51360896bb1647eabc6911bf2", - "reference": "f2b63051f08cf6d51360896bb1647eabc6911bf2", + "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/04dba4728f341745e37c7ed1a1a38b3a43ee3ee0", + "reference": "04dba4728f341745e37c7ed1a1a38b3a43ee3ee0", "shasum": "" }, "require": { "ext-filter": "*", + "ext-libxml": "*", + "ext-tokenizer": "*", + "ext-xmlreader": "*", "php": ">=5.4", - "phpcsstandards/phpcsextra": "^1.0", - "phpcsstandards/phpcsutils": "^1.0.5", + "phpcsstandards/phpcsextra": "^1.1.0", + "phpcsstandards/phpcsutils": "^1.0.8", "squizlabs/php_codesniffer": "^3.7.2" }, "require-dev": { @@ -2029,6 +2041,7 @@ "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, "suggest": { + "ext-iconv": "For improved results", "ext-mbstring": "For improved results" }, "default-branch": true, @@ -2055,7 +2068,7 @@ "source": "https://github.com/WordPress/WordPress-Coding-Standards", "wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki" }, - "time": "2023-06-20T15:25:34+00:00" + "time": "2023-08-17T09:54:06+00:00" }, { "name": "wp-phpunit/wp-phpunit", @@ -2063,12 +2076,12 @@ "source": { "type": "git", "url": "https://github.com/wp-phpunit/wp-phpunit.git", - "reference": "411a5e68d54fedb1fa4f07ce4e3d9cad1d27f379" + "reference": "ec1898606a6b32580b474825c8b99f78642496be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-phpunit/wp-phpunit/zipball/411a5e68d54fedb1fa4f07ce4e3d9cad1d27f379", - "reference": "411a5e68d54fedb1fa4f07ce4e3d9cad1d27f379", + "url": "https://api.github.com/repos/wp-phpunit/wp-phpunit/zipball/ec1898606a6b32580b474825c8b99f78642496be", + "reference": "ec1898606a6b32580b474825c8b99f78642496be", "shasum": "" }, "default-branch": true, @@ -2104,7 +2117,7 @@ "issues": "https://github.com/wp-phpunit/issues", "source": "https://github.com/wp-phpunit/wp-phpunit" }, - "time": "2023-03-30T01:15:51+00:00" + "time": "2023-08-09T01:26:57+00:00" }, { "name": "yoast/phpunit-polyfills", @@ -2180,11 +2193,11 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=7.2" + "php": ">=7.3" }, "platform-dev": [], "platform-overrides": { - "php": "7.2" + "php": "7.3" }, "plugin-api-version": "2.3.0" } diff --git a/dokan.php b/dokan.php index 92986b57a9..0edcfbbc88 100755 --- a/dokan.php +++ b/dokan.php @@ -3,12 +3,12 @@ * Plugin Name: Dokan * Plugin URI: https://wordpress.org/plugins/dokan-lite/ * Description: An e-commerce marketplace plugin for WordPress. Powered by WooCommerce and weDevs. - * Version: 3.7.24 + * Version: 3.8.0 * Author: weDevs * Author URI: https://wedevs.com/ * Text Domain: dokan-lite * WC requires at least: 5.0.0 - * WC tested up to: 7.9.0 + * WC tested up to: 8.0.2 * Domain Path: /languages/ * License: GPL2 */ @@ -282,7 +282,7 @@ private function define( $name, $value ) { /** * Add High Performance Order Storage Support * - * @since DOKAN_SINCE + * @since 3.8.0 * * @return void */ diff --git a/includes/Admin/functions.php b/includes/Admin/functions.php index 3177edeb42..365752bf63 100644 --- a/includes/Admin/functions.php +++ b/includes/Admin/functions.php @@ -122,12 +122,12 @@ function dokan_admin_report_data( $group_by = 'day', $year = '', $start = '', $e * @param string $start * @param string $end * - * @deprecated DOKAN_SINCE since we are getting the report data from REST API (dokan/v1/report), we don't need this function anymore. + * @deprecated 3.8.0 since we are getting the report data from REST API (dokan/v1/report), we don't need this function anymore. * * @return array */ function dokan_admin_report( $group_by = 'day', $year = '', $start = '', $end = '' ) { - wc_deprecated_function( 'dokan_admin_report', 'DOKAN_SINCE' ); + wc_deprecated_function( 'dokan_admin_report', '3.8.0' ); global $wp_locale; @@ -372,12 +372,12 @@ function showTooltip(x, y, contents) { * @global object $wp_locale * * @global WPDB $wpdb - * @deprecated DOKAN_SINCE since we are getting the report data from REST API (dokan/v1/report), we don't need this function anymore. + * @deprecated 3.8.0 since we are getting the report data from REST API (dokan/v1/report), we don't need this function anymore. * * @return array */ function dokan_admin_report_by_seller( $chosen_seller_id = 0 ) { - wc_deprecated_function( 'dokan_admin_report_by_seller', 'DOKAN_SINCE' ); + wc_deprecated_function( 'dokan_admin_report_by_seller', '3.8.0' ); global $wpdb, $wp_locale; diff --git a/includes/Commission.php b/includes/Commission.php index fefd92f307..48430bf571 100644 --- a/includes/Commission.php +++ b/includes/Commission.php @@ -27,7 +27,7 @@ class Commission { /** * Order Line Item Id For Product * - * @since DOKAN_SINCE + * @since 3.8.0 * * @var int $order_item_id */ @@ -160,7 +160,7 @@ public function set_order_id( $id ) { /** * Set order line item id * - * @since DOKAN_SINCE + * @since 3.8.0 * * @param int $item_id * @@ -184,7 +184,7 @@ public function get_order_id() { /** * Get order line item id * - * @since DOKAN_SINCE + * @since 3.8.0 * * @return int */ diff --git a/includes/FakeMailer.php b/includes/FakeMailer.php index 518c1979d6..47b182a80b 100644 --- a/includes/FakeMailer.php +++ b/includes/FakeMailer.php @@ -10,7 +10,7 @@ /** * Fake Mailer Class * - * @since DOKAN_SINCE Moved this class from includes/wc-functions.php file + * @since 3.8.0 Moved this class from includes/wc-functions.php file */ class FakeMailer { public function Send() { diff --git a/includes/Order/Admin/Hooks.php b/includes/Order/Admin/Hooks.php index 8e95f58d5e..da8ca2c0a9 100644 --- a/includes/Order/Admin/Hooks.php +++ b/includes/Order/Admin/Hooks.php @@ -16,13 +16,13 @@ /** * Order admin related hooks * - * @since DOKAN_SINCE moved functionality from includes/Admin/Hooks.php file + * @since 3.8.0 moved functionality from includes/Admin/Hooks.php file */ class Hooks { /** * Class constructor * - * @since DOKAN_SINCE + * @since 3.8.0 */ public function __construct() { // Load all actions and filters @@ -60,7 +60,7 @@ public function __construct() { /** * Remove child orders from WC reports * - * @since DOKAN_SINCE Moved from includes/Admin/Hooks.php file + * @since 3.8.0 Moved from includes/Admin/Hooks.php file * * @param array $query * @@ -75,8 +75,8 @@ public function admin_order_reports_remove_parents( $query ) { /** * Change the columns shown in admin. * - * @since DOKAN_SINCE Moved from includes/Admin/Hooks.php file - * @since DOKAN_SINCE Rewritten for HPOS + * @since 3.8.0 Moved from includes/Admin/Hooks.php file + * @since 3.8.0 Rewritten for HPOS * * @param array $existing_columns * @@ -101,8 +101,8 @@ public function admin_shop_order_edit_columns( $existing_columns ) { /** * Adds custom column on dokan admin shop order table * - * @since DOKAN_SINCE Moved from includes/Admin/Hooks.php file - * @since DOKAN_SINCE Rewritten for HPOS + * @since 3.8.0 Moved from includes/Admin/Hooks.php file + * @since 3.8.0 Rewritten for HPOS * * @param string $col * @param int|WC_Order $post_id @@ -165,8 +165,8 @@ public function shop_order_custom_columns( $col, $post_id ) { /** * Adds css classes on admin shop order table * - * @since DOKAN_SINCE Moved from includes/Admin/Hooks.php file - * @since DOKAN_SINCE Rewritten for HPOS + * @since 3.8.0 Moved from includes/Admin/Hooks.php file + * @since 3.8.0 Rewritten for HPOS * * @param string[] $classes An array of post class names. * @param string[] $class An array of additional class names added to the post. @@ -205,8 +205,8 @@ public function admin_shop_order_row_classes( $classes, $class, $post_id ) { /** * Show/hide sub order css/js * - * @since DOKAN_SINCE Moved from includes/Admin/Hooks.php file - * @since DOKAN_SINCE Added HPOS support + * @since 3.8.0 Moved from includes/Admin/Hooks.php file + * @since 3.8.0 Added HPOS support * * @return void */ @@ -356,7 +356,7 @@ function fix_row_css_styles() { * Change order item display meta key. * * @since DOKAN_LITE_SINCE - * @since DOKAN_SINCE Moved this method from Order/Hooks.php file + * @since 3.8.0 Moved this method from Order/Hooks.php file * * @param string $display_key * @@ -374,7 +374,7 @@ public function change_order_item_display_meta_key( $display_key ) { * Change order item display meta value. * * @since DOKAN_LITE_SINCE - * @since DOKAN_SINCE Moved this method from Order/Hooks.php file + * @since 3.8.0 Moved this method from Order/Hooks.php file * * @param string $display_value * @param object $meta @@ -398,8 +398,8 @@ public function change_order_item_display_meta_value( $display_value, $meta ) { /** * Delete sub orders when parent order is trashed * - * @since DOKAN_SINCE Moved from includes/Admin/Hooks.php file - * @since DOKAN_SINCE Rewritten for HPOS + * @since 3.8.0 Moved from includes/Admin/Hooks.php file + * @since 3.8.0 Rewritten for HPOS * * @param int $post_id */ @@ -422,8 +422,8 @@ public function admin_on_trash_order( $post_id ) { /** * Un-trash sub orders when parent orders are un-trashed * - * @since DOKAN_SINCE Moved from includes/Admin/Hooks.php file - * @since DOKAN_SINCE Rewritten for HPOS + * @since 3.8.0 Moved from includes/Admin/Hooks.php file + * @since 3.8.0 Rewritten for HPOS * * @param int $post_id * @@ -461,8 +461,8 @@ public function admin_on_untrash_order( $post_id ) { /** * Delete sub orders and from dokan sync table when a order is deleted * - * @since DOKAN_SINCE Moved from includes/Admin/Hooks.php file - * @since DOKAN_SINCE Rewritten for HPOS + * @since 3.8.0 Moved from includes/Admin/Hooks.php file + * @since 3.8.0 Rewritten for HPOS * * @param int $post_id * @@ -475,8 +475,8 @@ public function admin_on_delete_order( $post_id ) { /** * Delete sub orders and from dokan sync table when a order is deleted * - * @since DOKAN_SINCE Moved from includes/Admin/Hooks.php file - * @since DOKAN_SINCE Rewritten for HPOS + * @since 3.8.0 Moved from includes/Admin/Hooks.php file + * @since 3.8.0 Rewritten for HPOS * * @param int $post_id * @@ -493,8 +493,8 @@ public function admin_on_delete_order_post( $post_id ) { /** * Show a toggle button to toggle all the sub orders * - * @since DOKAN_SINCE Moved from includes/Admin/Hooks.php file - * @since DOKAN_SINCE Rewritten for HPOS + * @since 3.8.0 Moved from includes/Admin/Hooks.php file + * @since 3.8.0 Rewritten for HPOS * * @param string $typenow * diff --git a/includes/Order/Admin/Permissions.php b/includes/Order/Admin/Permissions.php index 461c7232a8..0e8f5efbed 100644 --- a/includes/Order/Admin/Permissions.php +++ b/includes/Order/Admin/Permissions.php @@ -10,13 +10,13 @@ /** * Handle Admin Order Permission Related Hooks * - * @since DOKAN_SINCE + * @since 3.8.0 */ class Permissions { /** * Class constructor * - * @since DOKAN_SINCE + * @since 3.8.0 */ public function __construct() { add_filter( 'map_meta_cap', [ $this, 'map_meta_caps' ], 12, 4 ); @@ -30,8 +30,8 @@ public function __construct() { /** * Dokan map meta cpas for vendors * - * @since DOKAN_SINCE moved this method from includes/functions.php file - * @since DOKAN_SINCE Added HPOS support + * @since 3.8.0 moved this method from includes/functions.php file + * @since 3.8.0 Added HPOS support * * @param array $caps * @param string $cap @@ -71,8 +71,8 @@ public function map_meta_caps( $caps, $cap, $user_id, $args ) { * Filter orders of current user * * @since 2.9.4 - * @since DOKAN_SINCE Moved this method from includes/functions.php - * @since DOKAN_SINCE Added HPOS Support + * @since 3.8.0 Moved this method from includes/functions.php + * @since 3.8.0 Added HPOS Support * * @param array $args * @param object $query @@ -113,7 +113,7 @@ public function filter_orders_for_current_vendor( $args, $query ) { * Revoke vendor access of changing order status in the backend if permission is not given * * @since 2.8.0 - * @since DOKAN_SINCE Moved this method from includes/functions.php file + * @since 3.8.0 Moved this method from includes/functions.php file * * @return void */ @@ -139,7 +139,7 @@ public function revoke_change_order_status() { * Revoke vendor access of changing order status in the backend if permission is not given * * @since 2.8.0 - * @since DOKAN_SINCE Moved this method from includes/functions.php + * @since 3.8.0 Moved this method from includes/functions.php * * @param array $columns * @@ -161,7 +161,7 @@ public function remove_action_column( $columns ) { * Revoke vendor access of changing order status in the backend if permission is not given * * @since 2.8.0 - * @since DOKAN_SINCE Moved this method form includes/functions.php file + * @since 3.8.0 Moved this method form includes/functions.php file * * @param array $actions * diff --git a/includes/Order/Controller.php b/includes/Order/Controller.php index bba16290a1..0ece5eeeb3 100644 --- a/includes/Order/Controller.php +++ b/includes/Order/Controller.php @@ -12,7 +12,7 @@ /** * Handle permission related hooks for Orders * - * @since DOKAN_SINCE + * @since 3.8.0 */ class Controller { use ChainableContainer; @@ -20,7 +20,7 @@ class Controller { /** * Class constructor * - * @since DOKAN_SINCE + * @since 3.8.0 */ public function __construct() { $this->init_classes(); diff --git a/includes/Order/EmailHooks.php b/includes/Order/EmailHooks.php index c966a14334..4f3c4a3776 100644 --- a/includes/Order/EmailHooks.php +++ b/includes/Order/EmailHooks.php @@ -13,13 +13,13 @@ /** * Order admin related hooks * - * @since DOKAN_SINCE moved functionality from includes/Admin/Hooks.php file + * @since 3.8.0 moved functionality from includes/Admin/Hooks.php file */ class EmailHooks { /** * Class constructor * - * @since DOKAN_SINCE + * @since 3.8.0 */ public function __construct() { add_action( 'woocommerce_order_status_pending_to_on-hold', [ $this, 'prevent_sending_multiple_email' ] ); @@ -38,7 +38,7 @@ public function __construct() { * Stop sending multiple email for an order * * @since 2.8.6 - * @since DOKAN_SINCE Moved this method from includes/functions.php file + * @since 3.8.0 Moved this method from includes/functions.php file * * @return void */ @@ -67,7 +67,7 @@ public function prevent_sending_multiple_email() { /** * Send email to the vendor/seller when cancel the order * - * @since DOKAN_SINCE Moved this method from includes/wc-functions.php file + * @since 3.8.0 Moved this method from includes/wc-functions.php file * * @param string $recipient * @param WC_Order $order @@ -96,7 +96,7 @@ public function send_email_for_order_cancellation( $recipient, $order ) { /** * Add vendor email on customers note mail replay to * - * @since DOKAN_SINCE Moved this method from includes/wc-functions.php file + * @since 3.8.0 Moved this method from includes/wc-functions.php file * * @param string $headers * @param string $id @@ -132,7 +132,7 @@ public function add_reply_to_vendor_email_on_wc_customer_note_mail( $headers, $i * remove those action hooks. That's why we are doing this from the phpmailer_init action * by returning a fake phpmailer class. * - * @since DOKAN_SINCE Moved this method from includes/wc-functions.php file + * @since 3.8.0 Moved this method from includes/wc-functions.php file * * @param object $phpmailer * diff --git a/includes/Order/Frontend/Hooks.php b/includes/Order/Frontend/Hooks.php index 730a6172d0..2b38204669 100644 --- a/includes/Order/Frontend/Hooks.php +++ b/includes/Order/Frontend/Hooks.php @@ -10,13 +10,13 @@ /** * Order Frontend Hooks * - * @since DOKAN_SINCE + * @since 3.8.0 */ class Hooks { /** * Class constructor * - * @since DOKAN_SINCE + * @since 3.8.0 */ public function __construct() { add_action( 'template_redirect', [ $this, 'bulk_order_status_change' ] ); @@ -26,7 +26,7 @@ public function __construct() { * Change bulk order status in vendor dashboard * * @since 2.8.3 - * @since DOKAN_SINCE Moved this method from includes/wc-functions.php file + * @since 3.8.0 Moved this method from includes/wc-functions.php file * * @return void */ diff --git a/includes/Order/Hooks.php b/includes/Order/Hooks.php index 22ff05458a..1de6fd63fb 100644 --- a/includes/Order/Hooks.php +++ b/includes/Order/Hooks.php @@ -133,7 +133,7 @@ public function on_order_status_change( $order_id, $old_status, $new_status, $or /** * If order status is set to refunded from vendor dashboard, enter remaining balance into vendor balance table. * - * @since DOKAN_SINCE Created this method from on_order_status_change() + * @since 3.8.0 Created this method from on_order_status_change() * * @param int $order_id * @param string $old_status diff --git a/includes/Order/Manager.php b/includes/Order/Manager.php index e4606f960b..a800683f34 100644 --- a/includes/Order/Manager.php +++ b/includes/Order/Manager.php @@ -13,7 +13,7 @@ * Order Management API * * @since 2.8 - * @since DOKAN_SINCE added HPOS support + * @since 3.8.0 added HPOS support */ class Manager { @@ -22,7 +22,7 @@ class Manager { * * @since 3.0.0 * @since 3.6.3 rewritten to include filters - * @since DOKAN_SINCE added HPOS support + * @since 3.8.0 added HPOS support * * @return WP_Error|int[]|WC_Order[] */ @@ -66,7 +66,7 @@ public function all( $args = [] ) { /** * Get backward compatibility args * - * @since DOKAN_SINCE + * @since 3.8.0 * * @param array $args * @@ -272,7 +272,7 @@ public function get( $id ) { /** * Count orders for a seller * - * @since DOKAN_SINCE moved this function from functions.php file + * @since 3.8.0 moved this function from functions.php file * * @param int $seller_id * @@ -351,7 +351,7 @@ public function count_orders( $seller_id ) { /** * Check if an order with same id is exists in database * - * @since DOKAN_SINCE + * @since 3.8.0 * * @param int|WC_Order $order_id * @@ -376,7 +376,7 @@ public function is_order_already_synced( $order_id ) { /** * Check if order is belonged to given seller * - * @since DOKAN_SINCE + * @since 3.8.0 * * @param int $seller_id * @param int $order_id @@ -396,7 +396,7 @@ public function is_seller_has_order( $seller_id, $order_id ) { /** * Get order of current logged-in users or by given customer id * - * @since DOKAN_SINCE + * @since 3.8.0 * * @param array $args * @@ -420,7 +420,7 @@ public function get_customer_orders( $args ) { /** * Get Customer Order IDs by Seller * - * @since DOKAN_SINCE + * @since 3.8.0 * * @param int $customer_id * @param int $seller_id @@ -464,7 +464,7 @@ public function get_child_orders( $parent_order ) { /** * Delete dokan order * - * @since DOKAN_SINCE + * @since 3.8.0 * * @param int $order_id * @param int|null $seller_id @@ -533,7 +533,7 @@ public function delete_seller_order( $order_id, $seller_id = null ) { /** * Delete dokan order with suborders * - * @since DOKAN_SINCE + * @since 3.8.0 * * @param int $order_id * @@ -863,7 +863,7 @@ function ( $item ) { * to each seller dashboard. That's why we need to divide the main order to * some sub-orders based on the number of sellers. * - * @since DOKAN_SINCE added $force_create parameter + * @since 3.8.0 added $force_create parameter * * @param bool $force_create if this parameter is true, if suborder is already created, they'd be deleted first * diff --git a/includes/Order/MiscHooks.php b/includes/Order/MiscHooks.php index 28d387d7dd..fa67346365 100644 --- a/includes/Order/MiscHooks.php +++ b/includes/Order/MiscHooks.php @@ -13,13 +13,13 @@ /** * Order admin related hooks * - * @since DOKAN_SINCE moved functionality from includes/Admin/Hooks.php file + * @since 3.8.0 moved functionality from includes/Admin/Hooks.php file */ class MiscHooks { /** * Class constructor * - * @since DOKAN_SINCE + * @since 3.8.0 */ public function __construct() { //Wc remove child order from wc_order_product_lookup & trim child order from posts for analytics @@ -36,7 +36,7 @@ public function __construct() { /** * Delete_child_order_from_wc_order_product * - * @since DOKAN_SINCE Moved this method from Order/Hooks.php file + * @since 3.8.0 Moved this method from Order/Hooks.php file * * @param \ActionScheduler_Action $args * @@ -55,7 +55,7 @@ public function delete_child_order_from_wc_order_product( $args ) { /** * Trim child order if parent exist from wc_order_product_lookup for analytics order * - * @since DOKAN_SINCE Moved this method from Order/Hooks.php file + * @since 3.8.0 Moved this method from Order/Hooks.php file * * @param WC_Order $orders * @@ -74,7 +74,7 @@ public function trim_child_order_for_analytics_order( $orders ) { /** * Remove customer sensitive information while exporting order * - * @since DOKAN_SINCE Moved this method from Order/Hooks.php file + * @since 3.8.0 Moved this method from Order/Hooks.php file * * @param array $headers * @@ -93,7 +93,7 @@ public function hide_customer_info_from_vendor_order_export( $headers ) { /** * Add vendor info in restful wc_order * - * @since DOKAN_SINCE Moved this method from includes/functions.php file + * @since 3.8.0 Moved this method from includes/functions.php file * * @param WP_REST_Response $response * @@ -156,7 +156,7 @@ public function add_vendor_info_in_rest_order( $response ) { /** * Modify order counts for vendor. * - * @since DOKAN_SINCE Moved this method from includes/wc-functions.php file + * @since 3.8.0 Moved this method from includes/wc-functions.php file * * @param object $counts * diff --git a/includes/Order/OrderCache.php b/includes/Order/OrderCache.php index f2685dd1c8..8b8c693070 100644 --- a/includes/Order/OrderCache.php +++ b/includes/Order/OrderCache.php @@ -110,7 +110,7 @@ public function reset_cache_before_deleting_order( $order_id ) { * This method will delete vendors best-selling product cache after a new order has been made * * @since 3.2.11 - * @since DOKAN_SINCE Moved this function from includes/wc-functions.php + * @since 3.8.0 Moved this function from includes/wc-functions.php * * @param int $post_id */ diff --git a/includes/Order/functions.php b/includes/Order/functions.php index b22d1b8c36..92d9323d75 100644 --- a/includes/Order/functions.php +++ b/includes/Order/functions.php @@ -7,12 +7,12 @@ * * @param int $order_id * - * @deprecated DOKAN_SINCE + * @deprecated 3.8.0 * * @return float|array|WP_Error */ function dokan_get_seller_amount_from_order( $order_id, $get_array = false ) { - wc_deprecated_function( 'dokan_get_seller_amount_from_order', 'DOKAN_SINCE', 'dokan()->commission->get_earning_by_order()' ); + wc_deprecated_function( 'dokan_get_seller_amount_from_order', '3.8.0', 'dokan()->commission->get_earning_by_order()' ); $order = wc_get_order( $order_id ); if ( ! $order ) { @@ -56,12 +56,12 @@ function dokan_get_seller_amount_from_order( $order_id, $get_array = false ) { * @param int $seller_id * @param array $args * - * @deprecated DOKAN_SINCE since this is an alias only. + * @deprecated 3.8.0 since this is an alias only. * * @return WP_Error|int[]|WC_Order[] */ function dokan_get_seller_orders( $seller_id, $args ) { - wc_deprecated_function( 'dokan_get_seller_orders', 'DOKAN_SINCE', 'dokan()->order->all()' ); + wc_deprecated_function( 'dokan_get_seller_orders', '3.8.0', 'dokan()->order->all()' ); $args['seller_id'] = $seller_id; @@ -82,12 +82,12 @@ function dokan_get_seller_orders( $seller_id, $args ) { * @param int|false $seller_id * @param string $status * - * @deprecated DOKAN_SINCE + * @deprecated 3.8.0 * * @return WP_Error|WC_Order[] */ function dokan_get_seller_orders_by_date( $start_date, $end_date, $seller_id = false, $status = 'all' ) { - wc_deprecated_function( 'dokan_get_seller_orders_by_date', 'DOKAN_SINCE', 'dokan()->order->all()' ); + wc_deprecated_function( 'dokan_get_seller_orders_by_date', '3.8.0', 'dokan()->order->all()' ); // format start and end date $start_date = dokan_current_datetime()->modify( $start_date ); @@ -111,12 +111,12 @@ function dokan_get_seller_orders_by_date( $start_date, $end_date, $seller_id = f * * @param array $args * - * @deprecated DOKAN_SINCE + * @deprecated 3.8.0 * * @return int */ function dokan_get_seller_orders_number( $args = [] ) { - wc_deprecated_function( 'dokan_get_seller_orders_number', 'DOKAN_SINCE', 'dokan()->order->all()' ); + wc_deprecated_function( 'dokan_get_seller_orders_number', '3.8.0', 'dokan()->order->all()' ); $args['return'] = 'count'; @@ -162,7 +162,7 @@ function dokan_is_seller_has_order( $seller_id, $order_id ) { /** * Count orders for a seller * - * @since DOKAN_SINCE moved the functionality of this function to Order Manager class + * @since 3.8.0 moved the functionality of this function to Order Manager class * * @param int $seller_id * @@ -177,12 +177,12 @@ function dokan_count_orders( $seller_id ) { * * @param int $order_id * - * @deprecated DOKAN_SINCE + * @deprecated 3.8.0 * * @return void */ function dokan_delete_sync_order( $order_id ) { - wc_deprecated_function( 'dokan_delete_sync_order', 'DOKAN_SINCE', 'dokan()->order->delete_seller_order()' ); + wc_deprecated_function( 'dokan_delete_sync_order', '3.8.0', 'dokan()->order->delete_seller_order()' ); dokan()->order->delete_seller_order( $order_id ); } @@ -195,12 +195,12 @@ function dokan_delete_sync_order( $order_id ) { * @param int $order_id * @param int $seller_id * - * @deprecated DOKAN_SINCE + * @deprecated 3.8.0 * * @return void */ function dokan_delete_sync_duplicate_order( $order_id, $seller_id ) { - wc_deprecated_function( 'dokan_delete_sync_duplicate_order', 'DOKAN_SINCE', 'dokan()->order->delete_seller_order()' ); + wc_deprecated_function( 'dokan_delete_sync_duplicate_order', '3.8.0', 'dokan()->order->delete_seller_order()' ); dokan()->order->delete_seller_order( $order_id, $seller_id ); } @@ -491,12 +491,12 @@ function dokan_is_sub_order( $order ) { * * @since 2.4.3 * - * @deprecated DOKAN_SINCE + * @deprecated 3.8.0 * * @return int Order_count */ function dokan_total_orders() { - wc_deprecated_function( 'dokan_total_orders', 'DOKAN_SINCE', 'dokan()->order->all()' ); + wc_deprecated_function( 'dokan_total_orders', '3.8.0', 'dokan()->order->all()' ); global $wpdb; @@ -605,12 +605,12 @@ function dokan_get_admin_commission_by( $order, $context ) { * @param int $customer_id * @param int $seller_id * - * @deprecated DOKAN_SINCE + * @deprecated 3.8.0 * * @return array|null on failure */ function dokan_get_customer_orders_by_seller( $customer_id, $seller_id ) { - wc_deprecated_function( 'dokan_get_customer_orders_by_seller', 'DOKAN_SINCE', 'dokan()->order->get_customer_order_ids_by_seller()' ); + wc_deprecated_function( 'dokan_get_customer_orders_by_seller', '3.8.0', 'dokan()->order->get_customer_order_ids_by_seller()' ); return dokan()->order->get_customer_order_ids_by_seller( $customer_id, $seller_id ); } @@ -815,7 +815,7 @@ function dokan_order_csv_export( $orders, $file = null ) { * * @param int $order_id * - * @deprecated DOKAN_SINCE + * @deprecated 3.8.0 * * @return int */ @@ -830,12 +830,12 @@ function dokan_get_seller_id_by_order_id( $order_id ) { * * @param int $order_id * - * @deprecated DOKAN_SINCE + * @deprecated 3.8.0 * * @return boolean */ function dokan_is_order_already_exists( $order_id ) { - wc_deprecated_function( 'dokan_is_order_already_exists', 'DOKAN_SINCE', 'dokan()->order->is_order_already_synced()' ); + wc_deprecated_function( 'dokan_is_order_already_exists', '3.8.0', 'dokan()->order->is_order_already_synced()' ); return dokan()->order->is_order_already_synced( $order_id ); } @@ -844,7 +844,7 @@ function dokan_is_order_already_exists( $order_id ) { * Customer has order from current seller * * @since 2.8.6 - * @since DOKAN_SINCE moved this function from includes/functions.php + * @since 3.8.0 moved this function from includes/functions.php * * @param int $customer_id * @param int|null $seller_id @@ -866,7 +866,7 @@ function dokan_customer_has_order_from_this_seller( $customer_id, $seller_id = n /** * Get total sales amount of a seller * - * @since DOKAN_SINCE moved from includes/functions.php + * @since 3.8.0 moved from includes/functions.php * * @param int $seller_id * @@ -888,17 +888,17 @@ function dokan_author_total_sales( $seller_id ) { * Get Seller's net Earnings from a order * * @since 2.5.2 - * @since DOKAN_SINCE moved from includes/functions.php + * @since 3.8.0 moved from includes/functions.php * * @param WC_ORDER $order * @param int $seller_id * - * @deprecated DOKAN_SINCE + * @deprecated 3.8.0 * * @return int $earned */ function dokan_get_seller_earnings_by_order( $order, $seller_id ) { - wc_deprecated_function( 'dokan_get_seller_earnings_by_order', 'DOKAN_SINCE', 'dokan()->commission->get_earning_by_order( $order, \'seller\' )' ); + wc_deprecated_function( 'dokan_get_seller_earnings_by_order', '3.8.0', 'dokan()->commission->get_earning_by_order( $order, \'seller\' )' ); $earned = dokan()->commission->get_earning_by_order( $order, 'seller' ); return apply_filters( 'dokan_get_seller_earnings_by_order', $earned, $order, $seller_id ); @@ -909,7 +909,7 @@ function dokan_get_seller_earnings_by_order( $order, $seller_id ) { * Dokan get vendor order details by order ID * * @since 3.2.11 rewritten entire function - * @since DOKAN_SINCE Moved this function from includes/functions.php + * @since 3.8.0 Moved this function from includes/functions.php * * @param int $order_id * @param int|null $vendor_id will remove this parameter in future @@ -940,7 +940,7 @@ function dokan_get_vendor_order_details( $order_id, $vendor_id = null ) { * Updates bulk orders status by orders ids. * * @since 3.7.10 - * @since DOKAN_SINCE Moved this method from includes/functions.php file + * @since 3.8.0 Moved this method from includes/functions.php file * * @param array $postdata * diff --git a/includes/ProductCategory/ProductCategoryCache.php b/includes/ProductCategory/ProductCategoryCache.php index ae81594735..100307f4d6 100644 --- a/includes/ProductCategory/ProductCategoryCache.php +++ b/includes/ProductCategory/ProductCategoryCache.php @@ -48,7 +48,7 @@ public function clear_multistep_category_cache() { * This method will delete store category cache after a category is updated * * @since 3.2.10 - * @since DOKAN_SINCE Moved this method from includes/wc-functions.php file + * @since 3.8.0 Moved this method from includes/wc-functions.php file * * @param int $term_id */ diff --git a/includes/Upgrade/Upgrades/V_1_2.php b/includes/Upgrade/Upgrades/V_1_2.php index 3c4177afe6..816e39627b 100644 --- a/includes/Upgrade/Upgrades/V_1_2.php +++ b/includes/Upgrade/Upgrades/V_1_2.php @@ -12,7 +12,7 @@ public static function generate_sync_table() { /** * Generate dokan sync table * - * @since DOKAN_SINCE moved from includes/functions.php file + * @since 3.8.0 moved from includes/functions.php file * * @deprecated since 2.4.3 */ diff --git a/includes/Utilities/OrderUtil.php b/includes/Utilities/OrderUtil.php index 7bb2df1990..32cbb9315b 100644 --- a/includes/Utilities/OrderUtil.php +++ b/includes/Utilities/OrderUtil.php @@ -13,7 +13,7 @@ class OrderUtil { * This method can be removed, and we can directly use WC OrderUtil::custom_orders_table_usage_is_enabled method in future * if we set the minimum wc version requirements to 8.0 * - * @since DOKAN_SINCE + * @since 3.8.0 * * @return bool */ @@ -28,7 +28,7 @@ public static function is_hpos_enabled(): bool { /** * Checks if posts and order custom table sync are enabled, and there are no pending orders. * - * @since DOKAN_SINCE + * @since 3.8.0 * * @return bool */ @@ -39,7 +39,7 @@ public static function is_custom_order_tables_in_sync(): bool { /** * Helper function to get whether the order cache should be used or not. * - * @since DOKAN_SINCE + * @since 3.8.0 * * @return bool True if the order cache should be used, false otherwise. */ @@ -50,7 +50,7 @@ public static function is_order_cache_usages_enabled(): bool { /** * Helper function to initialize the global $theorder object, mostly used during order meta boxes rendering. * - * @since DOKAN_SINCE + * @since 3.8.0 * * @param WC_Order|WP_Post $post_or_order_object Post or order object. * @@ -77,7 +77,7 @@ public static function init_theorder_object( $post_or_order_object ) { /** * Helper function to id from a post or order object. * - * @since DOKAN_SINCE + * @since 3.8.0 * * @param WP_Post|WC_Order $post_or_order_object WP_Post/WC_Order object to get ID for. * @@ -102,7 +102,7 @@ public static function get_post_or_order_id( $post_or_order_object ): int { * This method can be removed, and we can directly use WC OrderUtil::is_order method in future * if we set the minimum wc version requirements to 8.0 * - * @since DOKAN_SINCE + * @since 3.8.0 * * @param int|WP_Post|WC_Order $order_id Order ID, post object or order object. * @param string[] $types Types to match against. @@ -124,7 +124,7 @@ public static function is_order( $order_id, $types = [] ): bool { * This method can be removed, and we can directly use WC OrderUtil::get_order_admin_screen method in future * if we set minimum wc version requirements to 8.0 * - * @since DOKAN_SINCE + * @since 3.8.0 * * @return string */ @@ -137,7 +137,7 @@ public static function get_order_admin_screen(): string { /** * Get admin order list page url * - * @since DOKAN_SINCE + * @since 3.8.0 * * @return string */ @@ -150,7 +150,7 @@ public static function get_admin_order_list_url(): string { /** * Helper method to generate admin URL for new order. * - * @since DOKAN_SINCE + * @since 3.8.0 * * @return string Link for new order. */ @@ -164,7 +164,7 @@ public static function get_order_admin_new_url(): string { /** * Get admin order edit page url * - * @since DOKAN_SINCE + * @since 3.8.0 * * @param int $order_id * @@ -181,7 +181,7 @@ public static function get_admin_order_edit_url( $order_id = 0 ): string { /** * Get the custom orders table name for wc. * - * @since DOKAN_SINCE + * @since 3.8.0 * * @return string */ @@ -197,7 +197,7 @@ public static function get_order_table_name() { /** * Get the name of the database table that's currently in use for orders. * - * @since DOKAN_SINCE + * @since 3.8.0 * * @return string */ diff --git a/includes/functions-rest-api.php b/includes/functions-rest-api.php index e0f3ae7504..ea846b4c45 100644 --- a/includes/functions-rest-api.php +++ b/includes/functions-rest-api.php @@ -3,7 +3,7 @@ /** * This method will verify per page item value, will be used only with rest api validate callback * - * @since DOKAN_SINCE + * @since 3.8.0 * * @param $value * @param $request WP_REST_Request diff --git a/includes/functions.php b/includes/functions.php index c495fcf7ea..a92ce7e956 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -3818,12 +3818,12 @@ function dokan_get_interval_between_dates( $start_date, $end_date, $group_by = ' * @param string $time * @param boolean $date_only * - * @deprecated DOKAN_SINCE + * @deprecated 3.8.0 * * @return string */ function dokan_date_time_format( $time, $date_only = false ) { - wc_deprecated_function( 'dokan_date_time_format', 'DOKAN_SINCE', 'dokan_format_datetime()' ); + wc_deprecated_function( 'dokan_date_time_format', '3.8.0', 'dokan_format_datetime()' ); $format = apply_filters( 'dokan_date_time_format', wc_date_format() . ' ' . wc_time_format() ); if ( $date_only ) { diff --git a/includes/wc-functions.php b/includes/wc-functions.php index 01aad2efe9..4fc0c653e9 100755 --- a/includes/wc-functions.php +++ b/includes/wc-functions.php @@ -419,12 +419,12 @@ function ( $value ) { * @param int $variation_id optional product variation identifier * @param array $downloadable_files newly set files * - * @deprecated DOKAN_SINCE + * @deprecated 3.8.0 * * @return void */ function dokan_process_product_file_download_paths( int $product_id, int $variation_id, array $downloadable_files ) { - wc_deprecated_function( 'dokan_process_product_file_download_paths', 'DOKAN_SINCE' ); + wc_deprecated_function( 'dokan_process_product_file_download_paths', '3.8.0' ); global $wpdb; if ( $variation_id ) { @@ -474,12 +474,12 @@ function dokan_process_product_file_download_paths( int $product_id, int $variat * * @param int $order_id * - * @deprecated DOKAN_SINCE + * @deprecated 3.8.0 * * @return int */ function dokan_sub_order_get_total_coupon( int $order_id ) : int { - wc_deprecated_function( 'dokan_sub_order_get_total_coupon', 'DOKAN_SINCE' ); + wc_deprecated_function( 'dokan_sub_order_get_total_coupon', '3.8.0' ); global $wpdb; $result = $wpdb->get_var( diff --git a/includes/wc-legacy-functions.php b/includes/wc-legacy-functions.php index aba875527d..9910c84eb6 100644 --- a/includes/wc-legacy-functions.php +++ b/includes/wc-legacy-functions.php @@ -9,7 +9,7 @@ * * @param int $parent_order_id * - * @deprecated DOKAN_SINCE + * @deprecated 3.8.0 * * @return void */ @@ -24,7 +24,7 @@ function dokan_create_sub_order( $parent_order_id ) { * @param int $seller_id * @param array $seller_products * - * @deprecated DOKAN_SINCE + * @deprecated 3.8.0 * * @return void */ diff --git a/languages/dokan-lite.pot b/languages/dokan-lite.pot index 05635d8172..fe6c7afec4 100644 --- a/languages/dokan-lite.pot +++ b/languages/dokan-lite.pot @@ -1,16 +1,16 @@ # Copyright (c) 2023 weDevs Pte. Ltd. All Rights Reserved. msgid "" msgstr "" -"Project-Id-Version: Dokan 3.7.24\n" +"Project-Id-Version: Dokan 3.8.0\n" "Report-Msgid-Bugs-To: https://wedevs.com/contact\n" "Last-Translator: support@wedevs.com\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2023-07-25T05:38:42+00:00\n" +"POT-Creation-Date: 2023-08-17T14:10:33+00:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"X-Generator: WP-CLI 2.7.1\n" +"X-Generator: WP-CLI 2.8.1\n" "X-Domain: dokan-lite\n" #. Plugin Name of the plugin @@ -38,15 +38,15 @@ msgid "https://wedevs.com/" msgstr "" #. translators: 1: Required PHP Version 2: Running php version -#: dokan.php:194 +#: dokan.php:199 msgid "The Minimum PHP Version Requirement for Dokan is %1$s. You are Running PHP %2$s" msgstr "" -#: dokan.php:489 +#: dokan.php:507 msgid "Get Pro" msgstr "" -#: dokan.php:492 +#: dokan.php:510 #: includes/Admin/AdminBar.php:81 #: includes/Admin/Menu.php:68 #: includes/Dashboard/Templates/Settings.php:60 @@ -56,7 +56,7 @@ msgstr "" msgid "Settings" msgstr "" -#: dokan.php:493 +#: dokan.php:511 #: templates/admin-header.php:63 #: assets/js/vue-admin.js:2 msgid "Documentation" @@ -131,7 +131,7 @@ msgstr "" #: includes/Admin/Menu.php:34 #: includes/Admin/Menu.php:47 #: includes/Admin/SetupWizard.php:160 -#: includes/functions.php:3007 +#: includes/functions.php:2790 #: includes/template-tags.php:417 #: templates/withdraw/header.php:11 msgid "Withdraw" @@ -154,98 +154,66 @@ msgstr "" msgid "Visit Vendor Dashboard" msgstr "" -#: includes/Admin/functions.php:191 -#: includes/Admin/functions.php:458 +#: includes/Admin/functions.php:208 +#: includes/Admin/functions.php:475 #: includes/REST/AdminReportController.php:140 msgid "Total Sales" msgstr "" -#: includes/Admin/functions.php:198 -#: includes/Admin/functions.php:465 +#: includes/Admin/functions.php:215 +#: includes/Admin/functions.php:482 msgid "Total: " msgstr "" -#: includes/Admin/functions.php:201 -#: includes/Admin/functions.php:468 +#: includes/Admin/functions.php:218 +#: includes/Admin/functions.php:485 #: includes/reports.php:367 #: includes/REST/AdminReportController.php:148 msgid "Number of orders" msgstr "" -#: includes/Admin/functions.php:208 -#: includes/Admin/functions.php:475 +#: includes/Admin/functions.php:225 +#: includes/Admin/functions.php:492 msgid "sales" msgstr "" -#: includes/Admin/functions.php:211 -#: includes/Admin/functions.php:478 +#: includes/Admin/functions.php:228 +#: includes/Admin/functions.php:495 #: includes/REST/AdminReportController.php:155 msgid "Commision" msgstr "" -#: includes/Admin/functions.php:218 -#: includes/Admin/functions.php:485 +#: includes/Admin/functions.php:235 +#: includes/Admin/functions.php:502 msgid "Commision: " msgstr "" -#: includes/Admin/Hooks.php:67 -#: includes/Admin/Hooks.php:73 -#: includes/Admin/Hooks.php:368 +#: includes/Admin/Hooks.php:66 #: includes/Admin/Settings.php:495 #: includes/Admin/Settings.php:506 #: includes/Admin/Settings.php:517 #: includes/Admin/SetupWizard.php:361 #: includes/Install/Installer.php:142 -#: includes/Order/Hooks.php:77 +#: includes/Order/Admin/Hooks.php:92 +#: includes/Order/Admin/Hooks.php:367 #: includes/wc-template.php:18 -#: includes/wc-template.php:169 -#: includes/wc-template.php:316 -#: templates/my-orders.php:35 +#: includes/wc-template.php:162 +#: includes/wc-template.php:309 +#: templates/my-orders.php:29 #: assets/js/vue-admin.js:2 msgid "Vendor" msgstr "" -#: includes/Admin/Hooks.php:68 -#: assets/js/vue-admin.js:2 -msgid "Actions" -msgstr "" - -#: includes/Admin/Hooks.php:69 -#: includes/Admin/Hooks.php:74 -msgid "Sub Order" -msgstr "" - -#: includes/Admin/Hooks.php:127 -msgid " Sub Order of" -msgstr "" - -#: includes/Admin/Hooks.php:135 -msgid "Show Sub-Orders" -msgstr "" - -#: includes/Admin/Hooks.php:135 -msgid "Hide Sub-Orders" -msgstr "" - -#: includes/Admin/Hooks.php:146 -#: assets/js/vue-admin.js:2 -msgid "(no name)" -msgstr "" - -#: includes/Admin/Hooks.php:339 -msgid "Toggle Sub-orders" -msgstr "" - -#: includes/Admin/Hooks.php:395 +#: includes/Admin/Hooks.php:93 #: assets/js/vue-admin.js:2 msgid "Select vendor" msgstr "" -#: includes/Admin/Hooks.php:401 +#: includes/Admin/Hooks.php:99 msgid "You can search vendors and assign them." msgstr "" -#: includes/Admin/Hooks.php:414 +#: includes/Admin/Hooks.php:112 msgid "Unauthorized operation" msgstr "" @@ -574,7 +542,7 @@ msgstr "" #: includes/Admin/Settings.php:378 #: includes/Admin/SetupWizard.php:544 #: includes/Dashboard/Templates/Dashboard.php:96 -#: includes/Order/functions.php:443 +#: includes/Order/functions.php:416 #: templates/dashboard/orders-widget.php:25 msgid "Completed" msgstr "" @@ -582,14 +550,14 @@ msgstr "" #: includes/Admin/Settings.php:379 #: includes/Admin/SetupWizard.php:551 #: includes/Dashboard/Templates/Dashboard.php:106 -#: includes/Order/functions.php:455 +#: includes/Order/functions.php:431 #: templates/dashboard/orders-widget.php:35 -#: templates/orders/listing.php:146 +#: templates/orders/listing.php:132 msgid "Processing" msgstr "" #: includes/Admin/Settings.php:380 -#: includes/Order/functions.php:451 +#: includes/Order/functions.php:426 msgid "On-hold" msgstr "" @@ -606,7 +574,7 @@ msgid "Admin Area Access" msgstr "" #: includes/Admin/Settings.php:395 -msgid "Disallow vendors from accessing the wp-admin dashboard area" +msgid "Prevent vendors from accessing the wp-admin dashboard area. If HPOS feature is enabled, admin access will be blocked regardless of this setting." msgstr "" #: includes/Admin/Settings.php:401 @@ -1061,7 +1029,7 @@ msgid "Select a page to show your privacy policy" msgstr "" #: includes/Admin/Settings.php:810 -#: includes/functions.php:3643 +#: includes/functions.php:3232 msgid "Your personal data will be used to support your experience throughout this website, to manage access to your account, and for other purposes described in our [dokan_privacy_policy]" msgstr "" @@ -1384,14 +1352,14 @@ msgstr "" #: includes/Admin/UserProfile.php:38 #: includes/Ajax.php:142 -#: includes/Assets.php:585 +#: includes/Assets.php:586 #: assets/js/vue-admin.js:2 #: assets/js/vue-bootstrap.js:2 msgid "Available" msgstr "" #: includes/Admin/UserProfile.php:39 -#: includes/Assets.php:586 +#: includes/Assets.php:587 #: assets/js/vue-admin.js:2 #: assets/js/vue-bootstrap.js:2 msgid "Not Available" @@ -1629,12 +1597,12 @@ msgid "reCAPTCHA verification failed!" msgstr "" #: includes/Ajax.php:359 -#: includes/REST/StoreController.php:841 +#: includes/REST/StoreController.php:831 msgid "Email sent successfully!" msgstr "" #: includes/Ajax.php:418 -#: templates/orders/details.php:298 +#: templates/orders/details.php:283 msgid "Delete note" msgstr "" @@ -1685,23 +1653,23 @@ msgstr "" msgid "id param is required" msgstr "" -#: includes/Assets.php:148 +#: includes/Assets.php:149 msgid "Could not find any vendor." msgstr "" -#: includes/Assets.php:149 +#: includes/Assets.php:150 msgid "Searching vendors" msgstr "" -#: includes/Assets.php:150 +#: includes/Assets.php:151 msgid "Search vendors" msgstr "" -#: includes/Assets.php:151 +#: includes/Assets.php:152 msgid "Are you sure ?" msgstr "" -#: includes/Assets.php:588 +#: includes/Assets.php:589 #: includes/Product/functions.php:504 #: templates/products/products-listing.php:102 #: assets/js/dokan-promo-notice.js:2 @@ -1710,76 +1678,76 @@ msgstr "" msgid "Are you sure?" msgstr "" -#: includes/Assets.php:589 +#: includes/Assets.php:590 msgid "Something went wrong. Please try again." msgstr "" -#: includes/Assets.php:597 +#: includes/Assets.php:598 msgid "Are you sure you want to revoke access to this download?" msgstr "" -#: includes/Assets.php:598 +#: includes/Assets.php:599 msgid "Could not grant access - the user may already have permission for this file or billing email is not set. Ensure the billing email is set, and the order has been saved." msgstr "" -#: includes/Assets.php:715 +#: includes/Assets.php:716 msgctxt "time constant" msgid "am" msgstr "" -#: includes/Assets.php:716 +#: includes/Assets.php:717 msgctxt "time constant" msgid "pm" msgstr "" -#: includes/Assets.php:717 +#: includes/Assets.php:718 msgctxt "time constant" msgid "AM" msgstr "" -#: includes/Assets.php:718 +#: includes/Assets.php:719 msgctxt "time constant" msgid "PM" msgstr "" -#: includes/Assets.php:719 +#: includes/Assets.php:720 msgctxt "time constant" msgid "hr" msgstr "" -#: includes/Assets.php:720 +#: includes/Assets.php:721 msgctxt "time constant" msgid "hrs" msgstr "" -#: includes/Assets.php:721 +#: includes/Assets.php:722 msgctxt "time constant" msgid "mins" msgstr "" -#: includes/Assets.php:724 +#: includes/Assets.php:725 #: templates/products/edit-product-single.php:271 #: templates/products/new-product.php:252 #: templates/products/tmpl-add-product-popup.php:88 msgid "To" msgstr "" -#: includes/Assets.php:726 +#: includes/Assets.php:727 #: templates/products/edit-product-single.php:264 #: templates/products/new-product.php:245 #: templates/products/tmpl-add-product-popup.php:81 msgid "From" msgstr "" -#: includes/Assets.php:727 +#: includes/Assets.php:728 msgid " - " msgstr "" -#: includes/Assets.php:728 +#: includes/Assets.php:729 msgid "W" msgstr "" -#: includes/Assets.php:729 +#: includes/Assets.php:730 #: templates/orders/listing.php:20 #: templates/products/products-listing.php:101 #: templates/store-lists-filter.php:87 @@ -1787,386 +1755,386 @@ msgstr "" msgid "Apply" msgstr "" -#: includes/Assets.php:730 +#: includes/Assets.php:731 #: assets/js/vue-admin.js:2 msgid "Clear" msgstr "" -#: includes/Assets.php:731 +#: includes/Assets.php:732 #: includes/Withdraw/Hooks.php:46 msgid "Custom" msgstr "" -#: includes/Assets.php:733 +#: includes/Assets.php:734 msgid "Su" msgstr "" -#: includes/Assets.php:734 +#: includes/Assets.php:735 msgid "Mo" msgstr "" -#: includes/Assets.php:735 +#: includes/Assets.php:736 msgid "Tu" msgstr "" -#: includes/Assets.php:736 +#: includes/Assets.php:737 msgid "We" msgstr "" -#: includes/Assets.php:737 +#: includes/Assets.php:738 msgid "Th" msgstr "" -#: includes/Assets.php:738 +#: includes/Assets.php:739 msgid "Fr" msgstr "" -#: includes/Assets.php:739 +#: includes/Assets.php:740 msgid "Sa" msgstr "" -#: includes/Assets.php:742 +#: includes/Assets.php:743 msgid "January" msgstr "" -#: includes/Assets.php:743 +#: includes/Assets.php:744 msgid "February" msgstr "" -#: includes/Assets.php:744 +#: includes/Assets.php:745 msgid "March" msgstr "" -#: includes/Assets.php:745 +#: includes/Assets.php:746 msgid "April" msgstr "" -#: includes/Assets.php:746 +#: includes/Assets.php:747 msgid "May" msgstr "" -#: includes/Assets.php:747 +#: includes/Assets.php:748 msgid "June" msgstr "" -#: includes/Assets.php:748 +#: includes/Assets.php:749 msgid "July" msgstr "" -#: includes/Assets.php:749 +#: includes/Assets.php:750 msgid "August" msgstr "" -#: includes/Assets.php:750 +#: includes/Assets.php:751 msgid "September" msgstr "" -#: includes/Assets.php:751 +#: includes/Assets.php:752 msgid "October" msgstr "" -#: includes/Assets.php:752 +#: includes/Assets.php:753 msgid "November" msgstr "" -#: includes/Assets.php:753 +#: includes/Assets.php:754 msgid "December" msgstr "" -#: includes/Assets.php:769 +#: includes/Assets.php:770 msgid "This field is required" msgstr "" -#: includes/Assets.php:770 +#: includes/Assets.php:771 msgid "Please fix this field." msgstr "" -#: includes/Assets.php:771 +#: includes/Assets.php:772 msgid "Please enter a valid email address." msgstr "" -#: includes/Assets.php:772 +#: includes/Assets.php:773 msgid "Please enter a valid URL." msgstr "" -#: includes/Assets.php:773 +#: includes/Assets.php:774 msgid "Please enter a valid date." msgstr "" -#: includes/Assets.php:774 +#: includes/Assets.php:775 msgid "Please enter a valid date (ISO)." msgstr "" -#: includes/Assets.php:775 +#: includes/Assets.php:776 msgid "Please enter a valid number." msgstr "" -#: includes/Assets.php:776 +#: includes/Assets.php:777 msgid "Please enter only digits." msgstr "" -#: includes/Assets.php:777 +#: includes/Assets.php:778 msgid "Please enter a valid credit card number." msgstr "" -#: includes/Assets.php:778 +#: includes/Assets.php:779 msgid "Please enter the same value again." msgstr "" -#: includes/Assets.php:779 +#: includes/Assets.php:780 msgid "Please enter no more than {0} characters." msgstr "" -#: includes/Assets.php:780 +#: includes/Assets.php:781 msgid "Please enter at least {0} characters." msgstr "" -#: includes/Assets.php:781 +#: includes/Assets.php:782 msgid "Please enter a value between {0} and {1} characters long." msgstr "" -#: includes/Assets.php:782 +#: includes/Assets.php:783 msgid "Please enter a value between {0} and {1}." msgstr "" -#: includes/Assets.php:783 +#: includes/Assets.php:784 msgid "Please enter a value less than or equal to {0}." msgstr "" -#: includes/Assets.php:784 +#: includes/Assets.php:785 msgid "Please enter a value greater than or equal to {0}." msgstr "" -#: includes/Assets.php:945 +#: includes/Assets.php:946 msgid "Upload featured image" msgstr "" -#: includes/Assets.php:946 +#: includes/Assets.php:947 msgid "Choose a file" msgstr "" -#: includes/Assets.php:947 +#: includes/Assets.php:948 msgid "Add Images to Product Gallery" msgstr "" -#: includes/Assets.php:948 +#: includes/Assets.php:949 msgid "Set featured image" msgstr "" -#: includes/Assets.php:949 +#: includes/Assets.php:950 #: includes/woo-views/html-product-download.php:8 msgid "Insert file URL" msgstr "" -#: includes/Assets.php:950 +#: includes/Assets.php:951 msgid "Add to gallery" msgstr "" -#: includes/Assets.php:951 +#: includes/Assets.php:952 msgid "Sorry, this attribute option already exists, Try a different one." msgstr "" -#: includes/Assets.php:952 +#: includes/Assets.php:953 msgid "Warning! This product will not have any variations if this option is not checked." msgstr "" -#: includes/Assets.php:953 +#: includes/Assets.php:954 msgid "Enter a name for the new attribute term:" msgstr "" -#: includes/Assets.php:954 +#: includes/Assets.php:955 msgid "Remove this attribute?" msgstr "" #. translators: %d: max linked variation. -#: includes/Assets.php:963 +#: includes/Assets.php:964 msgid "Are you sure you want to link all variations? This will create a new variation for each and every possible combination of variation attributes (max %d per run)." msgstr "" -#: includes/Assets.php:964 +#: includes/Assets.php:965 msgid "Enter a value" msgstr "" -#: includes/Assets.php:965 +#: includes/Assets.php:966 msgid "Variation menu order (determines position in the list of variations)" msgstr "" -#: includes/Assets.php:966 +#: includes/Assets.php:967 msgid "Enter a value (fixed or %)" msgstr "" -#: includes/Assets.php:967 +#: includes/Assets.php:968 msgid "Are you sure you want to delete all variations? This cannot be undone." msgstr "" -#: includes/Assets.php:968 +#: includes/Assets.php:969 msgid "Last warning, are you sure?" msgstr "" -#: includes/Assets.php:969 +#: includes/Assets.php:970 msgid "Choose an image" msgstr "" -#: includes/Assets.php:970 +#: includes/Assets.php:971 msgid "Set variation image" msgstr "" -#: includes/Assets.php:971 +#: includes/Assets.php:972 msgid "variation added" msgstr "" -#: includes/Assets.php:972 +#: includes/Assets.php:973 msgid "variations added" msgstr "" -#: includes/Assets.php:973 +#: includes/Assets.php:974 msgid "No variations added" msgstr "" -#: includes/Assets.php:974 +#: includes/Assets.php:975 msgid "Are you sure you want to remove this variation?" msgstr "" -#: includes/Assets.php:975 +#: includes/Assets.php:976 msgid "Sale start date (YYYY-MM-DD format or leave blank)" msgstr "" -#: includes/Assets.php:976 +#: includes/Assets.php:977 msgid "Sale end date (YYYY-MM-DD format or leave blank)" msgstr "" -#: includes/Assets.php:977 +#: includes/Assets.php:978 msgid "Save changes before changing page?" msgstr "" -#: includes/Assets.php:978 +#: includes/Assets.php:979 msgid "%qty% variation" msgstr "" -#: includes/Assets.php:979 +#: includes/Assets.php:980 msgid "%qty% variations" msgstr "" -#: includes/Assets.php:980 +#: includes/Assets.php:981 msgid "No Result Found" msgstr "" -#: includes/Assets.php:981 +#: includes/Assets.php:982 msgid "Please insert value less than the regular price!" msgstr "" #. translators: %s: decimal -#: includes/Assets.php:983 -#: includes/Assets.php:1159 +#: includes/Assets.php:984 +#: includes/Assets.php:1162 msgid "Please enter with one decimal point (%s) without thousand separators." msgstr "" #. translators: %s: price decimal separator -#: includes/Assets.php:985 -#: includes/Assets.php:1161 +#: includes/Assets.php:986 +#: includes/Assets.php:1164 msgid "Please enter with one monetary decimal point (%s) without thousand separators and currency symbols." msgstr "" -#: includes/Assets.php:986 -#: includes/Assets.php:1162 +#: includes/Assets.php:987 +#: includes/Assets.php:1165 msgid "Please enter in country code with two capital letters." msgstr "" -#: includes/Assets.php:987 -#: includes/Assets.php:1163 +#: includes/Assets.php:988 +#: includes/Assets.php:1166 msgid "Please enter in a value less than the regular price." msgstr "" -#: includes/Assets.php:988 -#: includes/Assets.php:1164 +#: includes/Assets.php:989 +#: includes/Assets.php:1167 msgid "This product has produced sales and may be linked to existing orders. Are you sure you want to delete it?" msgstr "" -#: includes/Assets.php:989 -#: includes/Assets.php:1165 +#: includes/Assets.php:990 +#: includes/Assets.php:1168 msgid "This action cannot be reversed. Are you sure you wish to erase personal data from the selected orders?" msgstr "" -#: includes/Assets.php:999 +#: includes/Assets.php:1000 msgid "Select and Crop" msgstr "" -#: includes/Assets.php:1000 +#: includes/Assets.php:1001 msgid "Choose Image" msgstr "" -#: includes/Assets.php:1001 +#: includes/Assets.php:1002 msgid "Product title is required" msgstr "" -#: includes/Assets.php:1002 +#: includes/Assets.php:1003 msgid "Product category is required" msgstr "" -#: includes/Assets.php:1003 +#: includes/Assets.php:1004 msgid "Product created successfully" msgstr "" -#: includes/Assets.php:1007 +#: includes/Assets.php:1008 msgid "One result is available, press enter to select it." msgstr "" -#: includes/Assets.php:1008 +#: includes/Assets.php:1009 msgid "%qty% results are available, use up and down arrow keys to navigate." msgstr "" -#: includes/Assets.php:1009 +#: includes/Assets.php:1010 msgid "No matches found" msgstr "" -#: includes/Assets.php:1010 +#: includes/Assets.php:1011 msgid "Loading failed" msgstr "" -#: includes/Assets.php:1011 +#: includes/Assets.php:1012 msgid "Please enter 1 or more characters" msgstr "" -#: includes/Assets.php:1012 +#: includes/Assets.php:1013 msgid "Please enter %qty% or more characters" msgstr "" -#: includes/Assets.php:1013 +#: includes/Assets.php:1014 msgid "Please delete 1 character" msgstr "" -#: includes/Assets.php:1014 +#: includes/Assets.php:1015 msgid "Please delete %qty% characters" msgstr "" -#: includes/Assets.php:1015 +#: includes/Assets.php:1016 msgid "You can only select 1 item" msgstr "" -#: includes/Assets.php:1016 +#: includes/Assets.php:1017 msgid "You can only select %qty% items" msgstr "" -#: includes/Assets.php:1017 +#: includes/Assets.php:1018 msgid "Loading more results…" msgstr "" -#: includes/Assets.php:1018 +#: includes/Assets.php:1019 msgid "Searching…" msgstr "" -#: includes/Assets.php:1019 +#: includes/Assets.php:1020 msgid "Calculating" msgstr "" -#: includes/Assets.php:1020 +#: includes/Assets.php:1021 msgid "OK" msgstr "" -#: includes/Assets.php:1021 +#: includes/Assets.php:1022 #: includes/Product/functions.php:310 -#: templates/my-orders.php:101 -#: templates/orders/details.php:201 +#: templates/my-orders.php:95 +#: templates/orders/details.php:196 #: templates/products/edit-product-single.php:235 #: templates/products/new-product.php:232 #: templates/products/tmpl-add-product-popup.php:68 @@ -2183,15 +2151,15 @@ msgstr "" msgid "Cancel" msgstr "" -#: includes/Assets.php:1022 +#: includes/Assets.php:1023 msgid "Attribute Name" msgstr "" -#: includes/Assets.php:1024 +#: includes/Assets.php:1025 msgid "Are you sure? You have uploaded banner but didn't click the Update Settings button!" msgstr "" -#: includes/Assets.php:1025 +#: includes/Assets.php:1026 #: templates/settings/header.php:20 #: templates/settings/payment-manage.php:48 #: templates/settings/store-form.php:292 @@ -2207,13 +2175,13 @@ msgid "Dokan variable products author IDs regenerated successfully!" msgstr "" #: includes/Blocks/ProductBlock.php:29 -#: includes/functions.php:835 +#: includes/functions.php:731 #: templates/products/others.php:19 msgid "Online" msgstr "" #: includes/Blocks/ProductBlock.php:30 -#: includes/functions.php:836 +#: includes/functions.php:732 #: templates/products/others.php:20 msgid "Draft" msgstr "" @@ -2312,21 +2280,26 @@ msgid "Check to hide product price from your products." msgstr "" #. translators: %s: Geteway fee -#: includes/Commission.php:102 +#: includes/Commission.php:114 msgid "Payment gateway processing fee %s" msgstr "" -#: includes/Commission.php:201 +#: includes/Commission.php:236 #: includes/REST/ProductBlockController.php:69 msgid "Product not found" msgstr "" -#: includes/Commission.php:230 +#: includes/Commission.php:266 msgid "Order not found" msgstr "" +#: includes/Commission.php:769 +#: includes/Commission.php:801 +msgid "Please provide a valid order object." +msgstr "" + #. translators: 1) page number -#: includes/Core.php:144 +#: includes/Core.php:149 msgid "Page %1$s" msgstr "" @@ -2435,14 +2408,14 @@ msgid "Pending" msgstr "" #: includes/Dashboard/Templates/Dashboard.php:111 -#: includes/Order/functions.php:463 +#: includes/Order/functions.php:441 #: templates/dashboard/orders-widget.php:40 #: assets/js/vue-admin.js:2 msgid "Cancelled" msgstr "" #: includes/Dashboard/Templates/Dashboard.php:116 -#: includes/Order/functions.php:459 +#: includes/Order/functions.php:436 #: templates/dashboard/orders-widget.php:45 msgid "Refunded" msgstr "" @@ -2451,29 +2424,33 @@ msgstr "" msgid "On Hold" msgstr "" -#: includes/Dashboard/Templates/Orders.php:79 +#: includes/Dashboard/Templates/Orders.php:74 +msgid "No order data found with given order id." +msgstr "" + +#: includes/Dashboard/Templates/Orders.php:91 msgid "You have no permission to view this order" msgstr "" -#: includes/Dashboard/Templates/Orders.php:105 +#: includes/Dashboard/Templates/Orders.php:117 msgid "Nonce verification failed!" msgstr "" -#: includes/Dashboard/Templates/Orders.php:128 +#: includes/Dashboard/Templates/Orders.php:140 #: includes/Dashboard/Templates/Products.php:226 #: assets/js/vue-admin.js:2 msgid "Bulk Actions" msgstr "" -#: includes/Dashboard/Templates/Orders.php:129 +#: includes/Dashboard/Templates/Orders.php:141 msgid "Change status to on-hold" msgstr "" -#: includes/Dashboard/Templates/Orders.php:130 +#: includes/Dashboard/Templates/Orders.php:142 msgid "Change status to processing" msgstr "" -#: includes/Dashboard/Templates/Orders.php:131 +#: includes/Dashboard/Templates/Orders.php:143 msgid "Change status to completed" msgstr "" @@ -3081,160 +3058,175 @@ msgstr "" msgid "You are an administrator. Please use dokan admin settings to enable your selling capabilities." msgstr "" -#: includes/functions.php:837 +#. translators: 1) argument name, 2) argument value +#: includes/functions-rest-api.php:22 +msgid "%1$s is not of type %2$s" +msgstr "" + +#. translators: 1) argument name +#: includes/functions-rest-api.php:28 +msgid "%s was not registered as a request argument." +msgstr "" + +#. translators: 1) rest api endpoint key name +#: includes/functions-rest-api.php:37 +msgid "No store found with given store id" +msgstr "" + +#: includes/functions.php:733 #: templates/dashboard/products-widget.php:41 #: templates/withdraw/pending-request-listing-dashboard.php:46 #: templates/withdraw/pending-request-listing.php:43 msgid "Pending Review" msgstr "" -#: includes/functions.php:838 +#: includes/functions.php:734 #: templates/products/products-listing-row.php:166 msgid "Scheduled" msgstr "" -#: includes/functions.php:883 +#: includes/functions.php:779 msgid "Simple Product" msgstr "" -#: includes/functions.php:884 +#: includes/functions.php:780 #: assets/js/vue-admin.js:2 msgid "Variable Product" msgstr "" -#: includes/functions.php:885 +#: includes/functions.php:781 msgid "Grouped Product" msgstr "" -#: includes/functions.php:886 +#: includes/functions.php:782 msgid "External/Affiliate Product" msgstr "" -#: includes/functions.php:1118 +#: includes/functions.php:1014 msgid "Author" msgstr "" -#: includes/functions.php:1305 +#: includes/functions.php:1201 #: includes/template-tags.php:403 #: templates/dashboard/products-widget.php:16 #: assets/js/vue-admin.js:2 msgid "Products" msgstr "" -#: includes/functions.php:1309 +#: includes/functions.php:1205 #: includes/Vendor/SettingsApi/Settings/Pages/Store.php:545 #: templates/settings/store-form.php:217 msgid "Terms and Conditions" msgstr "" #. translators: 1) bank account name -#: includes/functions.php:1349 +#: includes/functions.php:1245 #: assets/js/vue-admin.js:2 msgid "Account Name: %s" msgstr "" #. translators: 1) bank account number -#: includes/functions.php:1354 +#: includes/functions.php:1250 #: assets/js/vue-admin.js:2 msgid "Account Number: %s" msgstr "" #. translators: 1) bank name -#: includes/functions.php:1359 +#: includes/functions.php:1255 #: assets/js/vue-admin.js:2 msgid "Bank Name: %s" msgstr "" #. translators: 1) bank address -#: includes/functions.php:1364 +#: includes/functions.php:1260 msgid "Address: %s" msgstr "" #. translators: 1) bank routing number -#: includes/functions.php:1369 +#: includes/functions.php:1265 #: assets/js/vue-admin.js:2 msgid "Routing Number: %s" msgstr "" #. translators: 1) bank iban -#: includes/functions.php:1374 +#: includes/functions.php:1270 #: assets/js/vue-admin.js:2 msgid "IBAN: %s" msgstr "" #. translators: 1) bank swift -#: includes/functions.php:1379 +#: includes/functions.php:1275 msgid "SWIFT: %s" msgstr "" -#: includes/functions.php:1734 +#: includes/functions.php:1630 msgid "Date is not valid" msgstr "" -#: includes/functions.php:2185 +#: includes/functions.php:1996 msgid "- Select a location -" msgstr "" -#: includes/functions.php:2189 -#: includes/functions.php:2213 +#: includes/functions.php:2000 +#: includes/functions.php:2024 msgid "Everywhere Else" msgstr "" -#: includes/functions.php:2209 +#: includes/functions.php:2020 msgid "- Select a State -" msgstr "" -#: includes/functions.php:2232 +#: includes/functions.php:2043 msgid "Ready to ship in..." msgstr "" -#: includes/functions.php:2233 +#: includes/functions.php:2044 msgid "1 business day" msgstr "" -#: includes/functions.php:2234 +#: includes/functions.php:2045 msgid "1-2 business days" msgstr "" -#: includes/functions.php:2235 +#: includes/functions.php:2046 msgid "1-3 business days" msgstr "" -#: includes/functions.php:2236 +#: includes/functions.php:2047 msgid "3-5 business days" msgstr "" -#: includes/functions.php:2237 +#: includes/functions.php:2048 msgid "1-2 weeks" msgstr "" -#: includes/functions.php:2238 +#: includes/functions.php:2049 msgid "2-3 weeks" msgstr "" -#: includes/functions.php:2239 +#: includes/functions.php:2050 msgid "3-4 weeks" msgstr "" -#: includes/functions.php:2240 +#: includes/functions.php:2051 msgid "4-6 weeks" msgstr "" -#: includes/functions.php:2241 +#: includes/functions.php:2052 msgid "6-8 weeks" msgstr "" -#: includes/functions.php:2371 +#: includes/functions.php:2152 msgid "All dates" msgstr "" #. translators: 1: month name, 2: 4-digit year -#: includes/functions.php:2386 +#: includes/functions.php:2167 #: includes/REST/ProductControllerV2.php:198 msgid "%1$s %2$d" msgstr "" -#: includes/functions.php:2401 +#: includes/functions.php:2182 #: includes/REST/ProductControllerV2.php:236 #: templates/products/edit-product-single.php:190 #: templates/products/products-listing-row.php:112 @@ -3242,473 +3234,511 @@ msgstr "" msgid "Simple" msgstr "" -#: includes/functions.php:2483 +#: includes/functions.php:2264 #: includes/Privacy.php:201 #: assets/js/vue-bootstrap.js:2 msgid "Facebook" msgstr "" -#: includes/functions.php:2487 +#: includes/functions.php:2268 #: includes/Privacy.php:202 #: assets/js/vue-bootstrap.js:2 msgid "Twitter" msgstr "" -#: includes/functions.php:2491 +#: includes/functions.php:2272 #: includes/Privacy.php:203 #: assets/js/vue-bootstrap.js:2 msgid "Pinterest" msgstr "" -#: includes/functions.php:2495 +#: includes/functions.php:2276 msgid "LinkedIn" msgstr "" -#: includes/functions.php:2499 +#: includes/functions.php:2280 #: includes/Privacy.php:205 #: assets/js/vue-bootstrap.js:2 msgid "Youtube" msgstr "" -#: includes/functions.php:2503 +#: includes/functions.php:2284 #: includes/Privacy.php:206 #: assets/js/vue-bootstrap.js:2 msgid "Instagram" msgstr "" -#: includes/functions.php:2507 +#: includes/functions.php:2288 #: includes/Privacy.php:207 #: assets/js/vue-bootstrap.js:2 msgid "Flickr" msgstr "" -#: includes/functions.php:2773 +#: includes/functions.php:2554 msgid "Dokan Store Sidebar" msgstr "" -#: includes/functions.php:2928 +#: includes/functions.php:2711 msgid "View sales overview" msgstr "" -#: includes/functions.php:2929 +#: includes/functions.php:2712 msgid "View sales report chart" msgstr "" -#: includes/functions.php:2930 +#: includes/functions.php:2713 msgid "View announcement" msgstr "" -#: includes/functions.php:2931 +#: includes/functions.php:2714 msgid "View order report" msgstr "" -#: includes/functions.php:2932 +#: includes/functions.php:2715 msgid "View review report" msgstr "" -#: includes/functions.php:2933 +#: includes/functions.php:2716 msgid "View product status report" msgstr "" -#: includes/functions.php:2936 +#: includes/functions.php:2719 msgid "View overview report" msgstr "" -#: includes/functions.php:2937 +#: includes/functions.php:2720 msgid "View daily sales report" msgstr "" -#: includes/functions.php:2938 +#: includes/functions.php:2721 msgid "View top selling report" msgstr "" -#: includes/functions.php:2939 +#: includes/functions.php:2722 msgid "View top earning report" msgstr "" -#: includes/functions.php:2940 +#: includes/functions.php:2723 msgid "View statement report" msgstr "" -#: includes/functions.php:2943 +#: includes/functions.php:2726 msgid "View order" msgstr "" -#: includes/functions.php:2944 +#: includes/functions.php:2727 msgid "Manage order" msgstr "" -#: includes/functions.php:2945 +#: includes/functions.php:2728 msgid "Manage order note" msgstr "" -#: includes/functions.php:2946 +#: includes/functions.php:2729 msgid "Manage refund" msgstr "" -#: includes/functions.php:2947 +#: includes/functions.php:2730 msgid "Export order" msgstr "" -#: includes/functions.php:2950 +#: includes/functions.php:2733 msgid "Add coupon" msgstr "" -#: includes/functions.php:2951 +#: includes/functions.php:2734 msgid "Edit coupon" msgstr "" -#: includes/functions.php:2952 +#: includes/functions.php:2735 msgid "Delete coupon" msgstr "" -#: includes/functions.php:2955 +#: includes/functions.php:2738 msgid "View reviews" msgstr "" -#: includes/functions.php:2956 +#: includes/functions.php:2739 #: assets/js/vue-admin.js:2 msgid "Manage reviews" msgstr "" -#: includes/functions.php:2960 +#: includes/functions.php:2743 msgid "Manage withdraw" msgstr "" -#: includes/functions.php:2963 +#: includes/functions.php:2746 msgid "Add product" msgstr "" -#: includes/functions.php:2964 +#: includes/functions.php:2747 msgid "Edit product" msgstr "" -#: includes/functions.php:2965 +#: includes/functions.php:2748 msgid "Delete product" msgstr "" -#: includes/functions.php:2966 +#: includes/functions.php:2749 msgid "View product" msgstr "" -#: includes/functions.php:2967 +#: includes/functions.php:2750 msgid "Duplicate product" msgstr "" -#: includes/functions.php:2968 +#: includes/functions.php:2751 msgid "Import product" msgstr "" -#: includes/functions.php:2969 +#: includes/functions.php:2752 msgid "Export product" msgstr "" -#: includes/functions.php:2972 +#: includes/functions.php:2755 msgid "View overview menu" msgstr "" -#: includes/functions.php:2973 +#: includes/functions.php:2756 msgid "View product menu" msgstr "" -#: includes/functions.php:2974 +#: includes/functions.php:2757 msgid "View order menu" msgstr "" -#: includes/functions.php:2975 +#: includes/functions.php:2758 msgid "View coupon menu" msgstr "" -#: includes/functions.php:2976 +#: includes/functions.php:2759 msgid "View report menu" msgstr "" -#: includes/functions.php:2977 +#: includes/functions.php:2760 msgid "View review menu" msgstr "" -#: includes/functions.php:2978 +#: includes/functions.php:2761 msgid "View withdraw menu" msgstr "" -#: includes/functions.php:2979 +#: includes/functions.php:2762 msgid "View store settings menu" msgstr "" -#: includes/functions.php:2980 +#: includes/functions.php:2763 msgid "View payment settings menu" msgstr "" -#: includes/functions.php:2981 +#: includes/functions.php:2764 msgid "View shipping settings menu" msgstr "" -#: includes/functions.php:2982 +#: includes/functions.php:2765 msgid "View social settings menu" msgstr "" -#: includes/functions.php:2983 +#: includes/functions.php:2766 msgid "View seo settings menu" msgstr "" -#: includes/functions.php:3002 +#: includes/functions.php:2785 #: assets/js/vue-admin.js:2 msgid "Overview" msgstr "" -#: includes/functions.php:3003 +#: includes/functions.php:2786 msgid "Report" msgstr "" -#: includes/functions.php:3004 +#: includes/functions.php:2787 #: templates/dashboard/big-counter-widget.php:29 -#: templates/my-orders.php:31 -#: templates/orders/details.php:20 +#: templates/my-orders.php:25 +#: templates/orders/details.php:19 #: templates/orders/listing.php:30 -#: templates/orders/listing.php:54 +#: templates/orders/listing.php:57 #: templates/sub-orders.php:43 #: assets/js/vue-admin.js:2 msgid "Order" msgstr "" -#: includes/functions.php:3005 +#: includes/functions.php:2788 msgid "Coupon" msgstr "" -#: includes/functions.php:3006 +#: includes/functions.php:2789 msgid "Review" msgstr "" -#: includes/functions.php:3008 +#: includes/functions.php:2791 #: templates/emails/vendor-completed-order.php:54 #: templates/emails/vendor-new-order.php:53 #: assets/js/vue-admin.js:2 msgid "Product" msgstr "" -#: includes/functions.php:3009 +#: includes/functions.php:2792 msgid "Menu" msgstr "" -#: includes/functions.php:3197 +#: includes/functions.php:2911 #: includes/Vendor/SettingsApi/Settings/Pages/Store.php:350 msgid "Sunday" msgstr "" -#: includes/functions.php:3198 +#: includes/functions.php:2912 #: includes/Vendor/SettingsApi/Settings/Pages/Store.php:302 msgid "Monday" msgstr "" -#: includes/functions.php:3199 +#: includes/functions.php:2913 #: includes/Vendor/SettingsApi/Settings/Pages/Store.php:310 msgid "Tuesday" msgstr "" -#: includes/functions.php:3200 +#: includes/functions.php:2914 #: includes/Vendor/SettingsApi/Settings/Pages/Store.php:318 msgid "Wednesday" msgstr "" -#: includes/functions.php:3201 +#: includes/functions.php:2915 #: includes/Vendor/SettingsApi/Settings/Pages/Store.php:326 msgid "Thursday" msgstr "" -#: includes/functions.php:3202 +#: includes/functions.php:2916 #: includes/Vendor/SettingsApi/Settings/Pages/Store.php:334 msgid "Friday" msgstr "" -#: includes/functions.php:3203 +#: includes/functions.php:2917 #: includes/Vendor/SettingsApi/Settings/Pages/Store.php:342 msgid "Saturday" msgstr "" -#: includes/functions.php:3621 +#: includes/functions.php:3210 msgid "privacy policy" msgstr "" -#: includes/functions.php:3668 +#: includes/functions.php:3257 #: assets/js/vue-admin.js:2 #: assets/js/vue-bootstrap.js:2 msgid "Flat" msgstr "" -#: includes/functions.php:3669 +#: includes/functions.php:3258 #: assets/js/vue-admin.js:2 #: assets/js/vue-bootstrap.js:2 msgid "Percentage" msgstr "" #. translators: 1) plugin slug -#: includes/functions.php:3843 +#: includes/functions.php:3432 msgid "Unable to fetch plugin information from wordpress.org for %s." msgstr "" #. translators: 1) plugin slug -#: includes/functions.php:3856 +#: includes/functions.php:3445 msgid "Unable to install %s from wordpress.org" msgstr "" -#: includes/Order/functions.php:447 +#: includes/Order/Admin/Hooks.php:93 +#: assets/js/vue-admin.js:2 +msgid "Actions" +msgstr "" + +#: includes/Order/Admin/Hooks.php:94 +msgid "Sub Order" +msgstr "" + +#: includes/Order/Admin/Hooks.php:133 +msgid " Sub Order of" +msgstr "" + +#: includes/Order/Admin/Hooks.php:141 +msgid "Show Sub-Orders" +msgstr "" + +#: includes/Order/Admin/Hooks.php:141 +msgid "Hide Sub-Orders" +msgstr "" + +#: includes/Order/Admin/Hooks.php:154 +#: assets/js/vue-admin.js:2 +msgid "(no name)" +msgstr "" + +#: includes/Order/Admin/Hooks.php:505 +msgid "Toggle Sub-orders" +msgstr "" + +#: includes/Order/EmailHooks.php:145 +msgid "Your {site_title} order receipt from {order_date}" +msgstr "" + +#: includes/Order/EmailHooks.php:146 +msgid "Your {site_title} order from {order_date} is complete" +msgstr "" + +#: includes/Order/functions.php:421 msgid "Pending Payment" msgstr "" -#: includes/Order/functions.php:467 +#: includes/Order/functions.php:446 msgid "Failed" msgstr "" -#: includes/Order/functions.php:662 +#: includes/Order/functions.php:628 msgid "Order No" msgstr "" -#: includes/Order/functions.php:663 -#: templates/orders/details.php:20 +#: includes/Order/functions.php:629 +#: templates/orders/details.php:19 msgid "Order Items" msgstr "" -#: includes/Order/functions.php:664 +#: includes/Order/functions.php:630 msgid "Shipping method" msgstr "" -#: includes/Order/functions.php:665 +#: includes/Order/functions.php:631 msgid "Shipping Cost" msgstr "" -#: includes/Order/functions.php:666 +#: includes/Order/functions.php:632 msgid "Payment method" msgstr "" -#: includes/Order/functions.php:667 +#: includes/Order/functions.php:633 #: templates/orders/listing.php:31 -#: templates/orders/listing.php:74 +#: templates/orders/listing.php:77 msgid "Order Total" msgstr "" -#: includes/Order/functions.php:668 +#: includes/Order/functions.php:634 msgid "Earnings" msgstr "" -#: includes/Order/functions.php:669 +#: includes/Order/functions.php:635 #: includes/REST/OrderController.php:107 msgid "Order Status" msgstr "" -#: includes/Order/functions.php:670 +#: includes/Order/functions.php:636 msgid "Order Date" msgstr "" -#: includes/Order/functions.php:671 +#: includes/Order/functions.php:637 msgid "Billing Company" msgstr "" -#: includes/Order/functions.php:672 +#: includes/Order/functions.php:638 msgid "Billing First Name" msgstr "" -#: includes/Order/functions.php:673 +#: includes/Order/functions.php:639 msgid "Billing Last Name" msgstr "" -#: includes/Order/functions.php:674 +#: includes/Order/functions.php:640 msgid "Billing Full Name" msgstr "" -#: includes/Order/functions.php:675 +#: includes/Order/functions.php:641 msgid "Billing Email" msgstr "" -#: includes/Order/functions.php:676 +#: includes/Order/functions.php:642 msgid "Billing Phone" msgstr "" -#: includes/Order/functions.php:677 +#: includes/Order/functions.php:643 msgid "Billing Address 1" msgstr "" -#: includes/Order/functions.php:678 +#: includes/Order/functions.php:644 msgid "Billing Address 2" msgstr "" -#: includes/Order/functions.php:679 +#: includes/Order/functions.php:645 msgid "Billing City" msgstr "" -#: includes/Order/functions.php:680 +#: includes/Order/functions.php:646 msgid "Billing State" msgstr "" -#: includes/Order/functions.php:681 +#: includes/Order/functions.php:647 msgid "Billing Postcode" msgstr "" -#: includes/Order/functions.php:682 +#: includes/Order/functions.php:648 msgid "Billing Country" msgstr "" -#: includes/Order/functions.php:683 +#: includes/Order/functions.php:649 msgid "Shipping Company" msgstr "" -#: includes/Order/functions.php:684 +#: includes/Order/functions.php:650 msgid "Shipping First Name" msgstr "" -#: includes/Order/functions.php:685 +#: includes/Order/functions.php:651 msgid "Shipping Last Name" msgstr "" -#: includes/Order/functions.php:686 +#: includes/Order/functions.php:652 msgid "Shipping Full Name" msgstr "" -#: includes/Order/functions.php:687 +#: includes/Order/functions.php:653 msgid "Shipping Address 1" msgstr "" -#: includes/Order/functions.php:688 +#: includes/Order/functions.php:654 msgid "Shipping Address 2" msgstr "" -#: includes/Order/functions.php:689 +#: includes/Order/functions.php:655 msgid "Shipping City" msgstr "" -#: includes/Order/functions.php:690 +#: includes/Order/functions.php:656 msgid "Shipping State" msgstr "" -#: includes/Order/functions.php:691 +#: includes/Order/functions.php:657 msgid "Shipping Postcode" msgstr "" -#: includes/Order/functions.php:692 +#: includes/Order/functions.php:658 msgid "Shipping Country" msgstr "" -#: includes/Order/functions.php:693 +#: includes/Order/functions.php:659 msgid "Customer IP" msgstr "" -#: includes/Order/functions.php:694 +#: includes/Order/functions.php:660 msgid "Customer Note" msgstr "" -#: includes/Order/Hooks.php:309 +#: includes/Order/Hooks.php:272 msgid "Mark parent order completed when all child orders are completed." msgstr "" -#: includes/Order/Hooks.php:364 +#: includes/Order/Hooks.php:327 msgid "This coupon is invalid for multiple vendors." msgstr "" -#: includes/Order/Hooks.php:378 +#: includes/Order/Hooks.php:341 msgid "A coupon must be restricted with a vendor product." msgstr "" #. translators: %s item name. -#: includes/Order/Hooks.php:430 +#: includes/Order/Hooks.php:387 msgid "Unable to restore stock for item %s." msgstr "" @@ -4013,9 +4043,9 @@ msgid "Delete all variations" msgstr "" #: includes/Product/functions.php:215 -#: templates/my-orders.php:33 +#: templates/my-orders.php:27 #: templates/orders/listing.php:33 -#: templates/orders/listing.php:80 +#: templates/orders/listing.php:83 #: templates/products/products-listing-row.php:67 #: templates/products/products-listing.php:114 #: templates/sub-orders.php:45 @@ -4141,7 +4171,7 @@ msgid "Expand" msgstr "" #: includes/Product/functions.php:321 -#: templates/orders/details.php:361 +#: templates/orders/details.php:346 #: templates/settings/store-form.php:40 msgid "Close" msgstr "" @@ -4200,9 +4230,9 @@ msgid "Edit" msgstr "" #: includes/Product/functions.php:510 -#: templates/my-orders.php:107 -#: templates/orders/listing.php:164 -#: templates/sub-orders.php:100 +#: templates/my-orders.php:101 +#: templates/orders/listing.php:150 +#: templates/sub-orders.php:96 msgid "View" msgstr "" @@ -4392,7 +4422,7 @@ msgstr "" #: includes/REST/AdminReportController.php:144 #: templates/dashboard/orders-widget.php:20 #: templates/dashboard/products-widget.php:26 -#: templates/my-orders.php:34 +#: templates/my-orders.php:28 #: templates/orders/order-fee-html.php:24 #: templates/sub-orders.php:49 msgid "Total" @@ -4410,13 +4440,13 @@ msgid "Vendors products data." msgstr "" #: includes/REST/DummyDataController.php:175 -#: includes/REST/OrderController.php:896 +#: includes/REST/OrderController.php:897 #: includes/REST/ProductController.php:1672 msgid "Unique identifier for the resource." msgstr "" #: includes/REST/DummyDataController.php:181 -#: includes/REST/OrderController.php:1252 +#: includes/REST/OrderController.php:1253 #: includes/REST/ProductController.php:1678 msgid "Product name." msgstr "" @@ -4876,45 +4906,45 @@ msgid "Menu order, used to custom sort products." msgstr "" #: includes/REST/DummyDataController.php:825 -#: includes/REST/OrderController.php:1213 -#: includes/REST/OrderController.php:1325 -#: includes/REST/OrderController.php:1416 -#: includes/REST/OrderController.php:1502 -#: includes/REST/OrderController.php:1600 -#: includes/REST/OrderController.php:1658 +#: includes/REST/OrderController.php:1214 +#: includes/REST/OrderController.php:1326 +#: includes/REST/OrderController.php:1417 +#: includes/REST/OrderController.php:1503 +#: includes/REST/OrderController.php:1601 +#: includes/REST/OrderController.php:1659 #: includes/REST/ProductController.php:2249 msgid "Meta data." msgstr "" #: includes/REST/DummyDataController.php:832 -#: includes/REST/OrderController.php:1220 -#: includes/REST/OrderController.php:1332 -#: includes/REST/OrderController.php:1423 -#: includes/REST/OrderController.php:1509 -#: includes/REST/OrderController.php:1607 -#: includes/REST/OrderController.php:1665 +#: includes/REST/OrderController.php:1221 +#: includes/REST/OrderController.php:1333 +#: includes/REST/OrderController.php:1424 +#: includes/REST/OrderController.php:1510 +#: includes/REST/OrderController.php:1608 +#: includes/REST/OrderController.php:1666 #: includes/REST/ProductController.php:2256 msgid "Meta ID." msgstr "" #: includes/REST/DummyDataController.php:839 -#: includes/REST/OrderController.php:1226 -#: includes/REST/OrderController.php:1338 -#: includes/REST/OrderController.php:1429 -#: includes/REST/OrderController.php:1515 -#: includes/REST/OrderController.php:1613 -#: includes/REST/OrderController.php:1671 +#: includes/REST/OrderController.php:1227 +#: includes/REST/OrderController.php:1339 +#: includes/REST/OrderController.php:1430 +#: includes/REST/OrderController.php:1516 +#: includes/REST/OrderController.php:1614 +#: includes/REST/OrderController.php:1672 #: includes/REST/ProductController.php:2262 msgid "Meta key." msgstr "" #: includes/REST/DummyDataController.php:845 -#: includes/REST/OrderController.php:1231 -#: includes/REST/OrderController.php:1343 -#: includes/REST/OrderController.php:1434 -#: includes/REST/OrderController.php:1520 -#: includes/REST/OrderController.php:1618 -#: includes/REST/OrderController.php:1676 +#: includes/REST/OrderController.php:1232 +#: includes/REST/OrderController.php:1344 +#: includes/REST/OrderController.php:1435 +#: includes/REST/OrderController.php:1521 +#: includes/REST/OrderController.php:1619 +#: includes/REST/OrderController.php:1677 #: includes/REST/ProductController.php:2267 msgid "Meta value." msgstr "" @@ -5015,11 +5045,11 @@ msgstr "" #: includes/REST/ProductController.php:89 #: includes/REST/ProductController.php:134 #: includes/REST/StoreController.php:63 -#: includes/REST/StoreController.php:96 -#: includes/REST/StoreController.php:113 -#: includes/REST/StoreController.php:140 -#: includes/REST/StoreController.php:174 -#: includes/REST/StoreController.php:206 +#: includes/REST/StoreController.php:98 +#: includes/REST/StoreController.php:115 +#: includes/REST/StoreController.php:142 +#: includes/REST/StoreController.php:176 +#: includes/REST/StoreController.php:208 #: includes/REST/WithdrawController.php:81 #: includes/REST/WithdrawController.php:737 msgid "Unique identifier for the object." @@ -5061,412 +5091,412 @@ msgstr "" msgid "Invalid order" msgstr "" -#: includes/REST/OrderController.php:558 -#: includes/REST/OrderController.php:628 -#: includes/REST/OrderController.php:670 -#: includes/REST/OrderController.php:702 +#: includes/REST/OrderController.php:559 +#: includes/REST/OrderController.php:629 +#: includes/REST/OrderController.php:671 +#: includes/REST/OrderController.php:703 msgid "Invalid order ID." msgstr "" -#: includes/REST/OrderController.php:564 -#: includes/REST/OrderController.php:666 -#: includes/REST/OrderController.php:698 +#: includes/REST/OrderController.php:565 +#: includes/REST/OrderController.php:667 +#: includes/REST/OrderController.php:699 msgid "You have no permission to view this notes" msgstr "" #. translators: 1) %s: post type name -#: includes/REST/OrderController.php:617 +#: includes/REST/OrderController.php:618 #: includes/REST/ProductController.php:300 msgid "Cannot create existing %s." msgstr "" -#: includes/REST/OrderController.php:624 +#: includes/REST/OrderController.php:625 msgid "You have no permission to create this notes" msgstr "" -#: includes/REST/OrderController.php:635 +#: includes/REST/OrderController.php:636 msgid "Cannot create order note, please try again." msgstr "" -#: includes/REST/OrderController.php:676 -#: includes/REST/OrderController.php:708 +#: includes/REST/OrderController.php:677 +#: includes/REST/OrderController.php:709 msgid "Invalid resource ID." msgstr "" -#: includes/REST/OrderController.php:717 +#: includes/REST/OrderController.php:718 msgid "Given order note cannot be deleted." msgstr "" -#: includes/REST/OrderController.php:902 +#: includes/REST/OrderController.php:903 msgid "Parent order ID." msgstr "" -#: includes/REST/OrderController.php:907 +#: includes/REST/OrderController.php:908 msgid "Orders belongs to specific seller" msgstr "" -#: includes/REST/OrderController.php:913 +#: includes/REST/OrderController.php:914 msgid "Order number." msgstr "" -#: includes/REST/OrderController.php:919 +#: includes/REST/OrderController.php:920 msgid "Order key." msgstr "" -#: includes/REST/OrderController.php:925 +#: includes/REST/OrderController.php:926 msgid "Shows where the order was created." msgstr "" -#: includes/REST/OrderController.php:931 +#: includes/REST/OrderController.php:932 msgid "Version of WooCommerce which last updated the order." msgstr "" -#: includes/REST/OrderController.php:937 +#: includes/REST/OrderController.php:938 msgid "Order status." msgstr "" -#: includes/REST/OrderController.php:944 +#: includes/REST/OrderController.php:945 msgid "Currency the order was created with, in ISO format." msgstr "" -#: includes/REST/OrderController.php:951 +#: includes/REST/OrderController.php:952 msgid "The date the order was created, in the site's timezone." msgstr "" -#: includes/REST/OrderController.php:958 +#: includes/REST/OrderController.php:959 msgid "The date the order was created, as GMT." msgstr "" -#: includes/REST/OrderController.php:964 +#: includes/REST/OrderController.php:965 msgid "The date the order was last modified, in the site's timezone." msgstr "" -#: includes/REST/OrderController.php:970 +#: includes/REST/OrderController.php:971 msgid "The date the order was last modified, as GMT." msgstr "" -#: includes/REST/OrderController.php:976 +#: includes/REST/OrderController.php:977 msgid "Total discount amount for the order." msgstr "" -#: includes/REST/OrderController.php:982 +#: includes/REST/OrderController.php:983 msgid "Total discount tax amount for the order." msgstr "" -#: includes/REST/OrderController.php:988 +#: includes/REST/OrderController.php:989 msgid "Total shipping amount for the order." msgstr "" -#: includes/REST/OrderController.php:994 +#: includes/REST/OrderController.php:995 msgid "Total shipping tax amount for the order." msgstr "" -#: includes/REST/OrderController.php:1000 +#: includes/REST/OrderController.php:1001 msgid "Sum of line item taxes only." msgstr "" -#: includes/REST/OrderController.php:1006 +#: includes/REST/OrderController.php:1007 msgid "Grand total." msgstr "" -#: includes/REST/OrderController.php:1012 +#: includes/REST/OrderController.php:1013 msgid "Sum of all taxes." msgstr "" -#: includes/REST/OrderController.php:1018 +#: includes/REST/OrderController.php:1019 msgid "True the prices included tax during checkout." msgstr "" -#: includes/REST/OrderController.php:1024 +#: includes/REST/OrderController.php:1025 #: includes/REST/VendorDashboardController.php:521 msgid "User ID who owns the order. 0 for guests." msgstr "" -#: includes/REST/OrderController.php:1030 +#: includes/REST/OrderController.php:1031 msgid "Order id to search order" msgstr "" -#: includes/REST/OrderController.php:1036 +#: includes/REST/OrderController.php:1037 msgid "Customer's IP address." msgstr "" -#: includes/REST/OrderController.php:1042 +#: includes/REST/OrderController.php:1043 msgid "User agent of the customer." msgstr "" -#: includes/REST/OrderController.php:1048 +#: includes/REST/OrderController.php:1049 msgid "Note left by customer during checkout." msgstr "" -#: includes/REST/OrderController.php:1053 +#: includes/REST/OrderController.php:1054 msgid "Billing address." msgstr "" -#: includes/REST/OrderController.php:1058 -#: includes/REST/OrderController.php:1121 +#: includes/REST/OrderController.php:1059 +#: includes/REST/OrderController.php:1122 msgid "First name." msgstr "" -#: includes/REST/OrderController.php:1063 -#: includes/REST/OrderController.php:1126 +#: includes/REST/OrderController.php:1064 +#: includes/REST/OrderController.php:1127 msgid "Last name." msgstr "" -#: includes/REST/OrderController.php:1068 -#: includes/REST/OrderController.php:1131 +#: includes/REST/OrderController.php:1069 +#: includes/REST/OrderController.php:1132 msgid "Company name." msgstr "" -#: includes/REST/OrderController.php:1073 -#: includes/REST/OrderController.php:1136 +#: includes/REST/OrderController.php:1074 +#: includes/REST/OrderController.php:1137 #: templates/admin-setup-wizard/step-store-wc-fields.php:37 msgid "Address line 1" msgstr "" -#: includes/REST/OrderController.php:1078 -#: includes/REST/OrderController.php:1141 +#: includes/REST/OrderController.php:1079 +#: includes/REST/OrderController.php:1142 #: templates/admin-setup-wizard/step-store-wc-fields.php:44 msgid "Address line 2" msgstr "" -#: includes/REST/OrderController.php:1083 -#: includes/REST/OrderController.php:1146 +#: includes/REST/OrderController.php:1084 +#: includes/REST/OrderController.php:1147 msgid "City name." msgstr "" -#: includes/REST/OrderController.php:1088 -#: includes/REST/OrderController.php:1151 +#: includes/REST/OrderController.php:1089 +#: includes/REST/OrderController.php:1152 msgid "ISO code or name of the state, province or district." msgstr "" -#: includes/REST/OrderController.php:1093 -#: includes/REST/OrderController.php:1156 +#: includes/REST/OrderController.php:1094 +#: includes/REST/OrderController.php:1157 msgid "Postal code." msgstr "" -#: includes/REST/OrderController.php:1098 -#: includes/REST/OrderController.php:1161 +#: includes/REST/OrderController.php:1099 +#: includes/REST/OrderController.php:1162 msgid "Country code in ISO 3166-1 alpha-2 format." msgstr "" -#: includes/REST/OrderController.php:1103 +#: includes/REST/OrderController.php:1104 msgid "Email address." msgstr "" -#: includes/REST/OrderController.php:1109 +#: includes/REST/OrderController.php:1110 msgid "Phone number." msgstr "" -#: includes/REST/OrderController.php:1116 +#: includes/REST/OrderController.php:1117 msgid "Shipping address." msgstr "" -#: includes/REST/OrderController.php:1168 +#: includes/REST/OrderController.php:1169 msgid "Payment method ID." msgstr "" -#: includes/REST/OrderController.php:1173 +#: includes/REST/OrderController.php:1174 msgid "Payment method title." msgstr "" -#: includes/REST/OrderController.php:1178 +#: includes/REST/OrderController.php:1179 msgid "Unique transaction ID." msgstr "" -#: includes/REST/OrderController.php:1183 +#: includes/REST/OrderController.php:1184 msgid "The date the order was paid, in the site's timezone." msgstr "" -#: includes/REST/OrderController.php:1189 +#: includes/REST/OrderController.php:1190 msgid "The date the order was paid, as GMT." msgstr "" -#: includes/REST/OrderController.php:1195 +#: includes/REST/OrderController.php:1196 msgid "The date the order was completed, in the site's timezone." msgstr "" -#: includes/REST/OrderController.php:1201 +#: includes/REST/OrderController.php:1202 msgid "The date the order was completed, as GMT." msgstr "" -#: includes/REST/OrderController.php:1207 +#: includes/REST/OrderController.php:1208 msgid "MD5 hash of cart items to ensure orders are not modified." msgstr "" -#: includes/REST/OrderController.php:1239 +#: includes/REST/OrderController.php:1240 msgid "Line items data." msgstr "" -#: includes/REST/OrderController.php:1246 -#: includes/REST/OrderController.php:1374 -#: includes/REST/OrderController.php:1452 -#: includes/REST/OrderController.php:1538 -#: includes/REST/OrderController.php:1636 +#: includes/REST/OrderController.php:1247 +#: includes/REST/OrderController.php:1375 +#: includes/REST/OrderController.php:1453 +#: includes/REST/OrderController.php:1539 +#: includes/REST/OrderController.php:1637 msgid "Item ID." msgstr "" -#: includes/REST/OrderController.php:1257 +#: includes/REST/OrderController.php:1258 #: includes/REST/OrderControllerV2.php:76 msgid "Product ID." msgstr "" -#: includes/REST/OrderController.php:1262 +#: includes/REST/OrderController.php:1263 msgid "Variation ID, if applicable." msgstr "" -#: includes/REST/OrderController.php:1267 +#: includes/REST/OrderController.php:1268 msgid "Quantity ordered." msgstr "" -#: includes/REST/OrderController.php:1272 +#: includes/REST/OrderController.php:1273 msgid "Tax class of product." msgstr "" -#: includes/REST/OrderController.php:1277 +#: includes/REST/OrderController.php:1278 msgid "Line subtotal (before discounts)." msgstr "" -#: includes/REST/OrderController.php:1282 +#: includes/REST/OrderController.php:1283 msgid "Line subtotal tax (before discounts)." msgstr "" -#: includes/REST/OrderController.php:1288 -#: includes/REST/OrderController.php:1468 -#: includes/REST/OrderController.php:1560 +#: includes/REST/OrderController.php:1289 +#: includes/REST/OrderController.php:1469 +#: includes/REST/OrderController.php:1561 msgid "Line total (after discounts)." msgstr "" -#: includes/REST/OrderController.php:1293 -#: includes/REST/OrderController.php:1473 -#: includes/REST/OrderController.php:1565 +#: includes/REST/OrderController.php:1294 +#: includes/REST/OrderController.php:1474 +#: includes/REST/OrderController.php:1566 msgid "Line total tax (after discounts)." msgstr "" -#: includes/REST/OrderController.php:1299 -#: includes/REST/OrderController.php:1479 -#: includes/REST/OrderController.php:1571 +#: includes/REST/OrderController.php:1300 +#: includes/REST/OrderController.php:1480 +#: includes/REST/OrderController.php:1572 msgid "Line taxes." msgstr "" -#: includes/REST/OrderController.php:1307 -#: includes/REST/OrderController.php:1386 -#: includes/REST/OrderController.php:1487 -#: includes/REST/OrderController.php:1579 +#: includes/REST/OrderController.php:1308 +#: includes/REST/OrderController.php:1387 +#: includes/REST/OrderController.php:1488 +#: includes/REST/OrderController.php:1580 msgid "Tax rate ID." msgstr "" -#: includes/REST/OrderController.php:1312 -#: includes/REST/OrderController.php:1493 -#: includes/REST/OrderController.php:1585 +#: includes/REST/OrderController.php:1313 +#: includes/REST/OrderController.php:1494 +#: includes/REST/OrderController.php:1586 msgid "Tax total." msgstr "" -#: includes/REST/OrderController.php:1317 -#: includes/REST/OrderController.php:1591 +#: includes/REST/OrderController.php:1318 +#: includes/REST/OrderController.php:1592 msgid "Tax subtotal." msgstr "" -#: includes/REST/OrderController.php:1351 +#: includes/REST/OrderController.php:1352 msgid "Product SKU." msgstr "" -#: includes/REST/OrderController.php:1357 +#: includes/REST/OrderController.php:1358 msgid "Product price." msgstr "" -#: includes/REST/OrderController.php:1366 +#: includes/REST/OrderController.php:1367 msgid "Tax lines data." msgstr "" -#: includes/REST/OrderController.php:1380 +#: includes/REST/OrderController.php:1381 msgid "Tax rate code." msgstr "" -#: includes/REST/OrderController.php:1392 +#: includes/REST/OrderController.php:1393 msgid "Tax rate label." msgstr "" -#: includes/REST/OrderController.php:1398 +#: includes/REST/OrderController.php:1399 msgid "Show if is a compound tax rate." msgstr "" -#: includes/REST/OrderController.php:1404 +#: includes/REST/OrderController.php:1405 msgid "Tax total (not including shipping taxes)." msgstr "" -#: includes/REST/OrderController.php:1410 +#: includes/REST/OrderController.php:1411 msgid "Shipping tax total." msgstr "" -#: includes/REST/OrderController.php:1445 +#: includes/REST/OrderController.php:1446 msgid "Shipping lines data." msgstr "" -#: includes/REST/OrderController.php:1458 +#: includes/REST/OrderController.php:1459 msgid "Shipping method name." msgstr "" -#: includes/REST/OrderController.php:1463 +#: includes/REST/OrderController.php:1464 msgid "Shipping method ID." msgstr "" -#: includes/REST/OrderController.php:1531 +#: includes/REST/OrderController.php:1532 msgid "Fee lines data." msgstr "" -#: includes/REST/OrderController.php:1544 +#: includes/REST/OrderController.php:1545 msgid "Fee name." msgstr "" -#: includes/REST/OrderController.php:1549 +#: includes/REST/OrderController.php:1550 msgid "Tax class of fee." msgstr "" -#: includes/REST/OrderController.php:1554 +#: includes/REST/OrderController.php:1555 msgid "Tax status of fee." msgstr "" -#: includes/REST/OrderController.php:1629 +#: includes/REST/OrderController.php:1630 msgid "Coupons line data." msgstr "" -#: includes/REST/OrderController.php:1642 +#: includes/REST/OrderController.php:1643 msgid "Coupon code." msgstr "" -#: includes/REST/OrderController.php:1647 +#: includes/REST/OrderController.php:1648 msgid "Discount total." msgstr "" -#: includes/REST/OrderController.php:1652 +#: includes/REST/OrderController.php:1653 msgid "Discount total tax." msgstr "" -#: includes/REST/OrderController.php:1687 +#: includes/REST/OrderController.php:1688 msgid "List of refunds." msgstr "" -#: includes/REST/OrderController.php:1695 +#: includes/REST/OrderController.php:1696 msgid "Refund ID." msgstr "" -#: includes/REST/OrderController.php:1701 +#: includes/REST/OrderController.php:1702 msgid "Refund reason." msgstr "" -#: includes/REST/OrderController.php:1707 +#: includes/REST/OrderController.php:1708 msgid "Refund total." msgstr "" -#: includes/REST/OrderController.php:1716 +#: includes/REST/OrderController.php:1717 msgid "Define if the order is paid. It will set the status to processing and reduce stock items." msgstr "" -#: includes/REST/OrderController.php:1778 +#: includes/REST/OrderController.php:1779 msgid "Limit response to resources published after a given ISO8601 compliant date." msgstr "" -#: includes/REST/OrderController.php:1785 +#: includes/REST/OrderController.php:1786 msgid "Limit response to resources published before a given ISO8601 compliant date." msgstr "" @@ -5795,79 +5825,76 @@ msgstr "" msgid "Formatted Action Taken Message" msgstr "" -#: includes/REST/StoreController.php:79 +#: includes/REST/StoreController.php:81 msgid "Reassign the deleted user's posts and links to this user ID." msgstr "" -#: includes/REST/StoreController.php:150 +#: includes/REST/StoreController.php:152 #: templates/widgets/store-contact-form.php:15 #: assets/js/vue-admin.js:2 msgid "Your Name" msgstr "" -#: includes/REST/StoreController.php:156 +#: includes/REST/StoreController.php:158 msgid "Your email" msgstr "" -#: includes/REST/StoreController.php:161 +#: includes/REST/StoreController.php:163 msgid "Your Message" msgstr "" -#: includes/REST/StoreController.php:179 +#: includes/REST/StoreController.php:181 msgid "Status for the store object." msgstr "" -#: includes/REST/StoreController.php:210 +#: includes/REST/StoreController.php:212 msgid "Get Best Selling Products Category." msgstr "" -#: includes/REST/StoreController.php:317 -#: includes/REST/StoreController.php:388 -#: includes/REST/StoreController.php:548 -#: includes/REST/StoreController.php:944 -msgid "No store found" -msgstr "" - -#: includes/REST/StoreController.php:340 -#: includes/REST/StoreController.php:866 -msgid "No vendor found for updating status" +#: includes/REST/StoreController.php:339 +msgid "Invalid user ID for reassignment." msgstr "" -#: includes/REST/StoreController.php:345 -msgid "Invalid user ID for reassignment." +#: includes/REST/StoreController.php:538 +#: includes/REST/StoreController.php:934 +msgid "No store found" msgstr "" -#: includes/REST/StoreController.php:566 -#: includes/REST/StoreController.php:585 +#: includes/REST/StoreController.php:556 +#: includes/REST/StoreController.php:575 msgid "No reviews found" msgstr "" -#: includes/REST/StoreController.php:770 +#: includes/REST/StoreController.php:760 msgid "This email address is not valid" msgstr "" -#: includes/REST/StoreController.php:813 +#: includes/REST/StoreController.php:803 msgid "No vendor is found to be send an email." msgstr "" -#: includes/REST/StoreController.php:860 +#: includes/REST/StoreController.php:850 msgid "Status parameter must be active or inactive" msgstr "" -#: includes/REST/StoreController.php:894 +#: includes/REST/StoreController.php:856 +msgid "No vendor found for updating status" +msgstr "" + +#: includes/REST/StoreController.php:884 msgid "No items found for bulk updating" msgstr "" -#: includes/REST/StoreController.php:963 +#: includes/REST/StoreController.php:953 msgid "Status of the store" msgstr "" -#: includes/REST/StoreController.php:970 +#: includes/REST/StoreController.php:960 msgid "Store List Order By" msgstr "" -#: includes/REST/StoreController.php:976 -#: includes/REST/StoreController.php:982 +#: includes/REST/StoreController.php:966 +#: includes/REST/StoreController.php:972 msgid "Store List Order" msgstr "" @@ -6460,7 +6487,7 @@ msgid "We need to update your install to the latest version" msgstr "" #: includes/Upgrade/AdminNotice.php:45 -#: templates/orders/details.php:199 +#: templates/orders/details.php:194 msgid "Update" msgstr "" @@ -7002,26 +7029,26 @@ msgstr "" msgid "Switched back to %1$s (%2$s)." msgstr "" -#: includes/Vendor/Vendor.php:949 +#: includes/Vendor/Vendor.php:955 msgid "No ratings found yet!" msgstr "" -#: includes/Vendor/Vendor.php:951 +#: includes/Vendor/Vendor.php:957 msgid "%s rating from %d review" msgid_plural "%s rating from %d reviews" msgstr[0] "" msgstr[1] "" -#: includes/Vendor/Vendor.php:952 +#: includes/Vendor/Vendor.php:958 msgid "Rated %s out of %d" msgstr "" -#: includes/Vendor/Vendor.php:1063 +#: includes/Vendor/Vendor.php:1069 #: templates/settings/store-form.php:274 msgid "Store is open" msgstr "" -#: includes/Vendor/Vendor.php:1077 +#: includes/Vendor/Vendor.php:1083 #: templates/settings/store-form.php:282 msgid "Store is closed" msgstr "" @@ -7030,15 +7057,7 @@ msgstr "" msgid "Product SKU must be unique" msgstr "" -#: includes/wc-functions.php:769 -msgid "Your {site_title} order receipt from {order_date}" -msgstr "" - -#: includes/wc-functions.php:770 -msgid "Your {site_title} order from {order_date} is complete" -msgstr "" - -#: includes/wc-functions.php:873 +#: includes/wc-functions.php:817 #: templates/account/update-customer-to-vendor.php:23 #: templates/account/vendor-registration.php:9 #: templates/global/seller-registration-form.php:13 @@ -7047,7 +7066,7 @@ msgstr "" msgid "First Name" msgstr "" -#: includes/wc-functions.php:874 +#: includes/wc-functions.php:818 #: templates/account/update-customer-to-vendor.php:27 #: templates/account/vendor-registration.php:14 #: templates/global/seller-registration-form.php:18 @@ -7056,76 +7075,65 @@ msgstr "" msgid "Last Name" msgstr "" -#: includes/wc-functions.php:875 +#: includes/wc-functions.php:819 #: templates/account/vendor-registration.php:27 #: templates/dashboard/edit-account.php:65 msgid "Email address" msgstr "" -#: includes/wc-functions.php:881 +#: includes/wc-functions.php:825 msgid "is a required field." msgstr "" -#: includes/wc-functions.php:887 +#: includes/wc-functions.php:831 msgid "Please provide a valid email address." msgstr "" -#: includes/wc-functions.php:889 +#: includes/wc-functions.php:833 msgid "This email address is already registered." msgstr "" -#: includes/wc-functions.php:895 +#: includes/wc-functions.php:839 msgid "Your current password is incorrect." msgstr "" -#: includes/wc-functions.php:900 +#: includes/wc-functions.php:844 msgid "Please fill out all password fields." msgstr "" -#: includes/wc-functions.php:903 +#: includes/wc-functions.php:847 msgid "Please enter your current password." msgstr "" -#: includes/wc-functions.php:906 +#: includes/wc-functions.php:850 msgid "Please re-enter your password." msgstr "" -#: includes/wc-functions.php:909 +#: includes/wc-functions.php:853 msgid "New passwords do not match." msgstr "" -#: includes/wc-functions.php:929 +#: includes/wc-functions.php:873 msgid "Account details changed successfully." msgstr "" -#: includes/wc-functions.php:1056 +#: includes/wc-functions.php:919 msgid "More Products" msgstr "" -#: includes/wc-functions.php:1109 +#: includes/wc-functions.php:972 msgid "No product has been found!" msgstr "" -#: includes/wc-functions.php:1301 +#: includes/wc-functions.php:1030 msgid "Reviews cannot be posted for products that you own." msgstr "" -#. translators: 1) time format -#: includes/wc-legacy-functions.php:72 -msgid "Order – %s" -msgstr "" - -#. translators: 1) time format -#: includes/wc-legacy-functions.php:72 -msgctxt "Order date parsed by strftime" -msgid "%1$b %2$d, %Y @ %I:%M %p" -msgstr "" - -#: includes/wc-template.php:176 +#: includes/wc-template.php:169 msgid "— No change —" msgstr "" -#: includes/wc-template.php:285 +#: includes/wc-template.php:278 msgid "Go to Vendor Dashboard" msgstr "" @@ -7706,7 +7714,7 @@ msgstr "" #: templates/dashboard/big-counter-widget.php:21 #: templates/orders/listing.php:32 -#: templates/orders/listing.php:77 +#: templates/orders/listing.php:80 msgid "Earning" msgstr "" @@ -8187,12 +8195,12 @@ msgid "My Account" msgstr "" #: templates/global/header-menu.php:56 -#: templates/orders/details.php:126 +#: templates/orders/details.php:121 msgid "Billing Address" msgstr "" #: templates/global/header-menu.php:57 -#: templates/orders/details.php:141 +#: templates/orders/details.php:136 msgid "Shipping Address" msgstr "" @@ -8269,13 +8277,13 @@ msgstr "" msgid "Search Address" msgstr "" -#: templates/my-orders.php:26 +#: templates/my-orders.php:20 msgid "Recent Orders" msgstr "" -#: templates/my-orders.php:32 +#: templates/my-orders.php:26 #: templates/orders/listing.php:35 -#: templates/orders/listing.php:106 +#: templates/orders/listing.php:93 #: templates/products/products-listing-row.php:125 #: templates/products/products-listing.php:123 #: templates/reverse-withdrawal/transaction-listing.php:19 @@ -8291,22 +8299,22 @@ msgstr "" #. translators: 1) order total amount 2) item count #. translators: 1) order total amount 2) order item count -#: templates/my-orders.php:69 -#: templates/sub-orders.php:89 +#: templates/my-orders.php:63 +#: templates/sub-orders.php:85 msgid "%1$s for %2$s item" msgid_plural "%1$s for %2$s items" msgstr[0] "" msgstr[1] "" -#: templates/my-orders.php:82 +#: templates/my-orders.php:76 msgid "Multiple Vendor" msgstr "" -#: templates/my-orders.php:94 +#: templates/my-orders.php:88 msgid "Pay" msgstr "" -#: templates/my-orders.php:127 +#: templates/my-orders.php:121 msgid "No orders found!" msgstr "" @@ -8354,119 +8362,119 @@ msgstr "" msgid "This is not yours, I swear!" msgstr "" -#: templates/orders/details.php:30 +#: templates/orders/details.php:29 msgid "Item" msgstr "" -#: templates/orders/details.php:34 +#: templates/orders/details.php:33 msgid "Qty" msgstr "" -#: templates/orders/details.php:36 +#: templates/orders/details.php:35 msgid "Totals" msgstr "" -#: templates/orders/details.php:99 +#: templates/orders/details.php:94 #: assets/js/vue-admin.js:2 msgid "Coupons" msgstr "" -#: templates/orders/details.php:132 +#: templates/orders/details.php:127 msgid "No billing address set." msgstr "" -#: templates/orders/details.php:147 +#: templates/orders/details.php:142 msgid "No shipping address set." msgstr "" -#: templates/orders/details.php:158 +#: templates/orders/details.php:153 msgid "Downloadable Product Permission" msgstr "" -#: templates/orders/details.php:173 +#: templates/orders/details.php:168 msgid "General Details" msgstr "" -#: templates/orders/details.php:177 +#: templates/orders/details.php:172 msgid "Order Status:" msgstr "" -#: templates/orders/details.php:181 +#: templates/orders/details.php:176 msgid "  Edit" msgstr "" -#: templates/orders/details.php:207 +#: templates/orders/details.php:202 msgid "Order Date:" msgstr "" -#: templates/orders/details.php:211 +#: templates/orders/details.php:206 msgid "Earning From Order:" msgstr "" -#: templates/orders/details.php:218 +#: templates/orders/details.php:213 msgid "Customer:" msgstr "" -#: templates/orders/details.php:231 +#: templates/orders/details.php:217 msgid "Email:" msgstr "" -#: templates/orders/details.php:235 +#: templates/orders/details.php:221 msgid "Phone:" msgstr "" -#: templates/orders/details.php:239 +#: templates/orders/details.php:225 msgid "Customer IP:" msgstr "" -#: templates/orders/details.php:255 +#: templates/orders/details.php:240 msgid "Customer Note:" msgstr "" -#: templates/orders/details.php:268 +#: templates/orders/details.php:253 msgid "Order Notes" msgstr "" #. translators: 1) human-readable date -#: templates/orders/details.php:295 +#: templates/orders/details.php:280 msgid "added %s ago" msgstr "" -#: templates/orders/details.php:305 +#: templates/orders/details.php:290 msgid "There are no notes for this order yet." msgstr "" -#: templates/orders/details.php:314 +#: templates/orders/details.php:299 msgid "Add note" msgstr "" -#: templates/orders/details.php:322 +#: templates/orders/details.php:307 msgid "Customer note" msgstr "" -#: templates/orders/details.php:323 +#: templates/orders/details.php:308 msgid "Private note" msgstr "" -#: templates/orders/details.php:331 +#: templates/orders/details.php:316 #: assets/js/vue-admin.js:2 msgid "Add Note" msgstr "" -#: templates/orders/details.php:338 -#: templates/orders/details.php:347 +#: templates/orders/details.php:323 +#: templates/orders/details.php:332 msgid "Tracking Number" msgstr "" -#: templates/orders/details.php:342 +#: templates/orders/details.php:327 msgid "Shipping Provider Name / URL" msgstr "" -#: templates/orders/details.php:352 +#: templates/orders/details.php:337 msgid "Date Shipped" msgstr "" -#: templates/orders/details.php:360 +#: templates/orders/details.php:345 msgid "Add Tracking Details" msgstr "" @@ -8485,7 +8493,7 @@ msgid "Select bulk action" msgstr "" #: templates/orders/listing.php:34 -#: templates/orders/listing.php:83 +#: templates/orders/listing.php:86 msgid "Customer" msgstr "" @@ -8495,23 +8503,23 @@ msgid "Shipment" msgstr "" #: templates/orders/listing.php:41 -#: templates/orders/listing.php:136 +#: templates/orders/listing.php:122 #: templates/products/downloadable.php:40 msgid "Action" msgstr "" #. translators: 1) order number -#: templates/orders/listing.php:61 -#: templates/orders/listing.php:67 +#: templates/orders/listing.php:64 +#: templates/orders/listing.php:70 msgid "Order %s" msgstr "" -#: templates/orders/listing.php:100 +#: templates/orders/listing.php:89 msgid "Guest" msgstr "" -#: templates/orders/listing.php:109 -#: templates/orders/listing.php:110 +#: templates/orders/listing.php:96 +#: templates/orders/listing.php:97 #: templates/products/products-listing-row.php:131 #: templates/products/products-listing-row.php:132 msgid "Unpublished" @@ -8519,21 +8527,21 @@ msgstr "" #. translators: 1) human-readable date #. translators: %s: time difference -#: templates/orders/listing.php:119 +#: templates/orders/listing.php:105 #: templates/products/products-listing-row.php:153 msgid "%s ago" msgstr "" -#: templates/orders/listing.php:130 -#: templates/sub-orders.php:80 +#: templates/orders/listing.php:116 +#: templates/sub-orders.php:76 msgid "Shipping Status" msgstr "" -#: templates/orders/listing.php:155 +#: templates/orders/listing.php:141 msgid "Complete" msgstr "" -#: templates/orders/listing.php:207 +#: templates/orders/listing.php:193 msgid "No orders found" msgstr "" diff --git a/package-lock.json b/package-lock.json index ed55ec0eaa..fa5d937f36 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,15 @@ { "name": "dokan", - "version": "3.7.24", + "version": "3.8.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "dokan", - "version": "3.7.24", + "version": "3.8.0", "license": "GPL", "devDependencies": { - "@wordpress/scripts": "^26.8.0", + "@wordpress/scripts": "^26.11.0", "chartjs-adapter-moment": "^1.0.1", "debounce": "^1.2.1", "fs-extra": "^10.1.0", @@ -70,9 +70,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.6.tgz", - "integrity": "sha512-29tfsWTq2Ftu7MXmimyC0C5FDZv5DYxOZkh3XD3+QW4V/BYuv/LyEsjj3c0hqedEaDt6DBfDvexMKU8YevdqFg==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -109,20 +109,20 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.22.7", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.7.tgz", - "integrity": "sha512-LH6HJqjOyu/Qtp7LuSycZXK/CYXQ4ohdkliEaL1QTdtOXVdOVpTBKVxAo/+eeyt+x/2SRzB+zUPduVl+xiEvdg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.10.tgz", + "integrity": "sha512-0J8DNPRXQRLeR9rPaUMM3fA+RbixjnVLe/MRMYCkp3hzgsSuxCHQ8NN8xQG1wIHKJ4a1DTROTvFJdW+B5/eOsg==", "dev": true, "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "@nicolo-ribaudo/semver-v6": "^6.3.3", - "eslint-visitor-keys": "^2.1.0" + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" }, "engines": { "node": "^10.13.0 || ^12.13.0 || >=14.0.0" }, "peerDependencies": { - "@babel/core": ">=7.11.0", + "@babel/core": "^7.11.0", "eslint": "^7.5.0 || ^8.0.0" } }, @@ -154,40 +154,37 @@ } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz", - "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz", + "integrity": "sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.10" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.6.tgz", - "integrity": "sha512-534sYEqWD9VfUm3IPn2SLcH4Q3P86XL+QvqdC7ZsFrzyyPF3T4XGiVghF6PTYNdWg6pXuoqXxNQAhbYeEInTzA==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz", + "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.22.6", + "@babel/compat-data": "^7.22.9", "@babel/helper-validator-option": "^7.22.5", - "@nicolo-ribaudo/semver-v6": "^6.3.3", "browserslist": "^4.21.9", - "lru-cache": "^5.1.1" + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz", - "integrity": "sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.10.tgz", + "integrity": "sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", @@ -195,10 +192,10 @@ "@babel/helper-function-name": "^7.22.5", "@babel/helper-member-expression-to-functions": "^7.22.5", "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "semver": "^6.3.0" + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -208,14 +205,14 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.5.tgz", - "integrity": "sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", + "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "regexpu-core": "^5.3.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -225,9 +222,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.1.tgz", - "integrity": "sha512-kX4oXixDxG197yhX+J3Wp+NpL2wuCFjWQAr6yX2jtCnflK9ulMI51ULFGIrWiX1jGfvAxdHp+XQCcP2bZGPs9A==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", + "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", @@ -237,7 +234,7 @@ "resolve": "^1.14.2" }, "peerDependencies": { - "@babel/core": "^7.4.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/helper-environment-visitor": { @@ -339,15 +336,14 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz", - "integrity": "sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", + "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/helper-wrap-function": "^7.22.9" }, "engines": { "node": ">=6.9.0" @@ -357,20 +353,20 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz", - "integrity": "sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", + "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-simple-access": { @@ -398,9 +394,9 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz", - "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "dependencies": { "@babel/types": "^7.22.5" @@ -437,15 +433,14 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz", - "integrity": "sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz", + "integrity": "sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==", "dev": true, "dependencies": { "@babel/helper-function-name": "^7.22.5", "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.10" }, "engines": { "node": ">=6.9.0" @@ -606,22 +601,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", @@ -915,14 +894,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.5.tgz", - "integrity": "sha512-gGOEvFzm3fWoyD5uZq7vVTD57pPJ3PczPUD/xCFGjzBpUosnklmXyKnGQbbbGs1NPNPskFex0j93yKbHt0cHyg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.10.tgz", + "integrity": "sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.9", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { @@ -965,9 +944,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz", - "integrity": "sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz", + "integrity": "sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1013,19 +992,19 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.5.tgz", - "integrity": "sha512-2edQhLfibpWpsVBx2n/GKOz6JdGQvLruZQfGr9l1qes2KQaWswjBzhQF7UDUZMNaMMQeYnQzxwOMPsbYF7wqPQ==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", + "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-replace-supers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, "engines": { @@ -1052,9 +1031,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz", - "integrity": "sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz", + "integrity": "sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1421,9 +1400,9 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.5.tgz", - "integrity": "sha512-AconbMKOMkyG+xCng2JogMCDcqW8wedQAqpVIL4cOSescZ7+iW8utC6YDZLMCSUIReEA733gzRSaOSXMAt/4WQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.10.tgz", + "integrity": "sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -1582,13 +1561,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz", - "integrity": "sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", + "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.1" + "regenerator-transform": "^0.15.2" }, "engines": { "node": ">=6.9.0" @@ -1613,17 +1592,17 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.22.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.7.tgz", - "integrity": "sha512-o02xM7iY7mSPI+TvaYDH0aYl+lg3+KT7qrD705JlsB/GrZSNaYO/4i+aDFKPiJ7ubq3hgv8NNLCdyB5MFxT8mg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.10.tgz", + "integrity": "sha512-RchI7HePu1eu0CYNKHHHQdfenZcM4nz8rew5B1VWqeRKdcwW5aQ5HeG9eTUbWiAS1UrmHVLmoxTWHt3iLD/NhA==", "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", - "@nicolo-ribaudo/semver-v6": "^6.3.3", - "babel-plugin-polyfill-corejs2": "^0.4.4", - "babel-plugin-polyfill-corejs3": "^0.8.2", - "babel-plugin-polyfill-regenerator": "^0.5.1" + "babel-plugin-polyfill-corejs2": "^0.4.5", + "babel-plugin-polyfill-corejs3": "^0.8.3", + "babel-plugin-polyfill-regenerator": "^0.5.2", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1709,13 +1688,13 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.5.tgz", - "integrity": "sha512-SMubA9S7Cb5sGSFFUlqxyClTA9zWJ8qGQrppNUm05LtFuN1ELRFNndkix4zUJrC9F+YivWwa1dHMSyo0e0N9dA==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.10.tgz", + "integrity": "sha512-7++c8I/ymsDo4QQBAgbraXLzIM6jmfao11KgIBEYZRReWzNWH9NtNgJcyrZiXsOPh523FQm6LfpLyy/U5fn46A==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.10", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-typescript": "^7.22.5" }, @@ -1727,9 +1706,9 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz", - "integrity": "sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", + "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1790,13 +1769,13 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.5.tgz", - "integrity": "sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.10.tgz", + "integrity": "sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.10", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-option": "^7.22.5", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", @@ -1821,15 +1800,15 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.10", "@babel/plugin-transform-async-to-generator": "^7.22.5", "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.10", "@babel/plugin-transform-class-properties": "^7.22.5", "@babel/plugin-transform-class-static-block": "^7.22.5", - "@babel/plugin-transform-classes": "^7.22.5", + "@babel/plugin-transform-classes": "^7.22.6", "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.10", "@babel/plugin-transform-dotall-regex": "^7.22.5", "@babel/plugin-transform-duplicate-keys": "^7.22.5", "@babel/plugin-transform-dynamic-import": "^7.22.5", @@ -1852,29 +1831,29 @@ "@babel/plugin-transform-object-rest-spread": "^7.22.5", "@babel/plugin-transform-object-super": "^7.22.5", "@babel/plugin-transform-optional-catch-binding": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.10", "@babel/plugin-transform-parameters": "^7.22.5", "@babel/plugin-transform-private-methods": "^7.22.5", "@babel/plugin-transform-private-property-in-object": "^7.22.5", "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", "@babel/plugin-transform-reserved-words": "^7.22.5", "@babel/plugin-transform-shorthand-properties": "^7.22.5", "@babel/plugin-transform-spread": "^7.22.5", "@babel/plugin-transform-sticky-regex": "^7.22.5", "@babel/plugin-transform-template-literals": "^7.22.5", "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", "@babel/plugin-transform-unicode-property-regex": "^7.22.5", "@babel/plugin-transform-unicode-regex": "^7.22.5", "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.3", - "babel-plugin-polyfill-corejs3": "^0.8.1", - "babel-plugin-polyfill-regenerator": "^0.5.0", - "core-js-compat": "^3.30.2", - "semver": "^6.3.0" + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.22.10", + "babel-plugin-polyfill-corejs2": "^0.4.5", + "babel-plugin-polyfill-corejs3": "^0.8.3", + "babel-plugin-polyfill-regenerator": "^0.5.2", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1884,19 +1863,17 @@ } }, "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/preset-react": { @@ -1945,12 +1922,12 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz", - "integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.10.tgz", + "integrity": "sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==", "dev": true, "dependencies": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" @@ -1992,9 +1969,9 @@ } }, "node_modules/@babel/types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.10.tgz", + "integrity": "sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.22.5", @@ -2037,17 +2014,17 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.36.1.tgz", - "integrity": "sha512-922xqFsTpHs6D0BUiG4toiyPOMc8/jafnWKxz1KWgS4XzKPy2qXf1Pe6UFuNSCQqt6tOuhAWXBNuuyUhJmw9Vg==", + "version": "0.40.1", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.40.1.tgz", + "integrity": "sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg==", "dev": true, "dependencies": { - "comment-parser": "1.3.1", - "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "~3.1.0" + "comment-parser": "1.4.0", + "esquery": "^1.5.0", + "jsdoc-type-pratt-parser": "~4.0.0" }, "engines": { - "node": "^14 || ^16 || ^17 || ^18 || ^19" + "node": ">=16" } }, "node_modules/@eslint-community/eslint-utils": { @@ -2066,9 +2043,9 @@ } }, "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2078,18 +2055,18 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", + "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", - "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -2116,9 +2093,9 @@ "dev": true }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2155,9 +2132,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.44.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", - "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.47.0.tgz", + "integrity": "sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2298,16 +2275,16 @@ } }, "node_modules/@jest/console": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.6.1.tgz", - "integrity": "sha512-Aj772AYgwTSr5w8qnyoJ0eDYvN6bMsH3ORH1ivMotrInHLKdUz6BDlaEXHdM6kODaBIkNIyQGzsMvRdOv7VG7Q==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.6.2.tgz", + "integrity": "sha512-0N0yZof5hi44HAR2pPS+ikJ3nzKNoZdVu8FffRf3wy47I7Dm7etk/3KetMdRUqzVd16V4O2m2ISpNTbnIuqy1w==", "dev": true, "dependencies": { "@jest/types": "^29.6.1", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.6.1", - "jest-util": "^29.6.1", + "jest-message-util": "^29.6.2", + "jest-util": "^29.6.2", "slash": "^3.0.0" }, "engines": { @@ -2315,15 +2292,15 @@ } }, "node_modules/@jest/core": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.6.1.tgz", - "integrity": "sha512-CcowHypRSm5oYQ1obz1wfvkjZZ2qoQlrKKvlfPwh5jUXVU12TWr2qMeH8chLMuTFzHh5a1g2yaqlqDICbr+ukQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.6.2.tgz", + "integrity": "sha512-Oj+5B+sDMiMWLhPFF+4/DvHOf+U10rgvCLGPHP8Xlsy/7QxS51aU/eBngudHlJXnaWD5EohAgJ4js+T6pa+zOg==", "dev": true, "dependencies": { - "@jest/console": "^29.6.1", - "@jest/reporters": "^29.6.1", - "@jest/test-result": "^29.6.1", - "@jest/transform": "^29.6.1", + "@jest/console": "^29.6.2", + "@jest/reporters": "^29.6.2", + "@jest/test-result": "^29.6.2", + "@jest/transform": "^29.6.2", "@jest/types": "^29.6.1", "@types/node": "*", "ansi-escapes": "^4.2.1", @@ -2332,20 +2309,20 @@ "exit": "^0.1.2", "graceful-fs": "^4.2.9", "jest-changed-files": "^29.5.0", - "jest-config": "^29.6.1", - "jest-haste-map": "^29.6.1", - "jest-message-util": "^29.6.1", + "jest-config": "^29.6.2", + "jest-haste-map": "^29.6.2", + "jest-message-util": "^29.6.2", "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.1", - "jest-resolve-dependencies": "^29.6.1", - "jest-runner": "^29.6.1", - "jest-runtime": "^29.6.1", - "jest-snapshot": "^29.6.1", - "jest-util": "^29.6.1", - "jest-validate": "^29.6.1", - "jest-watcher": "^29.6.1", + "jest-resolve": "^29.6.2", + "jest-resolve-dependencies": "^29.6.2", + "jest-runner": "^29.6.2", + "jest-runtime": "^29.6.2", + "jest-snapshot": "^29.6.2", + "jest-util": "^29.6.2", + "jest-validate": "^29.6.2", + "jest-watcher": "^29.6.2", "micromatch": "^4.0.4", - "pretty-format": "^29.6.1", + "pretty-format": "^29.6.2", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -2362,37 +2339,37 @@ } }, "node_modules/@jest/environment": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.6.1.tgz", - "integrity": "sha512-RMMXx4ws+Gbvw3DfLSuo2cfQlK7IwGbpuEWXCqyYDcqYTI+9Ju3a5hDnXaxjNsa6uKh9PQF2v+qg+RLe63tz5A==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.6.2.tgz", + "integrity": "sha512-AEcW43C7huGd/vogTddNNTDRpO6vQ2zaQNrttvWV18ArBx9Z56h7BIsXkNFJVOO4/kblWEQz30ckw0+L3izc+Q==", "dev": true, "dependencies": { - "@jest/fake-timers": "^29.6.1", + "@jest/fake-timers": "^29.6.2", "@jest/types": "^29.6.1", "@types/node": "*", - "jest-mock": "^29.6.1" + "jest-mock": "^29.6.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.6.1.tgz", - "integrity": "sha512-N5xlPrAYaRNyFgVf2s9Uyyvr795jnB6rObuPx4QFvNJz8aAjpZUDfO4bh5G/xuplMID8PrnuF1+SfSyDxhsgYg==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.6.2.tgz", + "integrity": "sha512-m6DrEJxVKjkELTVAztTLyS/7C92Y2b0VYqmDROYKLLALHn8T/04yPs70NADUYPrV3ruI+H3J0iUIuhkjp7vkfg==", "dev": true, "dependencies": { - "expect": "^29.6.1", - "jest-snapshot": "^29.6.1" + "expect": "^29.6.2", + "jest-snapshot": "^29.6.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.6.1.tgz", - "integrity": "sha512-o319vIf5pEMx0LmzSxxkYYxo4wrRLKHq9dP1yJU7FoPTB0LfAKSz8SWD6D/6U3v/O52t9cF5t+MeJiRsfk7zMw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.6.2.tgz", + "integrity": "sha512-6zIhM8go3RV2IG4aIZaZbxwpOzz3ZiM23oxAlkquOIole+G6TrbeXnykxWYlqF7kz2HlBjdKtca20x9atkEQYg==", "dev": true, "dependencies": { "jest-get-type": "^29.4.3" @@ -2402,47 +2379,47 @@ } }, "node_modules/@jest/fake-timers": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.6.1.tgz", - "integrity": "sha512-RdgHgbXyosCDMVYmj7lLpUwXA4c69vcNzhrt69dJJdf8azUrpRh3ckFCaTPNjsEeRi27Cig0oKDGxy5j7hOgHg==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.6.2.tgz", + "integrity": "sha512-euZDmIlWjm1Z0lJ1D0f7a0/y5Kh/koLFMUBE5SUYWrmy8oNhJpbTBDAP6CxKnadcMLDoDf4waRYCe35cH6G6PA==", "dev": true, "dependencies": { "@jest/types": "^29.6.1", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.6.1", - "jest-mock": "^29.6.1", - "jest-util": "^29.6.1" + "jest-message-util": "^29.6.2", + "jest-mock": "^29.6.2", + "jest-util": "^29.6.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/globals": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.6.1.tgz", - "integrity": "sha512-2VjpaGy78JY9n9370H8zGRCFbYVWwjY6RdDMhoJHa1sYfwe6XM/azGN0SjY8kk7BOZApIejQ1BFPyH7FPG0w3A==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.6.2.tgz", + "integrity": "sha512-cjuJmNDjs6aMijCmSa1g2TNG4Lby/AeU7/02VtpW+SLcZXzOLK2GpN2nLqcFjmhy3B3AoPeQVx7BnyOf681bAw==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.1", - "@jest/expect": "^29.6.1", + "@jest/environment": "^29.6.2", + "@jest/expect": "^29.6.2", "@jest/types": "^29.6.1", - "jest-mock": "^29.6.1" + "jest-mock": "^29.6.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/reporters": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.6.1.tgz", - "integrity": "sha512-9zuaI9QKr9JnoZtFQlw4GREQbxgmNYXU6QuWtmuODvk5nvPUeBYapVR/VYMyi2WSx3jXTLJTJji8rN6+Cm4+FA==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.6.2.tgz", + "integrity": "sha512-sWtijrvIav8LgfJZlrGCdN0nP2EWbakglJY49J1Y5QihcQLfy7ovyxxjJBRXMNltgt4uPtEcFmIMbVshEDfFWw==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.6.1", - "@jest/test-result": "^29.6.1", - "@jest/transform": "^29.6.1", + "@jest/console": "^29.6.2", + "@jest/test-result": "^29.6.2", + "@jest/transform": "^29.6.2", "@jest/types": "^29.6.1", "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", @@ -2456,9 +2433,9 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.6.1", - "jest-util": "^29.6.1", - "jest-worker": "^29.6.1", + "jest-message-util": "^29.6.2", + "jest-util": "^29.6.2", + "jest-worker": "^29.6.2", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -2503,12 +2480,12 @@ } }, "node_modules/@jest/test-result": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.6.1.tgz", - "integrity": "sha512-Ynr13ZRcpX6INak0TPUukU8GWRfm/vAytE3JbJNGAvINySWYdfE7dGZMbk36oVuK4CigpbhMn8eg1dixZ7ZJOw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.6.2.tgz", + "integrity": "sha512-3VKFXzcV42EYhMCsJQURptSqnyjqCGbtLuX5Xxb6Pm6gUf1wIRIl+mandIRGJyWKgNKYF9cnstti6Ls5ekduqw==", "dev": true, "dependencies": { - "@jest/console": "^29.6.1", + "@jest/console": "^29.6.2", "@jest/types": "^29.6.1", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" @@ -2518,14 +2495,14 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.6.1.tgz", - "integrity": "sha512-oBkC36PCDf/wb6dWeQIhaviU0l5u6VCsXa119yqdUosYAt7/FbQU2M2UoziO3igj/HBDEgp57ONQ3fm0v9uyyg==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.6.2.tgz", + "integrity": "sha512-GVYi6PfPwVejO7slw6IDO0qKVum5jtrJ3KoLGbgBWyr2qr4GaxFV6su+ZAjdTX75Sr1DkMFRk09r2ZVa+wtCGw==", "dev": true, "dependencies": { - "@jest/test-result": "^29.6.1", + "@jest/test-result": "^29.6.2", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.1", + "jest-haste-map": "^29.6.2", "slash": "^3.0.0" }, "engines": { @@ -2533,9 +2510,9 @@ } }, "node_modules/@jest/transform": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.6.1.tgz", - "integrity": "sha512-URnTneIU3ZjRSaf906cvf6Hpox3hIeJXRnz3VDSw5/X93gR8ycdfSIEy19FlVx8NFmpN7fe3Gb1xF+NjXaQLWg==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.6.2.tgz", + "integrity": "sha512-ZqCqEISr58Ce3U+buNFJYUktLJZOggfyvR+bZMaiV1e8B1SIvJbwZMrYz3gx/KAPn9EXmOmN+uB08yLCjWkQQg==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", @@ -2546,9 +2523,9 @@ "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.1", + "jest-haste-map": "^29.6.2", "jest-regex-util": "^29.4.3", - "jest-util": "^29.6.1", + "jest-util": "^29.6.2", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -2667,15 +2644,6 @@ "eslint-scope": "5.1.1" } }, - "node_modules/@nicolo-ribaudo/semver-v6": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", - "integrity": "sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2813,12 +2781,12 @@ } }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", - "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", "dev": true, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -2861,12 +2829,12 @@ } }, "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", - "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", "dev": true, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -2877,12 +2845,12 @@ } }, "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", - "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", "dev": true, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -2893,12 +2861,12 @@ } }, "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", - "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", "dev": true, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -2909,12 +2877,12 @@ } }, "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", - "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", "dev": true, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -2925,9 +2893,9 @@ } }, "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", - "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", "dev": true, "engines": { "node": ">=12" @@ -2941,22 +2909,22 @@ } }, "node_modules/@svgr/babel-preset": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", - "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", "dev": true, "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", - "@svgr/babel-plugin-remove-jsx-attribute": "*", - "@svgr/babel-plugin-remove-jsx-empty-expression": "*", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", - "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", - "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", - "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", - "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -2967,36 +2935,72 @@ } }, "node_modules/@svgr/core": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", - "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "dev": true, "dependencies": { - "@babel/core": "^7.19.6", - "@svgr/babel-preset": "^6.5.1", - "@svgr/plugin-jsx": "^6.5.1", + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.1" + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" } }, + "node_modules/@svgr/core/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@svgr/core/node_modules/cosmiconfig": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", + "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "dev": true, + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/@svgr/core/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", - "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", "dev": true, "dependencies": { - "@babel/types": "^7.20.0", + "@babel/types": "^7.21.3", "entities": "^4.4.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3004,39 +3008,39 @@ } }, "node_modules/@svgr/plugin-jsx": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", - "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", "dev": true, "dependencies": { - "@babel/core": "^7.19.6", - "@svgr/babel-preset": "^6.5.1", - "@svgr/hast-util-to-babel-ast": "^6.5.1", + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", "svg-parser": "^2.0.4" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { - "@svgr/core": "^6.0.0" + "@svgr/core": "*" } }, "node_modules/@svgr/plugin-svgo": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", - "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", "dev": true, "dependencies": { - "cosmiconfig": "^7.0.1", - "deepmerge": "^4.2.2", - "svgo": "^2.8.0" + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3046,23 +3050,59 @@ "@svgr/core": "*" } }, + "node_modules/@svgr/plugin-svgo/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@svgr/plugin-svgo/node_modules/cosmiconfig": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", + "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "dev": true, + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/@svgr/plugin-svgo/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/@svgr/webpack": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.1.tgz", - "integrity": "sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", "dev": true, "dependencies": { - "@babel/core": "^7.19.6", - "@babel/plugin-transform-react-constant-elements": "^7.18.12", - "@babel/preset-env": "^7.19.4", + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.18.6", - "@svgr/core": "^6.5.1", - "@svgr/plugin-jsx": "^6.5.1", - "@svgr/plugin-svgo": "^6.5.1" + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3336,12 +3376,6 @@ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "dev": true - }, "node_modules/@types/prop-types": { "version": "15.7.5", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", @@ -3361,9 +3395,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.2.14", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.14.tgz", - "integrity": "sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g==", + "version": "18.2.20", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.20.tgz", + "integrity": "sha512-WKNtmsLWJM/3D5mG4U84cysVY31ivmyw85dE84fOCk5Hx78wezB/XEjVPWl2JTZ5FkEeaTJf+VgUAUn3PE7Isw==", "dev": true, "dependencies": { "@types/prop-types": "*", @@ -3372,9 +3406,9 @@ } }, "node_modules/@types/react-dom": { - "version": "18.2.6", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.6.tgz", - "integrity": "sha512-2et4PDvg6PVCyS7fuTc4gPoksV58bW0RwSxWKcPRcHZf0PRUGq03TKcD/rUHe3azfV6/5/biUBJw+HhCQjaP0A==", + "version": "18.2.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.7.tgz", + "integrity": "sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==", "dev": true, "dependencies": { "@types/react": "*" @@ -3834,9 +3868,9 @@ } }, "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4115,9 +4149,9 @@ } }, "node_modules/@wordpress/babel-plugin-import-jsx-pragma": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-4.20.0.tgz", - "integrity": "sha512-vJAlUVFjyg+l+SiB8C5T1AWYsXDXZFpIITP5WfXAh4+6DG7R3JE+yUugHM3WLmPzCU57/mUfhyouq8blvsMk7A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-4.23.0.tgz", + "integrity": "sha512-DeHoDuS+KKxfGaBWXxMJP4uKqrfGGRKMTBRchUPTvqBScPvgrr2IYDZIP6vp6Q9uUV5fnIUcniXLGIMuzsrcdw==", "dev": true, "engines": { "node": ">=14" @@ -4127,9 +4161,9 @@ } }, "node_modules/@wordpress/babel-preset-default": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-7.21.0.tgz", - "integrity": "sha512-5y9aNNEvw16Zz7b3K4OvfFPProxyQEbAK+cS252f7e3qQska5H1S1tVfR5ZCns8X3Aoccc8/odR8safj8zhILA==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-7.24.0.tgz", + "integrity": "sha512-0iiawRHVBObVBROrhF8xXHreo7Ns7K6K7SyrZGmzbgTmhHhmWqxca3oWrMR9LQNCg4jZL8PNAZKRNoWD66/G+A==", "dev": true, "dependencies": { "@babel/core": "^7.16.0", @@ -4138,36 +4172,36 @@ "@babel/preset-env": "^7.16.0", "@babel/preset-typescript": "^7.16.0", "@babel/runtime": "^7.16.0", - "@wordpress/babel-plugin-import-jsx-pragma": "^4.20.0", - "@wordpress/browserslist-config": "^5.20.0", - "@wordpress/element": "^5.14.0", - "@wordpress/warning": "^2.37.0", - "browserslist": "^4.17.6", - "core-js": "^3.19.1" + "@wordpress/babel-plugin-import-jsx-pragma": "^4.23.0", + "@wordpress/browserslist-config": "^5.23.0", + "@wordpress/element": "^5.17.0", + "@wordpress/warning": "^2.40.0", + "browserslist": "^4.21.9", + "core-js": "^3.31.0" }, "engines": { "node": ">=14" } }, "node_modules/@wordpress/base-styles": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-4.28.0.tgz", - "integrity": "sha512-ibg63Pc0oS2WGoW72bdRDSrbbJZ4i2OcOPXb135gdvT1P89sGQK/hGFHqPyaRzi4yI+sUuyFDEwlsvOIBfh12w==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-4.31.0.tgz", + "integrity": "sha512-DoxvmbRYykKFyvTfGVXqM8zu+V73pcFRq/AfmzJqJsA+fEKVUKS8Oc+DctGWNXKuw5bOyU/fhz15eVTKPsT3lg==", "dev": true }, "node_modules/@wordpress/browserslist-config": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.20.0.tgz", - "integrity": "sha512-lPkYEArqFjSFESnY4+f0lxqq7hLNcBhVuNxiHXv+i9yo3s5bhzrkfehoWEPEAmyq70/W2MMCJp8y6f0hGKBbaQ==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.23.0.tgz", + "integrity": "sha512-eLnwHp6G3jv9g3aCF3nU0W0fL0WvetjrLrlRSPWLt/EPfTTtkzpgx8NCuckNrcSCZxT867g1bFzaR77D3nk2Zw==", "dev": true, "engines": { "node": ">=14" } }, "node_modules/@wordpress/dependency-extraction-webpack-plugin": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-4.20.0.tgz", - "integrity": "sha512-YeQZGRHN7VFQWWzqznsackW3OC3SVEcRU03Ore9RWA58d4QuYCsnLq2YLrZDqEgJDnh9mO7b7Ac4SrZADkmhnA==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-4.23.0.tgz", + "integrity": "sha512-TG9sTu0CVOjFAQMpLk9DR86z892G7Of5jii9KvoLlEDc9RRzHHq4bgDFPrI135Xay/jxb0+3YVDwRlcMPYa2Kg==", "dev": true, "dependencies": { "json2php": "^0.0.7", @@ -4181,15 +4215,15 @@ } }, "node_modules/@wordpress/element": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.14.0.tgz", - "integrity": "sha512-W2lBumRvJ3UvB1qZaWAp268xvirZEzFwyS/epLUPIPOnIW4u7UBfEmEbhPx55KSuTFHSR/hbiYSuWBdbVpd8tA==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.17.0.tgz", + "integrity": "sha512-sVjVWlKnpzTM4kfwfTgT9TtCcqqb3MqII9cLzM3DCVDFIUrudEUlbqX9lUCnnSfWCjoQ/YPaWg4LikKrRVmPQw==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", "@types/react": "^18.0.21", "@types/react-dom": "^18.0.6", - "@wordpress/escape-html": "^2.37.0", + "@wordpress/escape-html": "^2.40.0", "change-case": "^4.1.2", "is-plain-object": "^5.0.0", "react": "^18.2.0", @@ -4200,9 +4234,9 @@ } }, "node_modules/@wordpress/escape-html": { - "version": "2.37.0", - "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-2.37.0.tgz", - "integrity": "sha512-YJZAsZIWLx+RMs2TyxqqR1w7oXbedE/zrtBJh5/Gbt0UIP64/gQOgoRaEX3EhPOFd7lGWzWr/vH0tgLVGm2jJg==", + "version": "2.40.0", + "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-2.40.0.tgz", + "integrity": "sha512-hWbtydaYHud/qbXauCNR1h5pfmXJQwzdKfdQUMqEjms2sqm2nQQXGxi/t8CLc2HjrNenzHqOZaonfQ/nx+1l1A==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0" @@ -4212,21 +4246,21 @@ } }, "node_modules/@wordpress/eslint-plugin": { - "version": "14.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-14.10.0.tgz", - "integrity": "sha512-Z+VYxrYJrORcsEmQeoN39Nf0CwqUbUj4kZ5z6zwI6bw1UTOf4hd9oDqeK2D6N8aHBVOIvGi2p7Dyameu7bbsZg==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-15.0.0.tgz", + "integrity": "sha512-XEHNW3YEjN+G8Di4Z8W0WL8m0y9uoBbw4MKmYV+u1whiEuS+s+D4nVmG/d+AH1tWJ17LzfZJTiSL6J09KCY4tg==", "dev": true, "dependencies": { "@babel/eslint-parser": "^7.16.0", - "@typescript-eslint/eslint-plugin": "^5.3.0", - "@typescript-eslint/parser": "^5.3.0", - "@wordpress/babel-preset-default": "^7.21.0", - "@wordpress/prettier-config": "^2.20.0", + "@typescript-eslint/eslint-plugin": "^5.62.0", + "@typescript-eslint/parser": "^5.62.0", + "@wordpress/babel-preset-default": "^7.24.0", + "@wordpress/prettier-config": "^2.23.0", "cosmiconfig": "^7.0.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-import": "^2.25.2", "eslint-plugin-jest": "^27.2.1", - "eslint-plugin-jsdoc": "^39.6.9", + "eslint-plugin-jsdoc": "^46.4.6", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-prettier": "^3.3.0", "eslint-plugin-react": "^7.27.0", @@ -4254,9 +4288,9 @@ } }, "node_modules/@wordpress/eslint-plugin/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -4281,9 +4315,9 @@ } }, "node_modules/@wordpress/jest-console": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-7.8.0.tgz", - "integrity": "sha512-4yFxec0SXLmkZL+Y8TlhWwHzN+ux3d5PvCNrTMNcjpbOZkmBDFM165wXkcJsDbWT0BS6M7pJ0+BTnu8PTn7F3A==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-7.11.0.tgz", + "integrity": "sha512-WS/bEuVrLliW4BeITJpvbO7KjrVqNfdTAgeOxymvyUYCGVAGr3ANX9ONqzy3Pfs4F+cP+YWonb9yBaU26GVgqg==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", @@ -4297,12 +4331,12 @@ } }, "node_modules/@wordpress/jest-preset-default": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-11.8.0.tgz", - "integrity": "sha512-nEwbApGOfOo855JYOmYULSIZ5oW960XZTZyeHe/9INDm9IqPsQVGTIT51w5HddZ8Zv/KFoJPZNH2Gmy0+QlCeA==", + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-11.11.0.tgz", + "integrity": "sha512-xGx6suet6iTyUAi+OsaUyVMi4AdhvwL8d7xkHYJ1Nvb8x5+T6krKwL+Pa9aQD7zhpNczsG5Bpt9vUMj4y7lStw==", "dev": true, "dependencies": { - "@wordpress/jest-console": "^7.8.0", + "@wordpress/jest-console": "^7.11.0", "babel-jest": "^29.5.0" }, "engines": { @@ -4314,24 +4348,24 @@ } }, "node_modules/@wordpress/npm-package-json-lint-config": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-4.22.0.tgz", - "integrity": "sha512-h00unYESqfZjUxeeDZQUKjTroWMZE1EmQhGq7HzH+Rf2/WaPb5WRRV5s4uf3wSGcYYImycqozlZRB0XaXG2LyQ==", + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-4.25.0.tgz", + "integrity": "sha512-cOGW1RDIpJgbh8XnSBBaY08QKUctIdm0ov6P+4/WuuodzbKndH+L2znHWSuS2+ZCnJ2GiUfFyyZTDgtdw5+ebQ==", "dev": true, "engines": { "node": ">=14" }, "peerDependencies": { - "npm-package-json-lint": ">=3.6.0" + "npm-package-json-lint": ">=6.0.0" } }, "node_modules/@wordpress/postcss-plugins-preset": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-4.21.0.tgz", - "integrity": "sha512-PDlbh4zO1X4MGT8yGEvtlhgywQHxyAf/heYnKVye+uaUEAqh85lspcca3P1I/qMH2FFw/VwS8w5C4FjFoN2eJA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-4.24.0.tgz", + "integrity": "sha512-byCYxLDO3lFIKLtRZsuvYeGfQIKyMbXKFWE9PF/p2bHScDN6mHx/QJHZAvoU2Enm+UjXrf51hFgukBqYDOhxdg==", "dev": true, "dependencies": { - "@wordpress/base-styles": "^4.28.0", + "@wordpress/base-styles": "^4.31.0", "autoprefixer": "^10.2.5" }, "engines": { @@ -4342,9 +4376,9 @@ } }, "node_modules/@wordpress/prettier-config": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-2.20.0.tgz", - "integrity": "sha512-YBGCqFmnxSZH50nBsa2LPPrzhX/OW8LpO2EcrLxnDk6Yen/+7fbbnmkC2IdYZ2+ty8bz2gs8Dcg48DTvLR6axQ==", + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-2.23.0.tgz", + "integrity": "sha512-OgShlK5TyaFFPyXq/pezgio98pbPF4kepclbxPK5YNOGah5IVhDCvdTKgPsvokdYvMSElTWKS8arCghZpbSLxg==", "dev": true, "engines": { "node": ">=14" @@ -4354,34 +4388,34 @@ } }, "node_modules/@wordpress/scripts": { - "version": "26.8.0", - "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-26.8.0.tgz", - "integrity": "sha512-lRPAURQo0QZBJcqX7jF8wrhN3bkDvkflru/s4+BGDz3X8iWM1ANuX9OWgNIqiOz4ZfT5Yo2X00s9HAExmMOnQA==", + "version": "26.11.0", + "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-26.11.0.tgz", + "integrity": "sha512-MdSCAslDwpGA8ll1TAjKbU2VzzoNgFGr3fpLX8RBc+ie097pYX3xX+JyiSMw0GzESHafdzyQK0GgySi3gZGOtQ==", "dev": true, "dependencies": { "@babel/core": "^7.16.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.2", - "@svgr/webpack": "^6.2.1", - "@wordpress/babel-preset-default": "^7.21.0", - "@wordpress/browserslist-config": "^5.20.0", - "@wordpress/dependency-extraction-webpack-plugin": "^4.20.0", - "@wordpress/eslint-plugin": "^14.10.0", - "@wordpress/jest-preset-default": "^11.8.0", - "@wordpress/npm-package-json-lint-config": "^4.22.0", - "@wordpress/postcss-plugins-preset": "^4.21.0", - "@wordpress/prettier-config": "^2.20.0", - "@wordpress/stylelint-config": "^21.20.0", + "@svgr/webpack": "^8.0.1", + "@wordpress/babel-preset-default": "^7.24.0", + "@wordpress/browserslist-config": "^5.23.0", + "@wordpress/dependency-extraction-webpack-plugin": "^4.23.0", + "@wordpress/eslint-plugin": "^15.0.0", + "@wordpress/jest-preset-default": "^11.11.0", + "@wordpress/npm-package-json-lint-config": "^4.25.0", + "@wordpress/postcss-plugins-preset": "^4.24.0", + "@wordpress/prettier-config": "^2.23.0", + "@wordpress/stylelint-config": "^21.23.0", "adm-zip": "^0.5.9", "babel-jest": "^29.5.0", "babel-loader": "^8.2.3", - "browserslist": "^4.17.6", + "browserslist": "^4.21.9", "chalk": "^4.0.0", "check-node-version": "^4.1.0", "clean-webpack-plugin": "^3.0.0", "copy-webpack-plugin": "^10.2.0", "cross-spawn": "^5.1.0", "css-loader": "^6.2.0", - "cssnano": "^5.0.7", + "cssnano": "^6.0.1", "cwd": "^0.10.0", "dir-glob": "^3.0.1", "eslint": "^8.3.0", @@ -4396,7 +4430,7 @@ "merge-deep": "^3.0.3", "mini-css-extract-plugin": "^2.5.1", "minimist": "^1.2.0", - "npm-package-json-lint": "^5.0.0", + "npm-package-json-lint": "^6.4.0", "npm-packlist": "^3.0.0", "postcss": "^8.4.5", "postcss-loader": "^6.2.1", @@ -4429,9 +4463,9 @@ } }, "node_modules/@wordpress/stylelint-config": { - "version": "21.20.0", - "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-21.20.0.tgz", - "integrity": "sha512-sXVu9rFjiNGbha9yz0tTmv4u5XWmSNPJh4sVo0TU4Ipkt1emaE7ybpAfUrpGnCmOXtZFR31LJH5/DInk0tbBNw==", + "version": "21.23.0", + "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-21.23.0.tgz", + "integrity": "sha512-bKSNvO3Mv5ggr8bqIDc16ddWI+kIsvV5E/DV/yI/hx2srNP7DHLOJ5dwkXPGqKlpyZ637kAwhu/mFCONWVkrvA==", "dev": true, "dependencies": { "stylelint-config-recommended": "^6.0.0", @@ -4445,9 +4479,9 @@ } }, "node_modules/@wordpress/warning": { - "version": "2.37.0", - "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.37.0.tgz", - "integrity": "sha512-CjntU9j/GUPzDDJlsr7SpKT1dXlfW94D1s7ZBuAGcKeNnqXQ/INBk6FsKvbCdSPA0BS8CpEqToedkF+pmt5DSQ==", + "version": "2.40.0", + "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.40.0.tgz", + "integrity": "sha512-y/XdIq38m8gyotK7t8/n14VDccN9IQ9FihiUlhP3Dk46kZd9w5kBqaStd3jux2ZXSWCim9fZ3KkH03a2rNCsaA==", "dev": true, "engines": { "node": ">=12" @@ -4691,6 +4725,15 @@ "node": ">= 8" } }, + "node_modules/are-docs-informative": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "dev": true, + "engines": { + "node": ">=14" + } + }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -4774,6 +4817,25 @@ "node": ">=0.10.0" } }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.2.tgz", + "integrity": "sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.flat": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -4823,6 +4885,26 @@ "get-intrinsic": "^1.1.3" } }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", + "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", @@ -4847,6 +4929,15 @@ "node": ">=8" } }, + "node_modules/asynciterator.prototype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", + "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + } + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -4854,9 +4945,9 @@ "dev": true }, "node_modules/autoprefixer": { - "version": "10.4.14", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", - "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "version": "10.4.15", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.15.tgz", + "integrity": "sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==", "dev": true, "funding": [ { @@ -4866,11 +4957,15 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001464", + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001520", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -4926,12 +5021,12 @@ } }, "node_modules/babel-jest": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.1.tgz", - "integrity": "sha512-qu+3bdPEQC6KZSPz+4Fyjbga5OODNcp49j6GKzG1EKbkfyJBxEYGVUmVGpwCSeGouG52R4EgYMLb6p9YeEEQ4A==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.2.tgz", + "integrity": "sha512-BYCzImLos6J3BH/+HvUCHG1dTf2MzmAB4jaVxHV+29RZLjR29XuYTmsf2sdDwkrb+FczkGo3kOhE7ga6sI0P4A==", "dev": true, "dependencies": { - "@jest/transform": "^29.6.1", + "@jest/transform": "^29.6.2", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", "babel-preset-jest": "^29.5.0", @@ -5015,42 +5110,42 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.4.tgz", - "integrity": "sha512-9WeK9snM1BfxB38goUEv2FLnA6ja07UMfazFHzCXUb3NyDZAwfXvQiURQ6guTTMeHcOsdknULm1PDhs4uWtKyA==", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", + "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", "dev": true, "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.1", - "@nicolo-ribaudo/semver-v6": "^6.3.3" + "@babel/helper-define-polyfill-provider": "^0.4.2", + "semver": "^6.3.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.2.tgz", - "integrity": "sha512-Cid+Jv1BrY9ReW9lIfNlNpsI53N+FN7gE+f73zLAUbr9C52W4gKLWSByx47pfDJsEysojKArqOtOKZSVIIUTuQ==", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", + "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.1", + "@babel/helper-define-polyfill-provider": "^0.4.2", "core-js-compat": "^3.31.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.1.tgz", - "integrity": "sha512-L8OyySuI6OSQ5hFy9O+7zFjyr4WhAfRjLIOkhQGYl+emwJkd/S4XXT1JpfrgR1jrQ1NcGiOh+yAdGlF8pnC3Jw==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", + "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.1" + "@babel/helper-define-polyfill-provider": "^0.4.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-preset-current-node-syntax": { @@ -5260,9 +5355,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "version": "4.21.10", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", + "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", "dev": true, "funding": [ { @@ -5279,9 +5374,9 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", + "caniuse-lite": "^1.0.30001517", + "electron-to-chromium": "^1.4.477", + "node-releases": "^2.0.13", "update-browserslist-db": "^1.0.11" }, "bin": { @@ -5339,31 +5434,85 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "semver": "^7.0.0" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "node_modules/builtins/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/builtins/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/builtins/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "engines": { @@ -5431,9 +5580,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001506", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001506.tgz", - "integrity": "sha512-6XNEcpygZMCKaufIcgpQNZNf00GEqc7VQON+9Rd0K1bMYo8xhMZRAo5zpbnbMNizi4YNgIDAFrdykWsvY3H4Hw==", + "version": "1.0.30001521", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001521.tgz", + "integrity": "sha512-fnx1grfpEOvDGH+V17eccmNjucGUnCbP6KL+l5KqBIerp26WK/+RQ7CIDE37KGJjaPyqWXXlFUyKiWmvdNNKmQ==", "dev": true, "funding": [ { @@ -5778,9 +5927,9 @@ } }, "node_modules/comment-parser": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", - "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.0.tgz", + "integrity": "sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==", "dev": true, "engines": { "node": ">= 12.0.0" @@ -6064,9 +6213,9 @@ } }, "node_modules/core-js": { - "version": "3.31.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.31.1.tgz", - "integrity": "sha512-2sKLtfq1eFST7l7v62zaqXacPc7uG8ZAya8ogijLhTtaKNcpzpB4TMoTw2Si+8GYKRwFPMMtUT0263QFWFfqyQ==", + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.32.0.tgz", + "integrity": "sha512-rd4rYZNlF3WuoYuRIDEmbR/ga9CeuWX9U05umAvgrrZoHY4Z++cp/xwPQMvUpBB4Ag6J8KfD80G0zwCyaSxDww==", "dev": true, "hasInstallScript": true, "funding": { @@ -6075,12 +6224,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.31.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.0.tgz", - "integrity": "sha512-hM7YCu1cU6Opx7MXNu0NuumM0ezNeAeRKadixyiQELWY3vT3De9S4J5ZBMraWV2vZnrE1Cirl0GtFtDtMUXzPw==", + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.0.tgz", + "integrity": "sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw==", "dev": true, "dependencies": { - "browserslist": "^4.21.5" + "browserslist": "^4.21.9" }, "funding": { "type": "opencollective", @@ -6157,9 +6306,9 @@ "dev": true }, "node_modules/css-declaration-sorter": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz", - "integrity": "sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", "dev": true, "engines": { "node": "^10 || ^12 || >=14" @@ -6237,15 +6386,15 @@ "dev": true }, "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, "dependencies": { "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", "nth-check": "^2.0.1" }, "funding": { @@ -6253,25 +6402,16 @@ } }, "node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", "dev": true, "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, "node_modules/css-what": { @@ -6299,17 +6439,16 @@ } }, "node_modules/cssnano": { - "version": "5.1.15", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", - "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.1.tgz", + "integrity": "sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==", "dev": true, "dependencies": { - "cssnano-preset-default": "^5.2.14", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" + "cssnano-preset-default": "^6.0.1", + "lilconfig": "^2.1.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "funding": { "type": "opencollective", @@ -6320,72 +6459,93 @@ } }, "node_modules/cssnano-preset-default": { - "version": "5.2.14", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", - "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.1.tgz", + "integrity": "sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==", "dev": true, "dependencies": { "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.1", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.4", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.2", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" + "cssnano-utils": "^4.0.0", + "postcss-calc": "^9.0.0", + "postcss-colormin": "^6.0.0", + "postcss-convert-values": "^6.0.0", + "postcss-discard-comments": "^6.0.0", + "postcss-discard-duplicates": "^6.0.0", + "postcss-discard-empty": "^6.0.0", + "postcss-discard-overridden": "^6.0.0", + "postcss-merge-longhand": "^6.0.0", + "postcss-merge-rules": "^6.0.1", + "postcss-minify-font-values": "^6.0.0", + "postcss-minify-gradients": "^6.0.0", + "postcss-minify-params": "^6.0.0", + "postcss-minify-selectors": "^6.0.0", + "postcss-normalize-charset": "^6.0.0", + "postcss-normalize-display-values": "^6.0.0", + "postcss-normalize-positions": "^6.0.0", + "postcss-normalize-repeat-style": "^6.0.0", + "postcss-normalize-string": "^6.0.0", + "postcss-normalize-timing-functions": "^6.0.0", + "postcss-normalize-unicode": "^6.0.0", + "postcss-normalize-url": "^6.0.0", + "postcss-normalize-whitespace": "^6.0.0", + "postcss-ordered-values": "^6.0.0", + "postcss-reduce-initial": "^6.0.0", + "postcss-reduce-transforms": "^6.0.0", + "postcss-svgo": "^6.0.0", + "postcss-unique-selectors": "^6.0.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.0.tgz", + "integrity": "sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==", "dev": true, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", "dev": true, "dependencies": { - "css-tree": "^1.1.2" + "css-tree": "~2.2.0" }, "engines": { - "node": ">=8.0.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" } }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true + }, "node_modules/cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", @@ -6519,10 +6679,18 @@ "dev": true }, "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } }, "node_modules/deep-extend": { "version": "0.6.0", @@ -6750,28 +6918,19 @@ } }, "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" }, "funding": { "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/dom-serializer/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", @@ -6797,12 +6956,12 @@ } }, "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, "dependencies": { - "domelementtype": "^2.2.0" + "domelementtype": "^2.3.0" }, "engines": { "node": ">= 4" @@ -6812,14 +6971,14 @@ } }, "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dev": true, "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" }, "funding": { "url": "https://github.com/fb55/domutils?sponsor=1" @@ -6848,9 +7007,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.439", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.439.tgz", - "integrity": "sha512-BHpErPSNhb9FB25+OwQP6mCAf3ZXfGbmuvc4LzBNVJwpCcXQJm++LerimocYRG9FRxUVRKZqaB7d0+pImSTPSg==", + "version": "1.4.494", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.494.tgz", + "integrity": "sha512-KF7wtsFFDu4ws1ZsSOt4pdmO1yWVNWCFtijVYZPUeW4SV7/hy/AESjLn/+qIWgq7mHscNOKAwN5AIM1+YAy+Ww==", "dev": true }, "node_modules/emittery": { @@ -6967,18 +7126,19 @@ } }, "node_modules/es-abstract": { - "version": "1.21.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", - "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", + "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.1", "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", + "get-intrinsic": "^1.2.1", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", @@ -6998,14 +7158,18 @@ "object-inspect": "^1.12.3", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.5.0", + "safe-array-concat": "^1.0.0", "safe-regex-test": "^1.0.0", "string.prototype.trim": "^1.2.7", "string.prototype.trimend": "^1.0.6", "string.prototype.trimstart": "^1.0.6", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "which-typed-array": "^1.1.10" }, "engines": { "node": ">= 0.4" @@ -7014,6 +7178,28 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-iterator-helpers": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.13.tgz", + "integrity": "sha512-LK3VGwzvaPWobO8xzXXGRUOGw8Dcjyfk62CsY/wfHN75CwsJPbuypOYJxK6g5RyEL8YDjIWcl6jgd8foO6mmrA==", + "dev": true, + "dependencies": { + "asynciterator.prototype": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.21.3", + "es-set-tostringtag": "^2.0.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "iterator.prototype": "^1.1.0", + "safe-array-concat": "^1.0.0" + } + }, "node_modules/es-module-lexer": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", @@ -7171,27 +7357,27 @@ } }, "node_modules/eslint": { - "version": "8.44.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.44.0.tgz", - "integrity": "sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.47.0.tgz", + "integrity": "sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.1.0", - "@eslint/js": "8.44.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "^8.47.0", "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.6.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -7201,7 +7387,6 @@ "globals": "^13.19.0", "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", @@ -7213,7 +7398,6 @@ "natural-compare": "^1.4.0", "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -7227,9 +7411,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", - "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -7239,14 +7423,14 @@ } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, "dependencies": { "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -7258,6 +7442,23 @@ "ms": "^2.1.1" } }, + "node_modules/eslint-import-resolver-node/node_modules/resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/eslint-module-utils": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", @@ -7285,26 +7486,29 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.0.tgz", + "integrity": "sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q==", "dev": true, "dependencies": { "array-includes": "^3.1.6", + "array.prototype.findlastindex": "^1.2.2", "array.prototype.flat": "^1.3.1", "array.prototype.flatmap": "^1.3.1", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", + "eslint-module-utils": "^2.8.0", "has": "^1.0.3", - "is-core-module": "^2.11.0", + "is-core-module": "^2.12.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", + "object.fromentries": "^2.0.6", + "object.groupby": "^1.0.0", "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" + "resolve": "^1.22.3", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" }, "engines": { "node": ">=4" @@ -7334,10 +7538,27 @@ "node": ">=0.10.0" } }, + "node_modules/eslint-plugin-import/node_modules/resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/eslint-plugin-jest": { - "version": "27.2.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.2.2.tgz", - "integrity": "sha512-euzbp06F934Z7UDl5ZUaRPLAc9MKjh0rMPERrHT7UhlCEwgb25kBj37TvMgWeHZVkR5I9CayswrpoaqZU1RImw==", + "version": "27.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.2.3.tgz", + "integrity": "sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==", "dev": true, "dependencies": { "@typescript-eslint/utils": "^5.10.0" @@ -7346,7 +7567,7 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^5.0.0", + "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0", "eslint": "^7.0.0 || ^8.0.0", "jest": "*" }, @@ -7360,21 +7581,23 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "39.9.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.9.1.tgz", - "integrity": "sha512-Rq2QY6BZP2meNIs48aZ3GlIlJgBqFCmR55+UBvaDkA3ZNQ0SvQXOs2QKkubakEijV8UbIVbVZKsOVN8G3MuqZw==", + "version": "46.4.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.4.6.tgz", + "integrity": "sha512-z4SWYnJfOqftZI+b3RM9AtWL1vF/sLWE/LlO9yOKDof9yN2+n3zOdOJTGX/pRE/xnPsooOLG2Rq6e4d+XW3lNw==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.36.1", - "comment-parser": "1.3.1", + "@es-joy/jsdoccomment": "~0.40.1", + "are-docs-informative": "^0.0.2", + "comment-parser": "1.4.0", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", - "esquery": "^1.4.0", - "semver": "^7.3.8", + "esquery": "^1.5.0", + "is-builtin-module": "^3.2.1", + "semver": "^7.5.4", "spdx-expression-parse": "^3.0.1" }, "engines": { - "node": "^14 || ^16 || ^17 || ^18 || ^19" + "node": ">=16" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0" @@ -7465,15 +7688,16 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.32.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", - "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", + "version": "7.33.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", + "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", "dev": true, "dependencies": { "array-includes": "^3.1.6", "array.prototype.flatmap": "^1.3.1", "array.prototype.tosorted": "^1.1.1", "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.12", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", @@ -7483,7 +7707,7 @@ "object.values": "^1.1.6", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.4", - "semver": "^6.3.0", + "semver": "^6.3.1", "string.prototype.matchall": "^4.0.8" }, "engines": { @@ -7586,9 +7810,9 @@ } }, "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -7602,9 +7826,9 @@ } }, "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -7614,9 +7838,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -7689,9 +7913,9 @@ } }, "node_modules/espree": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.0.tgz", - "integrity": "sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { "acorn": "^8.9.0", @@ -7706,9 +7930,9 @@ } }, "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -7891,17 +8115,17 @@ } }, "node_modules/expect": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.6.1.tgz", - "integrity": "sha512-XEdDLonERCU1n9uR56/Stx9OqojaLAQtZf9PrCHH9Hl8YXiEIka3H4NXJ3NOIBmQJTg7+j7buh34PMHfJujc8g==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.6.2.tgz", + "integrity": "sha512-iAErsLxJ8C+S02QbLAwgSGSezLQK+XXRDt8IuFXFpwCNw2ECmzZSmjKcCaFVp5VRMk+WAvz6h6jokzEzBFZEuA==", "dev": true, "dependencies": { - "@jest/expect-utils": "^29.6.1", + "@jest/expect-utils": "^29.6.2", "@types/node": "*", "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.6.1", - "jest-message-util": "^29.6.1", - "jest-util": "^29.6.1" + "jest-matcher-utils": "^29.6.2", + "jest-message-util": "^29.6.2", + "jest-util": "^29.6.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -8860,9 +9084,33 @@ } }, "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/hpack.js": { @@ -9293,6 +9541,21 @@ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -9339,6 +9602,21 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -9352,9 +9630,9 @@ } }, "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -9411,6 +9689,18 @@ "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -9429,6 +9719,21 @@ "node": ">=6" } }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -9441,6 +9746,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -9562,6 +9876,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", @@ -9617,16 +9940,12 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -9647,6 +9966,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -9659,6 +9987,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-what": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", @@ -9733,19 +10074,67 @@ } }, "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "dependencies": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "make-dir": "^4.0.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/istanbul-lib-report/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", @@ -9770,9 +10159,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -9782,6 +10171,19 @@ "node": ">=8" } }, + "node_modules/iterator.prototype": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.0.tgz", + "integrity": "sha512-rjuhAk1AJ1fssphHD0IFV6TWL40CwRZ53FrztKx43yk2v6rguBYsY4Bj1VU4HmoMmKwZUlx7mfnhDf9cOp4YTw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.4", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "has-tostringtag": "^1.0.0", + "reflect.getprototypeof": "^1.0.3" + } + }, "node_modules/jed": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/jed/-/jed-1.1.1.tgz", @@ -9789,15 +10191,15 @@ "dev": true }, "node_modules/jest": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.6.1.tgz", - "integrity": "sha512-Nirw5B4nn69rVUZtemCQhwxOBhm0nsp3hmtF4rzCeWD7BkjAXRIji7xWQfnTNbz9g0aVsBX6aZK3n+23LM6uDw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.6.2.tgz", + "integrity": "sha512-8eQg2mqFbaP7CwfsTpCxQ+sHzw1WuNWL5UUvjnWP4hx2riGz9fPSzYOaU5q8/GqWn1TfgZIVTqYJygbGbWAANg==", "dev": true, "dependencies": { - "@jest/core": "^29.6.1", + "@jest/core": "^29.6.2", "@jest/types": "^29.6.1", "import-local": "^3.0.2", - "jest-cli": "^29.6.1" + "jest-cli": "^29.6.2" }, "bin": { "jest": "bin/jest.js" @@ -9828,28 +10230,28 @@ } }, "node_modules/jest-circus": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.6.1.tgz", - "integrity": "sha512-tPbYLEiBU4MYAL2XoZme/bgfUeotpDBd81lgHLCbDZZFaGmECk0b+/xejPFtmiBP87GgP/y4jplcRpbH+fgCzQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.6.2.tgz", + "integrity": "sha512-G9mN+KOYIUe2sB9kpJkO9Bk18J4dTDArNFPwoZ7WKHKel55eKIS/u2bLthxgojwlf9NLCVQfgzM/WsOVvoC6Fw==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.1", - "@jest/expect": "^29.6.1", - "@jest/test-result": "^29.6.1", + "@jest/environment": "^29.6.2", + "@jest/expect": "^29.6.2", + "@jest/test-result": "^29.6.2", "@jest/types": "^29.6.1", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "dedent": "^0.7.0", + "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.6.1", - "jest-matcher-utils": "^29.6.1", - "jest-message-util": "^29.6.1", - "jest-runtime": "^29.6.1", - "jest-snapshot": "^29.6.1", - "jest-util": "^29.6.1", + "jest-each": "^29.6.2", + "jest-matcher-utils": "^29.6.2", + "jest-message-util": "^29.6.2", + "jest-runtime": "^29.6.2", + "jest-snapshot": "^29.6.2", + "jest-util": "^29.6.2", "p-limit": "^3.1.0", - "pretty-format": "^29.6.1", + "pretty-format": "^29.6.2", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" @@ -9859,21 +10261,21 @@ } }, "node_modules/jest-cli": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.6.1.tgz", - "integrity": "sha512-607dSgTA4ODIN6go9w6xY3EYkyPFGicx51a69H7yfvt7lN53xNswEVLovq+E77VsTRi5fWprLH0yl4DJgE8Ing==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.6.2.tgz", + "integrity": "sha512-TT6O247v6dCEX2UGHGyflMpxhnrL0DNqP2fRTKYm3nJJpCTfXX3GCMQPGFjXDoj0i5/Blp3jriKXFgdfmbYB6Q==", "dev": true, "dependencies": { - "@jest/core": "^29.6.1", - "@jest/test-result": "^29.6.1", + "@jest/core": "^29.6.2", + "@jest/test-result": "^29.6.2", "@jest/types": "^29.6.1", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.6.1", - "jest-util": "^29.6.1", - "jest-validate": "^29.6.1", + "jest-config": "^29.6.2", + "jest-util": "^29.6.2", + "jest-validate": "^29.6.2", "prompts": "^2.0.1", "yargs": "^17.3.1" }, @@ -9893,31 +10295,31 @@ } }, "node_modules/jest-config": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.6.1.tgz", - "integrity": "sha512-XdjYV2fy2xYixUiV2Wc54t3Z4oxYPAELUzWnV6+mcbq0rh742X2p52pii5A3oeRzYjLnQxCsZmp0qpI6klE2cQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.6.2.tgz", + "integrity": "sha512-VxwFOC8gkiJbuodG9CPtMRjBUNZEHxwfQXmIudSTzFWxaci3Qub1ddTRbFNQlD/zUeaifLndh/eDccFX4wCMQw==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.6.1", + "@jest/test-sequencer": "^29.6.2", "@jest/types": "^29.6.1", - "babel-jest": "^29.6.1", + "babel-jest": "^29.6.2", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.6.1", - "jest-environment-node": "^29.6.1", + "jest-circus": "^29.6.2", + "jest-environment-node": "^29.6.2", "jest-get-type": "^29.4.3", "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.1", - "jest-runner": "^29.6.1", - "jest-util": "^29.6.1", - "jest-validate": "^29.6.1", + "jest-resolve": "^29.6.2", + "jest-runner": "^29.6.2", + "jest-util": "^29.6.2", + "jest-validate": "^29.6.2", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.6.1", + "pretty-format": "^29.6.2", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -9953,15 +10355,15 @@ } }, "node_modules/jest-diff": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.1.tgz", - "integrity": "sha512-FsNCvinvl8oVxpNLttNQX7FAq7vR+gMDGj90tiP7siWw1UdakWUGqrylpsYrpvj908IYckm5Y0Q7azNAozU1Kg==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.2.tgz", + "integrity": "sha512-t+ST7CB9GX5F2xKwhwCf0TAR17uNDiaPTZnVymP9lw0lssa9vG+AFyDZoeIHStU3WowFFwT+ky+er0WVl2yGhA==", "dev": true, "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.4.3", "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.1" + "pretty-format": "^29.6.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -9980,16 +10382,16 @@ } }, "node_modules/jest-each": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.6.1.tgz", - "integrity": "sha512-n5eoj5eiTHpKQCAVcNTT7DRqeUmJ01hsAL0Q1SMiBHcBcvTKDELixQOGMCpqhbIuTcfC4kMfSnpmDqRgRJcLNQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.6.2.tgz", + "integrity": "sha512-MsrsqA0Ia99cIpABBc3izS1ZYoYfhIy0NNWqPSE0YXbQjwchyt6B1HD2khzyPe1WiJA7hbxXy77ZoUQxn8UlSw==", "dev": true, "dependencies": { "@jest/types": "^29.6.1", "chalk": "^4.0.0", "jest-get-type": "^29.4.3", - "jest-util": "^29.6.1", - "pretty-format": "^29.6.1" + "jest-util": "^29.6.2", + "pretty-format": "^29.6.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -10023,17 +10425,17 @@ } }, "node_modules/jest-environment-node": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.6.1.tgz", - "integrity": "sha512-ZNIfAiE+foBog24W+2caIldl4Irh8Lx1PUhg/GZ0odM1d/h2qORAsejiFc7zb+SEmYPn1yDZzEDSU5PmDkmVLQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.6.2.tgz", + "integrity": "sha512-YGdFeZ3T9a+/612c5mTQIllvWkddPbYcN2v95ZH24oWMbGA4GGS2XdIF92QMhUhvrjjuQWYgUGW2zawOyH63MQ==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.1", - "@jest/fake-timers": "^29.6.1", + "@jest/environment": "^29.6.2", + "@jest/fake-timers": "^29.6.2", "@jest/types": "^29.6.1", "@types/node": "*", - "jest-mock": "^29.6.1", - "jest-util": "^29.6.1" + "jest-mock": "^29.6.2", + "jest-util": "^29.6.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -10049,9 +10451,9 @@ } }, "node_modules/jest-haste-map": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.6.1.tgz", - "integrity": "sha512-0m7f9PZXxOCk1gRACiVgX85knUKPKLPg4oRCjLoqIm9brTHXaorMA0JpmtmVkQiT8nmXyIVoZd/nnH1cfC33ig==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.6.2.tgz", + "integrity": "sha512-+51XleTDAAysvU8rT6AnS1ZJ+WHVNqhj1k6nTvN2PYP+HjU3kqlaKQ1Lnw3NYW3bm2r8vq82X0Z1nDDHZMzHVA==", "dev": true, "dependencies": { "@jest/types": "^29.6.1", @@ -10061,8 +10463,8 @@ "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", "jest-regex-util": "^29.4.3", - "jest-util": "^29.6.1", - "jest-worker": "^29.6.1", + "jest-util": "^29.6.2", + "jest-worker": "^29.6.2", "micromatch": "^4.0.4", "walker": "^1.0.8" }, @@ -10074,37 +10476,37 @@ } }, "node_modules/jest-leak-detector": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.6.1.tgz", - "integrity": "sha512-OrxMNyZirpOEwkF3UHnIkAiZbtkBWiye+hhBweCHkVbCgyEy71Mwbb5zgeTNYWJBi1qgDVfPC1IwO9dVEeTLwQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.6.2.tgz", + "integrity": "sha512-aNqYhfp5uYEO3tdWMb2bfWv6f0b4I0LOxVRpnRLAeque2uqOVVMLh6khnTcE2qJ5wAKop0HcreM1btoysD6bPQ==", "dev": true, "dependencies": { "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.1" + "pretty-format": "^29.6.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.1.tgz", - "integrity": "sha512-SLaztw9d2mfQQKHmJXKM0HCbl2PPVld/t9Xa6P9sgiExijviSp7TnZZpw2Fpt+OI3nwUO/slJbOfzfUMKKC5QA==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.2.tgz", + "integrity": "sha512-4LiAk3hSSobtomeIAzFTe+N8kL6z0JtF3n6I4fg29iIW7tt99R7ZcIFW34QkX+DuVrf+CUe6wuVOpm7ZKFJzZQ==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^29.6.1", + "jest-diff": "^29.6.2", "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.1" + "pretty-format": "^29.6.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-message-util": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.6.1.tgz", - "integrity": "sha512-KoAW2zAmNSd3Gk88uJ56qXUWbFk787QKmjjJVOjtGFmmGSZgDBrlIL4AfQw1xyMYPNVD7dNInfIbur9B2rd/wQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.6.2.tgz", + "integrity": "sha512-vnIGYEjoPSuRqV8W9t+Wow95SDp6KPX2Uf7EoeG9G99J2OVh7OSwpS4B6J0NfpEIpfkBNHlBZpA2rblEuEFhZQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", @@ -10113,7 +10515,7 @@ "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.6.1", + "pretty-format": "^29.6.2", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -10122,14 +10524,14 @@ } }, "node_modules/jest-mock": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.6.1.tgz", - "integrity": "sha512-brovyV9HBkjXAEdRooaTQK42n8usKoSRR3gihzUpYeV/vwqgSoNfrksO7UfSACnPmxasO/8TmHM3w9Hp3G1dgw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.6.2.tgz", + "integrity": "sha512-hoSv3lb3byzdKfwqCuT6uTscan471GUECqgNYykg6ob0yiAw3zYc7OrPnI9Qv8Wwoa4lC7AZ9hyS4AiIx5U2zg==", "dev": true, "dependencies": { "@jest/types": "^29.6.1", "@types/node": "*", - "jest-util": "^29.6.1" + "jest-util": "^29.6.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -10162,17 +10564,17 @@ } }, "node_modules/jest-resolve": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.6.1.tgz", - "integrity": "sha512-AeRkyS8g37UyJiP9w3mmI/VXU/q8l/IH52vj/cDAyScDcemRbSBhfX/NMYIGilQgSVwsjxrCHf3XJu4f+lxCMg==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.6.2.tgz", + "integrity": "sha512-G/iQUvZWI5e3SMFssc4ug4dH0aZiZpsDq9o1PtXTV1210Ztyb2+w+ZgQkB3iOiC5SmAEzJBOHWz6Hvrd+QnNPw==", "dev": true, "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.1", + "jest-haste-map": "^29.6.2", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.6.1", - "jest-validate": "^29.6.1", + "jest-util": "^29.6.2", + "jest-validate": "^29.6.2", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" @@ -10182,43 +10584,43 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.1.tgz", - "integrity": "sha512-BbFvxLXtcldaFOhNMXmHRWx1nXQO5LoXiKSGQcA1LxxirYceZT6ch8KTE1bK3X31TNG/JbkI7OkS/ABexVahiw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.2.tgz", + "integrity": "sha512-LGqjDWxg2fuQQm7ypDxduLu/m4+4Lb4gczc13v51VMZbVP5tSBILqVx8qfWcsdP8f0G7aIqByIALDB0R93yL+w==", "dev": true, "dependencies": { "jest-regex-util": "^29.4.3", - "jest-snapshot": "^29.6.1" + "jest-snapshot": "^29.6.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-runner": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.6.1.tgz", - "integrity": "sha512-tw0wb2Q9yhjAQ2w8rHRDxteryyIck7gIzQE4Reu3JuOBpGp96xWgF0nY8MDdejzrLCZKDcp8JlZrBN/EtkQvPQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.6.2.tgz", + "integrity": "sha512-wXOT/a0EspYgfMiYHxwGLPCZfC0c38MivAlb2lMEAlwHINKemrttu1uSbcGbfDV31sFaPWnWJPmb2qXM8pqZ4w==", "dev": true, "dependencies": { - "@jest/console": "^29.6.1", - "@jest/environment": "^29.6.1", - "@jest/test-result": "^29.6.1", - "@jest/transform": "^29.6.1", + "@jest/console": "^29.6.2", + "@jest/environment": "^29.6.2", + "@jest/test-result": "^29.6.2", + "@jest/transform": "^29.6.2", "@jest/types": "^29.6.1", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", "jest-docblock": "^29.4.3", - "jest-environment-node": "^29.6.1", - "jest-haste-map": "^29.6.1", - "jest-leak-detector": "^29.6.1", - "jest-message-util": "^29.6.1", - "jest-resolve": "^29.6.1", - "jest-runtime": "^29.6.1", - "jest-util": "^29.6.1", - "jest-watcher": "^29.6.1", - "jest-worker": "^29.6.1", + "jest-environment-node": "^29.6.2", + "jest-haste-map": "^29.6.2", + "jest-leak-detector": "^29.6.2", + "jest-message-util": "^29.6.2", + "jest-resolve": "^29.6.2", + "jest-runtime": "^29.6.2", + "jest-util": "^29.6.2", + "jest-watcher": "^29.6.2", + "jest-worker": "^29.6.2", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -10227,17 +10629,17 @@ } }, "node_modules/jest-runtime": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.6.1.tgz", - "integrity": "sha512-D6/AYOA+Lhs5e5il8+5pSLemjtJezUr+8zx+Sn8xlmOux3XOqx4d8l/2udBea8CRPqqrzhsKUsN/gBDE/IcaPQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.6.2.tgz", + "integrity": "sha512-2X9dqK768KufGJyIeLmIzToDmsN0m7Iek8QNxRSI/2+iPFYHF0jTwlO3ftn7gdKd98G/VQw9XJCk77rbTGZnJg==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.1", - "@jest/fake-timers": "^29.6.1", - "@jest/globals": "^29.6.1", + "@jest/environment": "^29.6.2", + "@jest/fake-timers": "^29.6.2", + "@jest/globals": "^29.6.2", "@jest/source-map": "^29.6.0", - "@jest/test-result": "^29.6.1", - "@jest/transform": "^29.6.1", + "@jest/test-result": "^29.6.2", + "@jest/transform": "^29.6.2", "@jest/types": "^29.6.1", "@types/node": "*", "chalk": "^4.0.0", @@ -10245,13 +10647,13 @@ "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.1", - "jest-message-util": "^29.6.1", - "jest-mock": "^29.6.1", + "jest-haste-map": "^29.6.2", + "jest-message-util": "^29.6.2", + "jest-mock": "^29.6.2", "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.1", - "jest-snapshot": "^29.6.1", - "jest-util": "^29.6.1", + "jest-resolve": "^29.6.2", + "jest-snapshot": "^29.6.2", + "jest-util": "^29.6.2", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -10260,9 +10662,9 @@ } }, "node_modules/jest-snapshot": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.6.1.tgz", - "integrity": "sha512-G4UQE1QQ6OaCgfY+A0uR1W2AY0tGXUPQpoUClhWHq1Xdnx1H6JOrC2nH5lqnOEqaDgbHFgIwZ7bNq24HpB180A==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.6.2.tgz", + "integrity": "sha512-1OdjqvqmRdGNvWXr/YZHuyhh5DeaLp1p/F8Tht/MrMw4Kr1Uu/j4lRG+iKl1DAqUJDWxtQBMk41Lnf/JETYBRA==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", @@ -10270,21 +10672,20 @@ "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.6.1", - "@jest/transform": "^29.6.1", + "@jest/expect-utils": "^29.6.2", + "@jest/transform": "^29.6.2", "@jest/types": "^29.6.1", - "@types/prettier": "^2.1.5", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.6.1", + "expect": "^29.6.2", "graceful-fs": "^4.2.9", - "jest-diff": "^29.6.1", + "jest-diff": "^29.6.2", "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.6.1", - "jest-message-util": "^29.6.1", - "jest-util": "^29.6.1", + "jest-matcher-utils": "^29.6.2", + "jest-message-util": "^29.6.2", + "jest-util": "^29.6.2", "natural-compare": "^1.4.0", - "pretty-format": "^29.6.1", + "pretty-format": "^29.6.2", "semver": "^7.5.3" }, "engines": { @@ -10325,9 +10726,9 @@ "dev": true }, "node_modules/jest-util": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.6.1.tgz", - "integrity": "sha512-NRFCcjc+/uO3ijUVyNOQJluf8PtGCe/W6cix36+M3cTFgiYqFOOW5MgN4JOOcvbUhcKTYVd1CvHz/LWi8d16Mg==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.6.2.tgz", + "integrity": "sha512-3eX1qb6L88lJNCFlEADKOkjpXJQyZRiavX1INZ4tRnrBVr2COd3RgcTLyUiEXMNBlDU/cgYq6taUS0fExrWW4w==", "dev": true, "dependencies": { "@jest/types": "^29.6.1", @@ -10342,9 +10743,9 @@ } }, "node_modules/jest-validate": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.6.1.tgz", - "integrity": "sha512-r3Ds69/0KCN4vx4sYAbGL1EVpZ7MSS0vLmd3gV78O+NAx3PDQQukRU5hNHPXlyqCgFY8XUk7EuTMLugh0KzahA==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.6.2.tgz", + "integrity": "sha512-vGz0yMN5fUFRRbpJDPwxMpgSXW1LDKROHfBopAvDcmD6s+B/s8WJrwi+4bfH4SdInBA5C3P3BI19dBtKzx1Arg==", "dev": true, "dependencies": { "@jest/types": "^29.6.1", @@ -10352,25 +10753,25 @@ "chalk": "^4.0.0", "jest-get-type": "^29.4.3", "leven": "^3.1.0", - "pretty-format": "^29.6.1" + "pretty-format": "^29.6.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-watcher": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.6.1.tgz", - "integrity": "sha512-d4wpjWTS7HEZPaaj8m36QiaP856JthRZkrgcIY/7ISoUWPIillrXM23WPboZVLbiwZBt4/qn2Jke84Sla6JhFA==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.6.2.tgz", + "integrity": "sha512-GZitlqkMkhkefjfN/p3SJjrDaxPflqxEAv3/ik10OirZqJGYH5rPiIsgVcfof0Tdqg3shQGdEIxDBx+B4tuLzA==", "dev": true, "dependencies": { - "@jest/test-result": "^29.6.1", + "@jest/test-result": "^29.6.2", "@jest/types": "^29.6.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.6.1", + "jest-util": "^29.6.2", "string-length": "^4.0.1" }, "engines": { @@ -10378,13 +10779,13 @@ } }, "node_modules/jest-worker": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.1.tgz", - "integrity": "sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.2.tgz", + "integrity": "sha512-l3ccBOabTdkng8I/ORCkADz4eSMKejTYv1vB/Z83UiubqhC1oQ5Li6dWCyqOIvSifGjUBxuvxvlm6KGK2DtuAQ==", "dev": true, "dependencies": { "@types/node": "*", - "jest-util": "^29.6.1", + "jest-util": "^29.6.2", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -10447,9 +10848,9 @@ } }, "node_modules/jsdoc-type-pratt-parser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", - "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", + "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", "dev": true, "engines": { "node": ">=12.0.0" @@ -10567,9 +10968,9 @@ } }, "node_modules/jsx-ast-utils": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.4.tgz", - "integrity": "sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "dev": true, "dependencies": { "array-includes": "^3.1.6", @@ -11159,9 +11560,9 @@ } }, "node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", "dev": true }, "node_modules/mdurl": { @@ -11192,34 +11593,35 @@ } }, "node_modules/meow": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz", - "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", "dev": true, "dependencies": { "@types/minimist": "^1.2.0", "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", "decamelize-keys": "^1.1.0", "hard-rejection": "^2.1.0", - "minimist-options": "^4.0.2", - "normalize-package-data": "^2.5.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", "read-pkg-up": "^7.0.1", "redent": "^3.0.0", "trim-newlines": "^3.0.0", - "type-fest": "^0.13.1", - "yargs-parser": "^18.1.3" + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/meow/node_modules/type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, "engines": { "node": ">=10" @@ -11698,32 +12100,59 @@ "dev": true }, "node_modules/node-releases": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", - "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", "dev": true }, "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, + "node_modules/normalize-package-data/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -11742,18 +12171,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/npm-bundled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", @@ -11770,35 +12187,79 @@ "dev": true }, "node_modules/npm-package-json-lint": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/npm-package-json-lint/-/npm-package-json-lint-5.4.2.tgz", - "integrity": "sha512-DH1MSvYvm+cuQFXcPehIIu/WiYzMYs7BOxlhOOFHaH2SNrA+P2uDtTEe5LOG90Ci7PTwgF/dCmSKM2HWTgWXNA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/npm-package-json-lint/-/npm-package-json-lint-6.4.0.tgz", + "integrity": "sha512-cuXAJJB1Rdqz0UO6w524matlBqDBjcNt7Ru+RDIu4y6RI1gVqiWBnylrK8sPRk81gGBA0X8hJbDXolVOoTc+sA==", "dev": true, "dependencies": { "ajv": "^6.12.6", "ajv-errors": "^1.0.1", "chalk": "^4.1.2", - "cosmiconfig": "^7.0.1", - "debug": "^4.3.2", - "globby": "^11.0.4", - "ignore": "^5.1.9", + "cosmiconfig": "^8.0.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "ignore": "^5.2.0", "is-plain-obj": "^3.0.0", - "jsonc-parser": "^3.0.0", + "jsonc-parser": "^3.2.0", "log-symbols": "^4.1.0", - "meow": "^6.1.1", + "meow": "^9.0.0", "plur": "^4.0.0", - "semver": "^7.3.5", + "semver": "^7.3.8", "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" + "strip-json-comments": "^3.1.1", + "type-fest": "^3.2.0", + "validate-npm-package-name": "^5.0.0" }, "bin": { - "npmPkgJsonLint": "src/cli.js" + "npmPkgJsonLint": "dist/cli.js" }, "engines": { - "node": ">=10.0.0", + "node": ">=14.0.0", "npm": ">=6.0.0" } }, + "node_modules/npm-package-json-lint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/npm-package-json-lint/node_modules/cosmiconfig": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", + "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "dev": true, + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/npm-package-json-lint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/npm-package-json-lint/node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, "node_modules/npm-package-json-lint/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -11826,6 +12287,18 @@ "node": ">=10" } }, + "node_modules/npm-package-json-lint/node_modules/type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/npm-package-json-lint/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -11962,6 +12435,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object.groupby": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.0.tgz", + "integrity": "sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.21.2", + "get-intrinsic": "^1.2.1" + } + }, "node_modules/object.hasown": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", @@ -12486,22 +12971,25 @@ } }, "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", + "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", "dev": true, "dependencies": { - "postcss-selector-parser": "^6.0.9", + "postcss-selector-parser": "^6.0.11", "postcss-value-parser": "^4.2.0" }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, "peerDependencies": { "postcss": "^8.2.2" } }, "node_modules/postcss-colormin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", - "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.0.tgz", + "integrity": "sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==", "dev": true, "dependencies": { "browserslist": "^4.21.4", @@ -12510,71 +12998,71 @@ "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.0.tgz", + "integrity": "sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==", "dev": true, "dependencies": { "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.0.tgz", + "integrity": "sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==", "dev": true, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.0.tgz", + "integrity": "sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==", "dev": true, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.0.tgz", + "integrity": "sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==", "dev": true, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.0.tgz", + "integrity": "sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==", "dev": true, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" @@ -12642,98 +13130,98 @@ "dev": true }, "node_modules/postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz", + "integrity": "sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" + "stylehacks": "^6.0.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-merge-rules": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", - "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.1.tgz", + "integrity": "sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==", "dev": true, "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.0", "postcss-selector-parser": "^6.0.5" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.0.tgz", + "integrity": "sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.0.tgz", + "integrity": "sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==", "dev": true, "dependencies": { "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.0.tgz", + "integrity": "sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==", "dev": true, "dependencies": { "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.0.tgz", + "integrity": "sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.5" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" @@ -12799,181 +13287,180 @@ } }, "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz", + "integrity": "sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==", "dev": true, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.0.tgz", + "integrity": "sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.0.tgz", + "integrity": "sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.0.tgz", + "integrity": "sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.0.tgz", + "integrity": "sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.0.tgz", + "integrity": "sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.0.tgz", + "integrity": "sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==", "dev": true, "dependencies": { "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.0.tgz", + "integrity": "sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==", "dev": true, "dependencies": { - "normalize-url": "^6.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.0.tgz", + "integrity": "sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.0.tgz", + "integrity": "sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==", "dev": true, "dependencies": { - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-reduce-initial": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", - "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.0.tgz", + "integrity": "sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==", "dev": true, "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.0.tgz", + "integrity": "sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" @@ -13002,9 +13489,9 @@ } }, "node_modules/postcss-scss": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.6.tgz", - "integrity": "sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.7.tgz", + "integrity": "sha512-xPv2GseoyXPa58Nro7M73ZntttusuCmZdeOojUFR5PZDz2BR62vfYx1w9TyOnp1+nYFowgOMipsCBhxzVkAEPw==", "dev": true, "funding": [ { @@ -13014,6 +13501,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "engines": { @@ -13037,31 +13528,31 @@ } }, "node_modules/postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.0.tgz", + "integrity": "sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" + "svgo": "^3.0.2" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >= 18" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.0.tgz", + "integrity": "sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.5" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" @@ -13111,9 +13602,9 @@ } }, "node_modules/pretty-format": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", - "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.2.tgz", + "integrity": "sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==", "dev": true, "dependencies": { "@jest/schemas": "^29.6.0", @@ -13550,13 +14041,40 @@ "node": ">=8" } }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "engines": { - "node": ">=8" + "bin": { + "semver": "bin/semver" } }, "node_modules/read-pkg/node_modules/type-fest": { @@ -13619,6 +14137,26 @@ "node": ">=8" } }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.3.tgz", + "integrity": "sha512-TTAOZpkJ2YLxl7mVHWrNo3iDMEkYlva/kgFcXndqMgbo/AZUmmavEkdXV+hXtE4P8xdyEKRzalaFqZVuwIk/Nw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.1", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -13638,15 +14176,15 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", "dev": true }, "node_modules/regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" @@ -13913,6 +14451,30 @@ "tslib": "^2.1.0" } }, + "node_modules/safe-array-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", + "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -14544,13 +15106,6 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", - "dev": true - }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -14775,16 +15330,16 @@ "dev": true }, "node_modules/stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.0.tgz", + "integrity": "sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==", "dev": true, "dependencies": { "browserslist": "^4.21.4", "postcss-selector-parser": "^6.0.4" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" @@ -14916,18 +15471,6 @@ "node": ">=6" } }, - "node_modules/stylelint/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/stylelint/node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -14937,101 +15480,6 @@ "node": ">=0.10.0" } }, - "node_modules/stylelint/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stylelint/node_modules/meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint/node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stylelint/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stylelint/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/stylelint/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -15082,24 +15530,27 @@ "dev": true }, "node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.0.2.tgz", + "integrity": "sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==", "dev": true, "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" + "css-select": "^5.1.0", + "css-tree": "^2.2.1", + "csso": "^5.0.5", + "picocolors": "^1.0.0" }, "bin": { "svgo": "bin/svgo" }, "engines": { - "node": ">=10.13.0" + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" } }, "node_modules/svgo/node_modules/commander": { @@ -15562,6 +16013,57 @@ "node": ">= 0.6" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typed-array-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", @@ -15798,9 +16300,9 @@ } }, "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", "dev": true }, "node_modules/v8-to-istanbul": { @@ -15827,6 +16329,18 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/validate-npm-package-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "dev": true, + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -16679,18 +17193,64 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dev": true, + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/which-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.10.tgz", - "integrity": "sha512-uxoA5vLUfRPdjCuJ1h5LlYdmTLbYfums398v3WLkM+i/Wltl2/XyZpQWKbN++ck5L64SR/grOHqtXCUKmlZPNA==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -16844,25 +17404,12 @@ } }, "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, "engines": { - "node": ">=6" + "node": ">=10" } }, "node_modules/yargs/node_modules/yargs-parser": { diff --git a/package.json b/package.json index 999d4a6762..e2d090b7df 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dokan", - "version": "3.7.24", + "version": "3.8.0", "description": "A WordPress marketplace plugin", "author": "weDevs", "license": "GPL", @@ -21,7 +21,7 @@ "release": "npm run readme && npm run build && npm run clean-files && npm run makepot && npm run version && npm run zip" }, "devDependencies": { - "@wordpress/scripts": "^26.8.0", + "@wordpress/scripts": "^26.11.0", "chartjs-adapter-moment": "^1.0.1", "debounce": "^1.2.1", "fs-extra": "^10.1.0", diff --git a/readme.txt b/readme.txt index 990ce12f6c..c45fa383a1 100644 --- a/readme.txt +++ b/readme.txt @@ -3,11 +3,11 @@ Contributors: tareq1988, wedevs, nizamuddinbabu Donate Link: http://tareq.co/donate/ Tags: WooCommerce multivendor marketplace, multi vendor marketplace, multi seller store, multi-vendor, multi seller, commissions, multivendor, marketplace, product vendors, woocommerce vendor, commission rate, e-commerce, woocommerce, ebay, ecommerce. Requires at least: 5.4 -Tested up to: 6.2.2 +Tested up to: 6.3.0 WC requires at least: 5.0.0 -WC tested up to: 7.9.0 -Requires PHP: 7.2 -Stable tag: 3.7.24 +WC tested up to: 8.0.2 +Requires PHP: 7.3 +Stable tag: 3.8.0 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -338,6 +338,13 @@ A. Just install and activate the PRO version without deleting the free plugin. A == Changelog == += v3.8.0 ( Aug 18, 2023 ) = + +- **update:** Added HPOS (High-Performance Order Storage) support for Dokan Lite. +- **fix:** Resolved an issue where traces of order data were left on the Dokan end even after the order had been deleted from the WordPress admin panel. +Previously, deleted orders were still visible under the Dashboard Overview menu, Reports menu, and under Withdraw menu. This issue has been fixed in the current release. +- **fix:** Multiple issues have been fixed after a product of an order has been deleted. + = v3.7.24 ( Jul 25, 2023 ) = - **update:** Restrictions added for vendors to review and purchase their own products. diff --git a/templates/whats-new.php b/templates/whats-new.php index af29bc8f8e..515cfe8e65 100644 --- a/templates/whats-new.php +++ b/templates/whats-new.php @@ -3,6 +3,32 @@ * When you are adding new version please follow this sequence for changes: New Feature, New, Improvement, Fix... */ $changelog = [ + [ + 'version' => 'Version 3.8.0', + 'released' => '2023-08-18', + 'changes' => [ + 'Update' => [ + [ + 'title' => 'Added HPOS (High-Performance Order Storage) support for Dokan Lite', + 'description' => 'The High-Performance Order Storage (HPOS) feature is a solution that provides an easy-to-understand and solid database structure specifically designed for eCommerce needs. It uses the WooCommerce CRUD design to store order data in custom tables optimized for WooCommerce queries with minimal impact on the store’s performance. This feature enables eCommerce stores of all shapes and sizes to scale their business to their maximum potential without expert intervention. It also facilitates implementing read/write locks and prevents race conditions. You can enable High-Performance Order Storage by navigating to WooCommerce > Settings > Advanced > Features and choosing the suitable data storage options for orders.', + ], + [ + 'title' => 'Updated minimum PHP version requirement to 7.3', + 'description' => '', + ], + ], + 'Fix' => [ + [ + 'title' => 'Resolved an issue where traces of order data were left on the Dokan end even after the order had been deleted from the WordPress admin panel.', + 'description' => 'Previously, deleted orders were still visible under the Dashboard Overview menu, Reports menu, and under Withdraw menu. This issue has been fixed in the current release.', + ], + [ + 'title' => 'Multiple issues have been fixed after a product of an order has been deleted.', + 'description' => '', + ], + ], + ], + ], [ 'version' => 'Version 3.7.24', 'released' => '2023-07-25', From 4bdf46f99b409c1264188900d7c7ab14257df8a5 Mon Sep 17 00:00:00 2001 From: Nurul Umbhiya Date: Tue, 22 Aug 2023 15:08:47 +0600 Subject: [PATCH 05/69] =?UTF-8?q?=F0=9F=90=9B=20fix(Assets.php):=20pass=20?= =?UTF-8?q?$hook=20variable=20to=20'dokan=5Fenqueue=5Fadmin=5Fscripts'=20a?= =?UTF-8?q?ction=20to=20improve=20functionality=20=F0=9F=94=92=20chore(Per?= =?UTF-8?q?missions.php):=20remove=20support=20for=20hpos=20in=20'filter?= =?UTF-8?q?=5Forders=5Ffor=5Fcurrent=5Fvendor'=20and=20'revoke=5Fchange=5F?= =?UTF-8?q?order=5Fstatus'=20hooks=20as=20per=20request=20from=20Tareq=20?= =?UTF-8?q?=F0=9F=94=A7=20chore(MiscHooks.php):=20remove=20support=20for?= =?UTF-8?q?=20hpos=20in=20'wp=5Fcount=5Fposts'=20filter=20as=20it=20is=20n?= =?UTF-8?q?ot=20needed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- includes/Assets.php | 2 +- includes/Order/Admin/Permissions.php | 1 + includes/Order/MiscHooks.php | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/includes/Assets.php b/includes/Assets.php index c06918e0dc..ad9220dc23 100644 --- a/includes/Assets.php +++ b/includes/Assets.php @@ -130,7 +130,7 @@ public function enqueue_admin_scripts( $hook ) { wp_localize_script( 'dokan-admin-product', 'dokan_admin_product', $this->admin_product_localize_scripts() ); } - do_action( 'dokan_enqueue_admin_scripts' ); + do_action( 'dokan_enqueue_admin_scripts', $hook ); } /** diff --git a/includes/Order/Admin/Permissions.php b/includes/Order/Admin/Permissions.php index 0e8f5efbed..1c5c92e4ee 100644 --- a/includes/Order/Admin/Permissions.php +++ b/includes/Order/Admin/Permissions.php @@ -21,6 +21,7 @@ class Permissions { public function __construct() { add_filter( 'map_meta_cap', [ $this, 'map_meta_caps' ], 12, 4 ); + // didn't added hpos support for below hooks, since tareq bhai asked to revoke admin access for vendors add_filter( 'posts_clauses', [ $this, 'filter_orders_for_current_vendor' ], 12, 2 ); add_action( 'load-post.php', [ $this, 'revoke_change_order_status' ] ); add_filter( 'manage_edit-shop_order_columns', [ $this, 'remove_action_column' ], 15 ); diff --git a/includes/Order/MiscHooks.php b/includes/Order/MiscHooks.php index fa67346365..3e78eaa7ee 100644 --- a/includes/Order/MiscHooks.php +++ b/includes/Order/MiscHooks.php @@ -30,7 +30,7 @@ public function __construct() { add_filter( 'dokan_csv_export_headers', [ $this, 'hide_customer_info_from_vendor_order_export' ], 20, 1 ); add_filter( 'woocommerce_rest_prepare_shop_order_object', [ $this, 'add_vendor_info_in_rest_order' ], 10, 1 ); - add_filter( 'wp_count_posts', [ $this, 'modify_vendor_order_counts' ], 10, 1 ); + add_filter( 'wp_count_posts', [ $this, 'modify_vendor_order_counts' ], 10, 1 ); // no need to add hpos support for this filter } /** From cdfd4d4f9e6074a6fbc764d94f7ccce814f20169 Mon Sep 17 00:00:00 2001 From: Asad Nur <30354772+devAsadNur@users.noreply.github.com> Date: Thu, 24 Aug 2023 15:29:58 +0600 Subject: [PATCH 06/69] fix: Console warning on backend settings page from Google Map (#1944) --- includes/Assets.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/includes/Assets.php b/includes/Assets.php index ad9220dc23..f347dff6c6 100644 --- a/includes/Assets.php +++ b/includes/Assets.php @@ -892,7 +892,8 @@ public function load_gmap_script() { if ( $api_key ) { $query_args = apply_filters( 'dokan_google_maps_script_query_args', [ - 'key' => $api_key, + 'key' => $api_key, + 'callback' => 'Function.prototype', ] ); From 4e0399b8ba6ee0da4bc75a3f3408ebea1db036b7 Mon Sep 17 00:00:00 2001 From: Aftabul Islam Date: Thu, 24 Aug 2023 15:30:19 +0600 Subject: [PATCH 07/69] fix: login form closing class name mismatch (#1946) --- assets/src/js/login-form-popup.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/src/js/login-form-popup.js b/assets/src/js/login-form-popup.js index 47d4e025e3..41f7315b92 100644 --- a/assets/src/js/login-form-popup.js +++ b/assets/src/js/login-form-popup.js @@ -77,7 +77,7 @@ } } ).done( function ( response ) { $( 'body' ).trigger( 'dokan:login_form_popup:logged_in', response ); - $( '#dokan-login-form-popup' ).iziModal( 'close' ); + $( '#dokan-modal-login-form-popup' ).iziModal( 'close' ); } ).always( function () { $( 'body' ).trigger( 'dokan:login_form_popup:done_working' ); } ).fail( function ( jqXHR ) { From a1c486ae3b63970b21f47f2663eb54b5798a5235 Mon Sep 17 00:00:00 2001 From: Nurul Umbhiya Date: Thu, 24 Aug 2023 15:32:03 +0600 Subject: [PATCH 08/69] =?UTF-8?q?=F0=9F=94=A7=20chore(Helper.php):=20add?= =?UTF-8?q?=20method=20to=20check=20if=20a=20product=20is=20a=20reverse=20?= =?UTF-8?q?withdrawal=20product=20(#1982)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🔧 chore(Hooks.php): modify priority of hide_add_to_cart_button filter to 20 to ensure it runs after other filters 🐛 fix(Hooks.php): exclude reverse withdrawal product from hiding add to cart button --- includes/ReverseWithdrawal/Helper.php | 15 +++++++++++++++ includes/ReverseWithdrawal/Hooks.php | 8 ++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/includes/ReverseWithdrawal/Helper.php b/includes/ReverseWithdrawal/Helper.php index a6b6f8e8c0..2a9bc23839 100644 --- a/includes/ReverseWithdrawal/Helper.php +++ b/includes/ReverseWithdrawal/Helper.php @@ -211,6 +211,21 @@ public static function get_reverse_withdrawal_base_product() { return 0; } + /** + * This method will check if a product is reverse withdrawal product + * + * @since DOKAN_SINCE + * + * @param int $product_id + * + * @return bool + */ + public static function is_reverse_withdrawal_product( $product_id ) { + $base_product_id = static::get_reverse_withdrawal_base_product(); + + return $base_product_id === $product_id; + } + /** * This method will check if cart contain reverse withdrawal payment product * diff --git a/includes/ReverseWithdrawal/Hooks.php b/includes/ReverseWithdrawal/Hooks.php index 7705415111..b39f2e9a3e 100644 --- a/includes/ReverseWithdrawal/Hooks.php +++ b/includes/ReverseWithdrawal/Hooks.php @@ -33,7 +33,7 @@ public function __construct() { // remove withdraw menu - reverse withdrawal action add_filter( 'dokan_get_dashboard_nav', array( $this, 'unset_withdraw_menu' ) ); // enable catalog mode - reverse withdrawal action - add_filter( 'woocommerce_is_purchasable', array( $this, 'hide_add_to_cart_button' ), 10, 2 ); + add_filter( 'woocommerce_is_purchasable', array( $this, 'hide_add_to_cart_button' ), 20, 2 ); add_filter( 'woocommerce_get_price_html', array( $this, 'hide_product_price' ), 20, 2 ); // after order status changed @@ -104,12 +104,16 @@ public function unset_withdraw_menu( $menu ) { * @return bool */ public function hide_add_to_cart_button( $purchasable, $product ) { + // exclude reverse withdrawal product + if ( Helper::is_reverse_withdrawal_product( $product->get_id() ) ) { + return true; + } + if ( false === $purchasable ) { return $purchasable; } $vendor_id = dokan_get_vendor_by_product( $product, true ); - if ( ! $vendor_id ) { return $purchasable; } From bccd6153045cd042d4c02dbba7a1de672f8e1ea3 Mon Sep 17 00:00:00 2001 From: RaadNS <139427112+RaadNS@users.noreply.github.com> Date: Fri, 25 Aug 2023 09:00:22 +0600 Subject: [PATCH 09/69] Updated readme.txt (#1972) * updated links to dokan.co updated links to dokan.co * Updated readme.txt & changed the links to dokan.co I have replaced the previous wedevs.com/dokan links with dokan.co * Update readme.txt updated youtube links --- readme.txt | 152 ++++++++++++++++++++++++++--------------------------- 1 file changed, 76 insertions(+), 76 deletions(-) diff --git a/readme.txt b/readme.txt index c45fa383a1..a196b2aaaf 100644 --- a/readme.txt +++ b/readme.txt @@ -18,7 +18,7 @@ The pioneer multi-vendor plugin for WordPress. Start your own marketplace in min = DOKAN MULTIVENDOR MARKETPLACE PLUGIN FOR WORDPRESS - POWERED BY WOOCOMMERCE = -[Dokan](https://wedevs.com/dokan/) is the best frontend multi-vendor marketplace plugin on WordPress, powered by WooCommerce. It helps you build your own marketplace similar to Amazon, Shopify, eBay, and Magento in under 30 minutes. +[Dokan](https://dokan.co/wordpress/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) is the best frontend multi-vendor marketplace plugin on WordPress, powered by WooCommerce. It helps you build your own marketplace similar to Amazon, Shopify, eBay, and Magento in under 30 minutes. Dokan is the fastest way to launch an eCommerce business and earn through commissions with products ranging from digital, and physical to variable products. @@ -26,15 +26,15 @@ Hear what reputed WordPress influencer and online business strategist, Darrel Wi [youtube https://www.youtube.com/watch?v=nDAxNypVxdw] -👉 **Official Free Demo Link:** Try out multiple [Dokan Demo sites](https://wedevs.com/dokan/demo/) +👉 **Official Free Demo Link:** Try out multiple [Dokan Demo sites](https://dokan.co/wordpress/demo/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) -👉 **Learn More About Dokan (PRO):** [All The Features of Dokan](https://wedevs.com/dokan/features/) +👉 **Learn More About Dokan (PRO):** [All The Features of Dokan](https://dokan.co/wordpress/features/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) -👉 Check out the **comprehensive customer [Dokan Mobile App](https://wedevs.com/dokan/dokan-mobile-app)** to enhance your Dokan marketplace shopping experience. +👉 Check out the **comprehensive customer [Dokan Mobile App](https://dokan.co/wordpress/dokan-mobile-app/)** to enhance your Dokan marketplace shopping experience. -👉 **Easy Delivery Management with [Dokan Delivery Driver App](https://wedevs.com/dokan/dokan-delivery-driver-app/)** (Pro) with real-time order tracking, live timeline updates, and an asynchronous system between admin, vendors, customers, and delivery drivers. +👉 **Easy Delivery Management with [Dokan Delivery Driver App](https://dokan.co/wordpress/delivery-driver-app/)** (Pro) with real-time order tracking, live timeline updates, and an asynchronous system between admin, vendors, customers, and delivery drivers. -👉 **Confused about how to get started?** Read our [Blogs](https://wedevs.com/blog/) +👉 **Confused about how to get started?** Read our blogs from [weDevs](https://wedevs.com/blog/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) and [Dokan](https://dokan.co/blog/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) = PLACES WHERE DOKAN HAS BEEN FEATURED = @@ -43,7 +43,7 @@ Hear what reputed WordPress influencer and online business strategist, Darrel Wi 🏆 [How to Setup a WordPress Marketplace with Multiple Vendors](https://learnwoo.com/wordpress-marketplace/) -🏆 [How to create a Multi-Vendor Marketplace for WordPress using Dokan](https://topnotchthemes.com/how-to-create-a-multi-vendor-marketplace-for-wordpress-using-dokan/) +🏆 [How to create a Multi-Vendor Marketplace for WordPress using Dokan](https://youtu.be/_Vv5T7qqhoE) 🏆 [Dokan Theme Review: A Multi-Vendor Marketplace Theme for WordPress](https://wpmayor.com/dokan-theme-review-multi-vendor-marketplace-theme-wordpress/) @@ -73,15 +73,15 @@ Hear what reputed WordPress influencer and online business strategist, Darrel Wi = THE BEST FRONTEND USER INTERFACE = -To provide a comprehensive frontend experience, every vendor has a [personalized customizable dashboard](https://wedevs.com/dokan/features/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) on the store frontend. They can easily navigate and control every aspect of their marketplace from there. Backend access is restricted to only the admin, which sets Dokan apart from other marketplace plugins. However, all Dokan [modules](https://wedevs.com/dokan/modules) are frontend compatible so that both the admin and vendors can enjoy the benefits and advanced features of Dokan. +To provide a comprehensive frontend experience, every vendor has a [personalized customizable dashboard](https://dokan.co/wordpress/features/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) on the store frontend. They can easily navigate and control every aspect of their marketplace from there. Backend access is restricted to only the admin, which sets Dokan apart from other marketplace plugins. However, all Dokan [modules](https://dokan.co/wordpress/modules/) are frontend compatible so that both the admin and vendors can enjoy the benefits and advanced features of Dokan. -Dokan (Pro) comes with a free, fully responsive eCommerce theme - [Dokani](https://wedevs.com/dokan/dokani-theme/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) with special widgets to ensure you can customize the theme however you like. +Dokan (Pro) comes with a free, fully responsive eCommerce theme - [Dokani](https://dokan.co/wordpress/dokani-theme/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) with special widgets to ensure you can customize the theme however you like. -Dokan is also compatible with the [Otel theme](https://wedevs.com/dokan/otel-theme/), a customizable and fully responsive WordPress theme for any hotel booking management site. +Dokan is also compatible with the [Otel theme](https://dokan.co/wordpress/otel-theme/), a customizable and fully responsive WordPress theme for any hotel booking management site. = IT’S FAST AND EASY TO USE = -Your business operation with Dokan comes with the assurance of a smooth and fast experience. The set up process takes less than an hour, and you can get your marketplace up and running within a day. Everything is bound to match your expectation because that is how the experience is designed, taking into account the best intuitive practices from popular eCommerce activators like WooCommerce, Bigcommerce, and others. +Your business operation with Dokan comes with the assurance of a smooth and fast experience. The setup process takes less than an hour, and you can get your marketplace up and running within a day. Everything is bound to match your expectation because that is how the experience is designed, taking into account the best intuitive practices from popular eCommerce activators like WooCommerce, Bigcommerce, and others. = A RELIABLE GROWING PLATFORM & COMMUNITY = @@ -95,8 +95,8 @@ Dokan Multivendor Marketplace plugin allows you to have an unlimited number of v * Physical products * Downloadable products * Variable products -* Bookable products through the [Dokan WC Bookings Integration](https://wedevs.com/dokan/modules/woocommerce-booking-integration/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) -* Auction products through the [Dokan Simple Auction Integration](https://wedevs.com/dokan/modules/dokan-simple-auctions/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) +* Bookable products through the [Dokan WC Bookings Integration](https://dokan.co/wordpress/modules/woocommerce-booking-integration/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) +* Auction products through the [Dokan Simple Auction Integration](https://dokan.co/wordpress/modules/dokan-simple-auctions/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) = EARN IN MULTIPLE WAYS = @@ -106,32 +106,32 @@ Profit doesn’t only rely on sales. Dokan offers multiple ways to earn money, i As an admin, Dokan gives you complete control over everything that happens in your marketplace. Define standout features of marketplace operations like product publishing, vendor registration, subscription renewal, and every other vendor activity. -In the [Pro Version](https://wedevs.com/dokan/pricing/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org), there are additional stunning features, updates, and scope for powerful modules to provide more admin power and control while improving the marketplace functionality. +In the [Pro Version](https://dokan.co/wordpress/pricing/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org), there are additional stunning features, updates, and scope for powerful modules to provide more admin power and control while improving the marketplace functionality. = DYNAMIC SETTINGS FOR SHIPPING CONDITIONS = Admin can extend flexibility to individual vendors to take control over their shipping methods based on various conditions, such as setting multiple rates, tracking shipments with available integrations, and much more. -* [Vendor Table Rate Shipping](https://wedevs.com/dokan/modules/table-rate-shipping) (Pro) – Multi-vendor support on setting shipping rates based on location, price, weight, shipping class, or item count of the shipment. +* [Vendor Table Rate Shipping](https://dokan.co/wordpress/modules/table-rate-shipping/) (Pro) – Multi-vendor support on setting shipping rates based on location, price, weight, shipping class, or item count of the shipment. -* [Delivery Time](https://wedevs.com/dokan/modules/delivery-time) (Pro) – Let customers choose the time and date they want their product delivered. -* [ShipStation](https://wedevs.com/dokan/modules/shipstation/) (Pro) – Enable vendors to import, manage, and ship orders hassle-free with the leading shipping application for online marketplaces. +* [Delivery Time](https://dokan.co/wordpress/modules/delivery-time/) (Pro) – Let customers choose the time and date they want their product delivered. +* [ShipStation](https://dokan.co/wordpress/modules/shipstation/) (Pro) – Enable vendors to import, manage, and ship orders hassle-free with the leading shipping application for online marketplaces. -* Your vendors will also be able to use [zone-wise shipping management](https://wedevs.com/docs/dokan/vendor-guide/dokan-zone-wise-shipping/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). +* Your vendors will also be able to use [zone-wise shipping management](https://dokan.co/docs/wordpress/vendor-guide/dokan-zone-wise-shipping/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). = PLAYS NICELY WITH OTHER PLUGINS = Dokan is compatible with more than 70+ plugins & 71+ themes so you don’t have to worry about anything when it comes to compatibility. From shipping plugins to payment plugins to wallets, you have complete peace of mind when building an eCommerce business with Dokan for a global audience. -➡️ [Check Out Dokan Compatible Plugins & Themes](https://wedevs.com/dokan/compatible-plugins/) ⬅️ +➡️ [Check Out Dokan Compatible Plugins & Themes](https://dokan.co/wordpress/compatible-plugins/) ⬅️ = MORE FREEDOM TO CUSTOMIZE THE STORE = Never get bored with the old-fashioned appearance of your store. Have full control over your store customization and give life to your imagination with Dokan integrations. -* [Elementor Customizer](https://wedevs.com/dokan/modules/elementor/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Get the complete store customization authority for the vendor store page to change its default appearance hassle-free. Simply get the customizer and modify the global outlook of the vendor store pages. Drag & drop more than 12 incredible store widgets **made exclusively for Dokan** and place them anywhere you want it. Save as many customized templates as you want. +* [Elementor Customizer](https://dokan.co/wordpress/modules/elementor/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Get the complete store customization authority for the vendor store page to change its default appearance hassle-free. Simply get the customizer and modify the global outlook of the vendor store pages. Drag & drop more than 12 incredible store widgets **made exclusively for Dokan** and place them anywhere you want it. Save as many customized templates as you want. = 🎯🎯 FEATURES 🎯🎯 = @@ -141,9 +141,9 @@ Never get bored with the old-fashioned appearance of your store. Have full contr * Beautiful storefront styles with contact details and widgets. -* [Store location map on the store front](https://wedevs.com/dokan/modules/geolocation/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). +* [Store location map on the store front](https://dokan.co/wordpress/modules/geolocation/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). -* [Single products can be offered by different merchants](https://wedevs.com/dokan/modules/single-product-multivendor/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). +* [Single products can be offered by different merchants](https://dokan.co/wordpress/modules/single-product-multivendor/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). **Frontend Dashboard For Each Seller** @@ -157,13 +157,13 @@ Never get bored with the old-fashioned appearance of your store. Have full contr * Vendor commissions are automatically collected to reduce administrative burden. -* [Per vendor percentage override](https://wedevs.com/docs/dokan/tutorials/how-to-setup-dokan-vendor-commission/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) eases the manual condition of specially setting different commission settings for vendors. Create a global commission structure on the marketplace with this feature. +* [Per vendor percentage override](https://dokan.co/docs/wordpress/tutorials/how-to-setup-dokan-vendor-commission/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) eases the manual condition of specially setting different commission settings for vendors. Create a global commission structure on the marketplace with this feature. **Hassle Free Payments & Transactions** * Utilize 100+ payment integrations of Dokan including GooglePay, ApplePay, Stripe Express, MANGOPAY, Razorpay. -* [Reverse Withdrawal](https://wedevs.com/docs/dokan/withdraw/dokan-reverse-withdrawal/) facilitates commission collection for admins in instances when it cannot be collected via the regular commission system, such as when vendors ship orders with **cash on delivery**. +* [Reverse Withdrawal](https://dokan.co/docs/wordpress/withdraw/dokan-reverse-withdrawal/) facilitates commission collection for admins in instances when it cannot be collected via the regular commission system, such as when vendors ship orders with **cash on delivery**. * Automatic Payment Disbursement eases the trouble of manually calculating commissions of each vendor. The feature enables customer payments to be split right away and be disbursed to admin and vendors based on marketplace settings. @@ -171,24 +171,24 @@ Never get bored with the old-fashioned appearance of your store. Have full contr * Create and manage your products from the frontend. * [Create variable or downloadable products](https://wedevs.com/87025/types-of-products-you-can-create-using-woocommerce/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). -* Vendors have the option to [manage product attributes](https://wedevs.com/docs/dokan/vendor-dashboard/products/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). -* Vendors can manage downloadable [product permission, expiry date, and download limit](https://wedevs.com/docs/dokan/tutorials/how-to-create-a-digital-product/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). +* Vendors have the option to [manage product attributes](https://dokan.co/docs/wordpress/vendor-dashboard/products/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). +* Vendors can manage downloadable [product permission, expiry date, and download limit](https://dokan.co/docs/wordpress/tutorials/how-to-create-a-digital-product/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). **Detailed Reports Of Your Marketplace (Pro)** -* Vendors can see their [sales report, generate statements and overview from the frontend](https://wedevs.com/dokan/modules/vendor-analytics) (Vendor Analytics). -* Admins can [overview orders](https://wedevs.com/docs/dokan/vendor-dashboard/orders/) and filter by sale, date, top vendors, or top earners. -* Let Vendors easily migrate from other marketplaces to your Dokan marketplace using the [Export/Import feature](https://wedevs.com/dokan/modules/export-import/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro) without losing any product data, including stock value, SKU information, tags and other information. -* Admin has access to all customer reviews on the marketplace. The customer can leave [reviews for a product/vendor](https://wedevs.com/dokan/modules/dokan-vendor-review/) they are satisfied with. The vendor cannot change a review, promoting transparency. +* Vendors can see their [sales report, generate statements and overview from the frontend](https://dokan.co/wordpress/modules/vendor-analytics/) (Vendor Analytics). +* Admins can [overview orders](https://dokan.co/docs/wordpress/vendor-dashboard/orders/) and filter by sale, date, top vendors, or top earners. +* Let Vendors easily migrate from other marketplaces to your Dokan marketplace using the [Export/Import feature](https://dokan.co/wordpress/modules/export-import/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro) without losing any product data, including stock value, SKU information, tags and other information. +* Admin has access to all customer reviews on the marketplace. The customer can leave [reviews for a product/vendor](https://dokan.co/wordpress/modules/dokan-vendor-review/) they are satisfied with. The vendor cannot change a review, promoting transparency. **Vendors Discounts Creation & Management** * Configure coupon expiration and restrictions. * All product reviews are managed by vendors (with admin override), and make decisions on whether to display the review on their site. -* Vendors will be able to create diverse [coupons](https://wedevs.com/docs/dokan/vendor-dashboard/coupons-2/) by setting different rules based on usage limit, expiration date, excluding sale items while also specifying only certain products on which the coupons are valid on (Pro). +* Vendors will be able to create diverse [coupons](https://dokan.co/docs/wordpress/vendor-dashboard/coupons-2/) by setting different rules based on usage limit, expiration date, excluding sale items while also specifying only certain products on which the coupons are valid on (Pro). **💪‍ ADMINS CONTROL EVERY ASPECT OF THE MARKETPLACE** * Admin can view and modify vendor store products. -* Admin can view a comprehensive [Admin Earning Report](https://wedevs.com/docs/dokan/earning-reports/) with data categorization by day, year, or vendors. Moreover, the admin can also view each vendor’s earning reports individually. -* Dokan Pro has an advanced support option for customers, allowing customers to directly interact with vendors and admin for product inquiry ([Product Enquiry module](https://wedevs.com/dokan/modules/)). +* Admin can view a comprehensive [Admin Earning Report](https://dokan.co/docs/wordpress/earning-reports/) with data categorization by day, year, or vendors. Moreover, the admin can also view each vendor’s earning reports individually. +* Dokan Pro has an advanced support option for customers, allowing customers to directly interact with vendors and admin for product inquiry ([Product Enquiry module](https://dokan.co/wordpress/modules/product-enquiry/)). * Dokan Pro has update and support option for the customer. @@ -212,53 +212,53 @@ Never get bored with the old-fashioned appearance of your store. Have full contr * Store location widget. * And much more. -➡️ [LEARN MARKETPLACE MANAGEMENT TIPS & TRICKS](https://wedevs.com/docs/dokan/tutorials/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) ⬅️ +➡️ [LEARN MARKETPLACE MANAGEMENT TIPS & TRICKS](https://dokan.co/docs/wordpress/tutorials/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) ⬅️ = 💥💥 EXTENDED FEATURES BY SIMPLY ENABLING A TOGGLE BUTTON 💥💥 = Dokan comes with a number of advanced features & modules that boost your marketplace position, always keeping you one step ahead of the competition. Continuous innovations and features are brought with regular and timely releases. Check out the changelog [here](https://wedevs.com/docs/dokan/changelog/) -* [Stripe Express ](https://wedevs.com/dokan/modules/stripe-express/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=module)(Pro): Utilize popular payment gateways – Apple Pay and Google Pay, to execute transactions like scheduled payouts, request payments, and more. -* [Minimum Maximum Order](https://wedevs.com/dokan/modules/minimum-maximum-order?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Let your merchants set a minimum or maximum limit on order amounts (quantity or price). -* [Product Advertising](https://wedevs.com/dokan/modules/product-advertising?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Let the Vendors promote their selected products. This will enhance their chance of attracting more customers, and you as the admin can charge for this, thus resulting in more income for both Admin and Vendors. -* [Product Subscription](https://wedevs.com/dokan/modules/product-subscription/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Let your vendors sell subscription-based products and services easily from the frontend of your website. -* [Request for Quotation](https://wedevs.com/dokan/modules/request-for-quotation/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Customers can communicate with vendors by requesting quoted prices on wholesale orders. -* [Rank Math SEO](https://wedevs.com/dokan/modules/rank-math-seo) (Pro): Let your vendors manage their product SEO with an easy-to-navigate frontend dashboard and drive traffic to your eCommerce site. -* [Dokan MANGOPAY Integration](https://wedevs.com/dokan/modules/dokan-mangopay?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Make smooth transactions with split payments, multi vendor support, and run your business operations in Europe with ease using Mangopay. -* [Dokan Paypal Marketplace](https://wedevs.com/dokan/modules/dokan-paypal-marketplace) (Pro): Make your marketplace payment system smoother than ever with the advanced PayPal integration with all PayPal Commerce Platform (PCP) features. -* [PDF Invoice](https://wedevs.com/dokan/modules/pdf-invoice/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org): Create automated multi-seller invoices with templates & download them in PDF. -* [Product Duplicator](https://wedevs.com/dokan/modules/product-duplicator/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org): Enable vendors to copy a product that another seller is already selling. -* [Ajax Live Search](https://wedevs.com/dokan/modules/ajax-live-search/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Turn your regular search bar into an instant advanced product searching tool. -* [Geolocation](https://wedevs.com/dokan/modules/geolocation/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Let your customers search by location. -* [Live Chat](https://wedevs.com/dokan/modules/live-chat/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Allow your vendors to provide registered users and customers with real-time support. -* [Seller Verification](https://wedevs.com/dokan/modules/seller-verification/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Verify your vendors using their social profiles, phone, and even their photo ID. -* [Stripe Connect](https://wedevs.com/dokan/modules/stripe-connect/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Famous for its low fees, use Stripe to handle all your payments in real time and much more. -* [Wirecard(Moip)](https://wedevs.com/dokan/modules/moip/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Get to use the popular payment system Wirecard previously known as Moip with Dokan. -* [Subscriptions](https://wedevs.com/dokan/modules/subscription/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Create highly customized subscription packs and charge vendors as you like. -* [Vendor Review](https://wedevs.com/dokan/modules/dokan-vendor-review/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): This feature enables your customers to post a review for each store available on your site. -* [Vendor Staff Manager](https://wedevs.com/dokan/modules/vendor-staff-manager/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Let the sellers of your multivendor marketplace have a unique opportunity to appoint an unlimited number of staff to manage their personal eCommerce stores. -* [Dokan WooCommerce Booking](https://wedevs.com/dokan/modules/woocommerce-booking-integration/) (Pro): Allows vendors to create & sell bookable products and customers to customize their booking orders. -* [Dokan Simple Auctions](https://wedevs.com/dokan/modules/dokan-simple-auctions/) (Pro): Offer your vendors to enable auction-able products selling features. -* [Report Abuse](https://wedevs.com/dokan/modules/report-abuse/) (Pro): Allows your customers to report fraudulent products to maintain a reliable and honest marketplace, where vendors are not able to take advantage of customers or engage in wrongdoings. -* [Follow Store](https://wedevs.com/dokan/modules/follow-store/) (Pro): Allows customers to follow their favorite vendor store. It helps keep the customer updated about the vendor. -* [Razorpay Integration](https://wedevs.com/dokan/modules/dokan-razorpay/) (Pro): Get a competitive advantage with the route and various international & local payment modes using Razorpay Integration. -* [EU Compliance Fields](https://wedevs.com/dokan/modules/eu-compliance-fields/) (Pro): Provide the fields required by EU law for both customers and vendors with this module. Integration with invoicing lets you control what to display in the invoices. -* [Dokan Product Addon](https://wedevs.com/dokan/modules/product-addons/) (Pro): Let customers add additional items to a product and be billed separately for those items. This module makes your marketplace more sophisticated and exclusive. -* [Colour Scheme Customizer](https://wedevs.com/dokan/modules/color-scheme-customizer/) (Pro): Using the Color Scheme Customizer, you can customize the dashboard attributes and make the vendor dashboards more appealing. -* [Product Enquiry](https://wedevs.com/dokan/modules/product-enquiry/) (Pro): Allow your visitors and customers to contact vendors about the product from a product page with this module. This will let customers/visitors send an email inquiry to the vendor asking questions. -* [Return and Warranty Request](https://wedevs.com/dokan/modules/rma/) (Pro): Dokan Return and Warranty Request module enables you to allow vendors to offer customized return and warranty facilities for their sold products to customers. -* [Single Product Multivendor](https://wedevs.com/dokan/modules/single-product-multivendor/) (Pro): This module allows a vendor to sell other vendors' products. Any vendor can add a product from another vendor's store to their own store with a single click and customize it as they like. -* [Product Store Support](https://wedevs.com/dokan/modules/store-support/) (Pro): Using this module you can provide your customers with a ticket-based support system right from the store page. -* [Vendor Vacation](https://wedevs.com/dokan/modules/vendor-vacation/) (Pro): Vendors can close their stores and put all their products offline temporarily using the Vendor Vacation module. -* [Wholesale Module](https://wedevs.com/dokan/modules/wholesale/) (Pro): Using this module, the admin of the marketplace will be able to allow the vendors to sell products in a bulk wholesale quantity. -* [Vendor Analytics](https://wedevs.com/dokan/modules/vendor-analytics/) (Pro): Your vendors can easily see the analytics for their stores right from the frontend. Using this module vendors can improve their performance with data-driven decisions. -* [WPML Integration](https://wedevs.com/dokan/modules/wpml-integration/): Using this module with the famous WPML plugin you can enable multiple languages on your marketplace. -* [WC Vendor Migrator](https://wedevs.com/docs/dokan/free-modules/wc-vendors-to-dokan-importer/): Using this feature, you will be able to import all of your sellers and order data from your WC Vendors-enabled marketplace to a Dokan-powered marketplace. -* [Seller Badge](https://wedevs.com/dokan/modules/seller-badge/) (Pro): Give your sellers a boost of motivation with this module. Badges allow vendors to show off their achievements to store visitors and aspire for higher badges with more active marketplace activities -* [Vendor Dashboard](https://wedevs.com/dokan/modules/vendor-dashboard/): Researching industry best standards and experimenting with countless UI designs, the Dokan Vendor Dashboard add-on provides an organized look with categorized functions so that your vendors can reach optimal efficiency easily -* [Dokan Delivery Driver App](https://wedevs.com/dokan/dokan-delivery-driver-app/) (Pro): Ensure a smooth, risk-free delivery of products with verified drivers and live tracking ensuring admin, vendor, and customers can follow their products from the warehouse to customers doorsteps. - -[AND MANY MORE](https://wedevs.com/dokan/modules/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) ⏩ +* [Stripe Express ](https://dokan.co/wordpress/modules/stripe-express/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=module)(Pro): Utilize popular payment gateways – Apple Pay and Google Pay, to execute transactions like scheduled payouts, request payments, and more. +* [Minimum Maximum Order](https://dokan.co/wordpress/modules/minimum-maximum-order/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Let your merchants set a minimum or maximum limit on order amounts (quantity or price). +* [Product Advertising](https://dokan.co/wordpress/modules/product-advertising/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Let the Vendors promote their selected products. This will enhance their chance of attracting more customers, and you as the admin can charge for this, thus resulting in more income for both Admin and Vendors. +* [Product Subscription](https://dokan.co/wordpress/modules/product-subscription/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Let your vendors sell subscription-based products and services easily from the frontend of your website. +* [Request for Quotation](https://dokan.co/wordpress/modules/request-for-quotation/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Customers can communicate with vendors by requesting quoted prices on wholesale orders. +* [Rank Math SEO](https://dokan.co/wordpress/modules/rank-math-seo/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Let your vendors manage their product SEO with an easy-to-navigate frontend dashboard and drive traffic to your eCommerce site. +* [Dokan MANGOPAY Integration](https://dokan.co/wordpress/modules/dokan-mangopay-integration/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Make smooth transactions with split payments, multi vendor support, and run your business operations in Europe with ease using Mangopay. +* [Dokan Paypal Marketplace](https://dokan.co/wordpress/modules/dokan-paypal-marketplace/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Make your marketplace payment system smoother than ever with the advanced PayPal integration with all PayPal Commerce Platform (PCP) features. +* [PDF Invoice](https://dokan.co/wordpress/modules/pdf-invoice-2/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org): Create automated multi-seller invoices with templates & download them in PDF. +* [Product Duplicator](https://dokan.co/wordpress/modules/product-duplicator/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org): Enable vendors to copy a product that another seller is already selling. +* [Ajax Live Search](https://dokan.co/wordpress/modules/ajax-live-search/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Turn your regular search bar into an instant advanced product searching tool. +* [Geolocation](https://dokan.co/wordpress/modules/geolocation/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Let your customers search by location. +* [Live Chat](https://dokan.co/wordpress/modules/live-chat/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Allow your vendors to provide registered users and customers with real-time support. +* [Seller Verification](https://dokan.co/wordpress/modules/seller-verification/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Verify your vendors using their social profiles, phone, and even their photo ID. +* [Stripe Connect](https://dokan.co/wordpress/modules/stripe-connect/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Famous for its low fees, use Stripe to handle all your payments in real time and much more. +* [Wirecard(Moip)](https://dokan.co/wordpress/modules/moip/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Get to use the popular payment system Wirecard previously known as Moip with Dokan. +* [Subscriptions](https://dokan.co/wordpress/modules/subscriptions/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Create highly customized subscription packs and charge vendors as you like. +* [Vendor Review](https://dokan.co/wordpress/modules/dokan-vendor-review/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): This feature enables your customers to post a review for each store available on your site. +* [Vendor Staff Manager](https://dokan.co/wordpress/modules/vendor-staff-manager/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Let the sellers of your multivendor marketplace have a unique opportunity to appoint an unlimited number of staff to manage their personal eCommerce stores. +* [Dokan WooCommerce Booking](https://dokan.co/wordpress/modules/woocommerce-booking-integration/) (Pro): Allows vendors to create & sell bookable products and customers to customize their booking orders. +* [Dokan Simple Auctions](https://dokan.co/wordpress/modules/dokan-simple-auctions/) (Pro): Offer your vendors to enable auction-able products selling features. +* [Report Abuse](https://dokan.co/wordpress/modules/report-abuse/) (Pro): Allows your customers to report fraudulent products to maintain a reliable and honest marketplace, where vendors are not able to take advantage of customers or engage in wrongdoings. +* [Follow Store](https://dokan.co/wordpress/modules/follow-store/) (Pro): Allows customers to follow their favorite vendor store. It helps keep the customer updated about the vendor. +* [Razorpay Integration](https://dokan.co/wordpress/modules/razorpay/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Get a competitive advantage with the route and various international & local payment modes using Razorpay Integration. +* [EU Compliance Fields](https://dokan.co/wordpress/modules/eu-compliance-fields/) (Pro): Provide the fields required by EU law for both customers and vendors with this module. Integration with invoicing lets you control what to display in the invoices. +* [Dokan Product Addon](https://dokan.co/wordpress/modules/product-addon/) (Pro): Let customers add additional items to a product and be billed separately for those items. This module makes your marketplace more sophisticated and exclusive. +* [Colour Scheme Customizer](https://dokan.co/wordpress/modules/color-scheme-customizer/) (Pro): Using the Color Scheme Customizer, you can customize the dashboard attributes and make the vendor dashboards more appealing. +* [Product Enquiry](https://dokan.co/wordpress/modules/product-enquiry/) (Pro): Allow your visitors and customers to contact vendors about the product from a product page with this module. This will let customers/visitors send an email inquiry to the vendor asking questions. +* [Return and Warranty Request](https://dokan.co/wordpress/modules/return-and-warranty-request/) (Pro): Dokan Return and Warranty Request module enables you to allow vendors to offer customized return and warranty facilities for their sold products to customers. +* [Single Product Multivendor](https://dokan.co/wordpress/modules/single-product-multivendor/) (Pro): This module allows a vendor to sell other vendors' products. Any vendor can add a product from another vendor's store to their own store with a single click and customize it as they like. +* [Product Store Support](https://dokan.co/wordpress/modules/store-support/) (Pro): Using this module you can provide your customers with a ticket-based support system right from the store page. +* [Vendor Vacation](https://dokan.co/wordpress/modules/vendor-vacation/) (Pro): Vendors can close their stores and put all their products offline temporarily using the Vendor Vacation module. +* [Wholesale Module](https://dokan.co/wordpress/modules/wholesale/) (Pro): Using this module, the admin of the marketplace will be able to allow the vendors to sell products in a bulk wholesale quantity. +* [Vendor Analytics](https://dokan.co/wordpress/modules/vendor-analytics/) (Pro): Your vendors can easily see the analytics for their stores right from the frontend. Using this module vendors can improve their performance with data-driven decisions. +* [WPML Integration](https://dokan.co/wordpress/modules/wpml-integration/): Using this module with the famous WPML plugin you can enable multiple languages on your marketplace. +* [WC Vendor Migrator](https://dokan.co/docs/wordpress/free-modules/wc-vendors-to-dokan-importer/): Using this feature, you will be able to import all of your sellers and order data from your WC Vendors-enabled marketplace to a Dokan-powered marketplace. +* [Seller Badge](https://dokan.co/wordpress/modules/seller-badge/) (Pro): Give your sellers a boost of motivation with this module. Badges allow vendors to show off their achievements to store visitors and aspire for higher badges with more active marketplace activities +* [Vendor Dashboard](https://dokan.co/wordpress/modules/vendor-dashboard/): Researching industry best standards and experimenting with countless UI designs, the Dokan Vendor Dashboard add-on provides an organized look with categorized functions so that your vendors can reach optimal efficiency easily +* [Dokan Delivery Driver App](https://dokan.co/wordpress/delivery-driver-app/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Ensure a smooth, risk-free delivery of products with verified drivers and live tracking ensuring admin, vendor, and customers can follow their products from the warehouse to customers doorsteps. + +[AND MANY MORE](https://dokan.co/wordpress/modules/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) ⏩ = WE KNOW WE ARE NOT PERFECT THAT’S WHY WE ARE IMPROVING EVERYDAY = @@ -311,7 +311,7 @@ A. Yes, that's how Dokan works. In every sales, you can cut a commission from a A. Obviously, you can use this on a single seller site to give them a nice front-end experience. = Q. How to upgrade to the Pro version? -A. Just install and activate the PRO version without deleting the free plugin. All your data will be safe on the database and some extra features will be added. If you feel something may go wrong, please consult with our [support](https://wedevs.com/contact/) staff first. +A. Just install and activate the PRO version without deleting the free plugin. All your data will be safe on the database and some extra features will be added. If you feel something may go wrong, please consult with our [support](https://dokan.co/contact/) staff first. == Screenshots == From f66bfebce5830af2749a3e2e8eae14ba5fdf2ecb Mon Sep 17 00:00:00 2001 From: Nurul Umbhiya Date: Fri, 25 Aug 2023 16:31:20 +0600 Subject: [PATCH 10/69] chore: bump version to 3.8.1 --- README.md | 159 +++++++++++++------------ assets/js/login-form-popup.js | 2 +- dokan.php | 4 +- includes/ReverseWithdrawal/Helper.php | 2 +- languages/dokan-lite.pot | 164 +++++++++++++------------- package.json | 2 +- readme.txt | 7 +- templates/whats-new.php | 34 ++++-- 8 files changed, 200 insertions(+), 174 deletions(-) diff --git a/README.md b/README.md index db8f756f5a..78fc21e980 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ **WC requires at least:** 5.0.0 **WC tested up to:** 8.0.2 **Requires PHP:** 7.3 -**Stable tag:** 3.8.0 +**Stable tag:** 3.8.1 **License:** GPLv2 or later **License URI:** http://www.gnu.org/licenses/gpl-2.0.html @@ -18,7 +18,7 @@ The pioneer multi-vendor plugin for WordPress. Start your own marketplace in min ### DOKAN MULTIVENDOR MARKETPLACE PLUGIN FOR WORDPRESS - POWERED BY WOOCOMMERCE ### -[Dokan](https://wedevs.com/dokan/) is the best frontend multi-vendor marketplace plugin on WordPress, powered by WooCommerce. It helps you build your own marketplace similar to Amazon, Shopify, eBay, and Magento in under 30 minutes. +[Dokan](https://dokan.co/wordpress/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) is the best frontend multi-vendor marketplace plugin on WordPress, powered by WooCommerce. It helps you build your own marketplace similar to Amazon, Shopify, eBay, and Magento in under 30 minutes. Dokan is the fastest way to launch an eCommerce business and earn through commissions with products ranging from digital, and physical to variable products. @@ -26,15 +26,15 @@ Hear what reputed WordPress influencer and online business strategist, Darrel Wi [youtube https://www.youtube.com/watch?v=nDAxNypVxdw] -👉 **Official Free Demo Link:** Try out multiple [Dokan Demo sites](https://wedevs.com/dokan/demo/) +👉 **Official Free Demo Link:** Try out multiple [Dokan Demo sites](https://dokan.co/wordpress/demo/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) -👉 **Learn More About Dokan (PRO):** [All The Features of Dokan](https://wedevs.com/dokan/features/) +👉 **Learn More About Dokan (PRO):** [All The Features of Dokan](https://dokan.co/wordpress/features/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) -👉 Check out the **comprehensive customer [Dokan Mobile App](https://wedevs.com/dokan/dokan-mobile-app)** to enhance your Dokan marketplace shopping experience. +👉 Check out the **comprehensive customer [Dokan Mobile App](https://dokan.co/wordpress/dokan-mobile-app/)** to enhance your Dokan marketplace shopping experience. -👉 **Easy Delivery Management with [Dokan Delivery Driver App](https://wedevs.com/dokan/dokan-delivery-driver-app/)** (Pro) with real-time order tracking, live timeline updates, and an asynchronous system between admin, vendors, customers, and delivery drivers. +👉 **Easy Delivery Management with [Dokan Delivery Driver App](https://dokan.co/wordpress/delivery-driver-app/)** (Pro) with real-time order tracking, live timeline updates, and an asynchronous system between admin, vendors, customers, and delivery drivers. -👉 **Confused about how to get started?** Read our [Blogs](https://wedevs.com/blog/) +👉 **Confused about how to get started?** Read our blogs from [weDevs](https://wedevs.com/blog/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) and [Dokan](https://dokan.co/blog/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) ### PLACES WHERE DOKAN HAS BEEN FEATURED ### @@ -43,7 +43,7 @@ Hear what reputed WordPress influencer and online business strategist, Darrel Wi 🏆 [How to Setup a WordPress Marketplace with Multiple Vendors](https://learnwoo.com/wordpress-marketplace/) -🏆 [How to create a Multi-Vendor Marketplace for WordPress using Dokan](https://topnotchthemes.com/how-to-create-a-multi-vendor-marketplace-for-wordpress-using-dokan/) +🏆 [How to create a Multi-Vendor Marketplace for WordPress using Dokan](https://youtu.be/_Vv5T7qqhoE) 🏆 [Dokan Theme Review: A Multi-Vendor Marketplace Theme for WordPress](https://wpmayor.com/dokan-theme-review-multi-vendor-marketplace-theme-wordpress/) @@ -73,15 +73,15 @@ Hear what reputed WordPress influencer and online business strategist, Darrel Wi ### THE BEST FRONTEND USER INTERFACE ### -To provide a comprehensive frontend experience, every vendor has a [personalized customizable dashboard](https://wedevs.com/dokan/features/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) on the store frontend. They can easily navigate and control every aspect of their marketplace from there. Backend access is restricted to only the admin, which sets Dokan apart from other marketplace plugins. However, all Dokan [modules](https://wedevs.com/dokan/modules) are frontend compatible so that both the admin and vendors can enjoy the benefits and advanced features of Dokan. +To provide a comprehensive frontend experience, every vendor has a [personalized customizable dashboard](https://dokan.co/wordpress/features/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) on the store frontend. They can easily navigate and control every aspect of their marketplace from there. Backend access is restricted to only the admin, which sets Dokan apart from other marketplace plugins. However, all Dokan [modules](https://dokan.co/wordpress/modules/) are frontend compatible so that both the admin and vendors can enjoy the benefits and advanced features of Dokan. -Dokan (Pro) comes with a free, fully responsive eCommerce theme - [Dokani](https://wedevs.com/dokan/dokani-theme/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) with special widgets to ensure you can customize the theme however you like. +Dokan (Pro) comes with a free, fully responsive eCommerce theme - [Dokani](https://dokan.co/wordpress/dokani-theme/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) with special widgets to ensure you can customize the theme however you like. -Dokan is also compatible with the [Otel theme](https://wedevs.com/dokan/otel-theme/), a customizable and fully responsive WordPress theme for any hotel booking management site. +Dokan is also compatible with the [Otel theme](https://dokan.co/wordpress/otel-theme/), a customizable and fully responsive WordPress theme for any hotel booking management site. ### IT’S FAST AND EASY TO USE ### -Your business operation with Dokan comes with the assurance of a smooth and fast experience. The set up process takes less than an hour, and you can get your marketplace up and running within a day. Everything is bound to match your expectation because that is how the experience is designed, taking into account the best intuitive practices from popular eCommerce activators like WooCommerce, Bigcommerce, and others. +Your business operation with Dokan comes with the assurance of a smooth and fast experience. The setup process takes less than an hour, and you can get your marketplace up and running within a day. Everything is bound to match your expectation because that is how the experience is designed, taking into account the best intuitive practices from popular eCommerce activators like WooCommerce, Bigcommerce, and others. ### A RELIABLE GROWING PLATFORM & COMMUNITY ### @@ -95,8 +95,8 @@ Dokan Multivendor Marketplace plugin allows you to have an unlimited number of v * Physical products * Downloadable products * Variable products -* Bookable products through the [Dokan WC Bookings Integration](https://wedevs.com/dokan/modules/woocommerce-booking-integration/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) -* Auction products through the [Dokan Simple Auction Integration](https://wedevs.com/dokan/modules/dokan-simple-auctions/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) +* Bookable products through the [Dokan WC Bookings Integration](https://dokan.co/wordpress/modules/woocommerce-booking-integration/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) +* Auction products through the [Dokan Simple Auction Integration](https://dokan.co/wordpress/modules/dokan-simple-auctions/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) ### EARN IN MULTIPLE WAYS ### @@ -106,32 +106,32 @@ Profit doesn’t only rely on sales. Dokan offers multiple ways to earn money, i As an admin, Dokan gives you complete control over everything that happens in your marketplace. Define standout features of marketplace operations like product publishing, vendor registration, subscription renewal, and every other vendor activity. -In the [Pro Version](https://wedevs.com/dokan/pricing/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org), there are additional stunning features, updates, and scope for powerful modules to provide more admin power and control while improving the marketplace functionality. +In the [Pro Version](https://dokan.co/wordpress/pricing/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org), there are additional stunning features, updates, and scope for powerful modules to provide more admin power and control while improving the marketplace functionality. ### DYNAMIC SETTINGS FOR SHIPPING CONDITIONS ### Admin can extend flexibility to individual vendors to take control over their shipping methods based on various conditions, such as setting multiple rates, tracking shipments with available integrations, and much more. -* [Vendor Table Rate Shipping](https://wedevs.com/dokan/modules/table-rate-shipping) (Pro) – Multi-vendor support on setting shipping rates based on location, price, weight, shipping class, or item count of the shipment. +* [Vendor Table Rate Shipping](https://dokan.co/wordpress/modules/table-rate-shipping/) (Pro) – Multi-vendor support on setting shipping rates based on location, price, weight, shipping class, or item count of the shipment. -* [Delivery Time](https://wedevs.com/dokan/modules/delivery-time) (Pro) – Let customers choose the time and date they want their product delivered. -* [ShipStation](https://wedevs.com/dokan/modules/shipstation/) (Pro) – Enable vendors to import, manage, and ship orders hassle-free with the leading shipping application for online marketplaces. +* [Delivery Time](https://dokan.co/wordpress/modules/delivery-time/) (Pro) – Let customers choose the time and date they want their product delivered. +* [ShipStation](https://dokan.co/wordpress/modules/shipstation/) (Pro) – Enable vendors to import, manage, and ship orders hassle-free with the leading shipping application for online marketplaces. -* Your vendors will also be able to use [zone-wise shipping management](https://wedevs.com/docs/dokan/vendor-guide/dokan-zone-wise-shipping/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). +* Your vendors will also be able to use [zone-wise shipping management](https://dokan.co/docs/wordpress/vendor-guide/dokan-zone-wise-shipping/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). ### PLAYS NICELY WITH OTHER PLUGINS ### Dokan is compatible with more than 70+ plugins & 71+ themes so you don’t have to worry about anything when it comes to compatibility. From shipping plugins to payment plugins to wallets, you have complete peace of mind when building an eCommerce business with Dokan for a global audience. -➡️ [Check Out Dokan Compatible Plugins & Themes](https://wedevs.com/dokan/compatible-plugins/) ⬅️ +➡️ [Check Out Dokan Compatible Plugins & Themes](https://dokan.co/wordpress/compatible-plugins/) ⬅️ ### MORE FREEDOM TO CUSTOMIZE THE STORE ### Never get bored with the old-fashioned appearance of your store. Have full control over your store customization and give life to your imagination with Dokan integrations. -* [Elementor Customizer](https://wedevs.com/dokan/modules/elementor/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Get the complete store customization authority for the vendor store page to change its default appearance hassle-free. Simply get the customizer and modify the global outlook of the vendor store pages. Drag & drop more than 12 incredible store widgets **made exclusively for Dokan** and place them anywhere you want it. Save as many customized templates as you want. +* [Elementor Customizer](https://dokan.co/wordpress/modules/elementor/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Get the complete store customization authority for the vendor store page to change its default appearance hassle-free. Simply get the customizer and modify the global outlook of the vendor store pages. Drag & drop more than 12 incredible store widgets **made exclusively for Dokan** and place them anywhere you want it. Save as many customized templates as you want. ### 🎯🎯 FEATURES 🎯🎯 ### @@ -141,9 +141,9 @@ Never get bored with the old-fashioned appearance of your store. Have full contr * Beautiful storefront styles with contact details and widgets. -* [Store location map on the store front](https://wedevs.com/dokan/modules/geolocation/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). +* [Store location map on the store front](https://dokan.co/wordpress/modules/geolocation/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). -* [Single products can be offered by different merchants](https://wedevs.com/dokan/modules/single-product-multivendor/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). +* [Single products can be offered by different merchants](https://dokan.co/wordpress/modules/single-product-multivendor/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). **Frontend Dashboard For Each Seller** @@ -157,13 +157,13 @@ Never get bored with the old-fashioned appearance of your store. Have full contr * Vendor commissions are automatically collected to reduce administrative burden. -* [Per vendor percentage override](https://wedevs.com/docs/dokan/tutorials/how-to-setup-dokan-vendor-commission/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) eases the manual condition of specially setting different commission settings for vendors. Create a global commission structure on the marketplace with this feature. +* [Per vendor percentage override](https://dokan.co/docs/wordpress/tutorials/how-to-setup-dokan-vendor-commission/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) eases the manual condition of specially setting different commission settings for vendors. Create a global commission structure on the marketplace with this feature. **Hassle Free Payments & Transactions** * Utilize 100+ payment integrations of Dokan including GooglePay, ApplePay, Stripe Express, MANGOPAY, Razorpay. -* [Reverse Withdrawal](https://wedevs.com/docs/dokan/withdraw/dokan-reverse-withdrawal/) facilitates commission collection for admins in instances when it cannot be collected via the regular commission system, such as when vendors ship orders with **cash on delivery**. +* [Reverse Withdrawal](https://dokan.co/docs/wordpress/withdraw/dokan-reverse-withdrawal/) facilitates commission collection for admins in instances when it cannot be collected via the regular commission system, such as when vendors ship orders with **cash on delivery**. * Automatic Payment Disbursement eases the trouble of manually calculating commissions of each vendor. The feature enables customer payments to be split right away and be disbursed to admin and vendors based on marketplace settings. @@ -171,24 +171,24 @@ Never get bored with the old-fashioned appearance of your store. Have full contr * Create and manage your products from the frontend. * [Create variable or downloadable products](https://wedevs.com/87025/types-of-products-you-can-create-using-woocommerce/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). -* Vendors have the option to [manage product attributes](https://wedevs.com/docs/dokan/vendor-dashboard/products/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). -* Vendors can manage downloadable [product permission, expiry date, and download limit](https://wedevs.com/docs/dokan/tutorials/how-to-create-a-digital-product/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). +* Vendors have the option to [manage product attributes](https://dokan.co/docs/wordpress/vendor-dashboard/products/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). +* Vendors can manage downloadable [product permission, expiry date, and download limit](https://dokan.co/docs/wordpress/tutorials/how-to-create-a-digital-product/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro). **Detailed Reports Of Your Marketplace (Pro)** -* Vendors can see their [sales report, generate statements and overview from the frontend](https://wedevs.com/dokan/modules/vendor-analytics) (Vendor Analytics). -* Admins can [overview orders](https://wedevs.com/docs/dokan/vendor-dashboard/orders/) and filter by sale, date, top vendors, or top earners. -* Let Vendors easily migrate from other marketplaces to your Dokan marketplace using the [Export/Import feature](https://wedevs.com/dokan/modules/export-import/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro) without losing any product data, including stock value, SKU information, tags and other information. -* Admin has access to all customer reviews on the marketplace. The customer can leave [reviews for a product/vendor](https://wedevs.com/dokan/modules/dokan-vendor-review/) they are satisfied with. The vendor cannot change a review, promoting transparency. +* Vendors can see their [sales report, generate statements and overview from the frontend](https://dokan.co/wordpress/modules/vendor-analytics/) (Vendor Analytics). +* Admins can [overview orders](https://dokan.co/docs/wordpress/vendor-dashboard/orders/) and filter by sale, date, top vendors, or top earners. +* Let Vendors easily migrate from other marketplaces to your Dokan marketplace using the [Export/Import feature](https://dokan.co/wordpress/modules/export-import/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro) without losing any product data, including stock value, SKU information, tags and other information. +* Admin has access to all customer reviews on the marketplace. The customer can leave [reviews for a product/vendor](https://dokan.co/wordpress/modules/dokan-vendor-review/) they are satisfied with. The vendor cannot change a review, promoting transparency. **Vendors Discounts Creation & Management** * Configure coupon expiration and restrictions. * All product reviews are managed by vendors (with admin override), and make decisions on whether to display the review on their site. -* Vendors will be able to create diverse [coupons](https://wedevs.com/docs/dokan/vendor-dashboard/coupons-2/) by setting different rules based on usage limit, expiration date, excluding sale items while also specifying only certain products on which the coupons are valid on (Pro). +* Vendors will be able to create diverse [coupons](https://dokan.co/docs/wordpress/vendor-dashboard/coupons-2/) by setting different rules based on usage limit, expiration date, excluding sale items while also specifying only certain products on which the coupons are valid on (Pro). **💪‍ ADMINS CONTROL EVERY ASPECT OF THE MARKETPLACE** * Admin can view and modify vendor store products. -* Admin can view a comprehensive [Admin Earning Report](https://wedevs.com/docs/dokan/earning-reports/) with data categorization by day, year, or vendors. Moreover, the admin can also view each vendor’s earning reports individually. -* Dokan Pro has an advanced support option for customers, allowing customers to directly interact with vendors and admin for product inquiry ([Product Enquiry module](https://wedevs.com/dokan/modules/)). +* Admin can view a comprehensive [Admin Earning Report](https://dokan.co/docs/wordpress/earning-reports/) with data categorization by day, year, or vendors. Moreover, the admin can also view each vendor’s earning reports individually. +* Dokan Pro has an advanced support option for customers, allowing customers to directly interact with vendors and admin for product inquiry ([Product Enquiry module](https://dokan.co/wordpress/modules/product-enquiry/)). * Dokan Pro has update and support option for the customer. @@ -212,53 +212,53 @@ Never get bored with the old-fashioned appearance of your store. Have full contr * Store location widget. * And much more. -➡️ [LEARN MARKETPLACE MANAGEMENT TIPS & TRICKS](https://wedevs.com/docs/dokan/tutorials/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) ⬅️ +➡️ [LEARN MARKETPLACE MANAGEMENT TIPS & TRICKS](https://dokan.co/docs/wordpress/tutorials/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) ⬅️ ### 💥💥 EXTENDED FEATURES BY SIMPLY ENABLING A TOGGLE BUTTON 💥💥 ### Dokan comes with a number of advanced features & modules that boost your marketplace position, always keeping you one step ahead of the competition. Continuous innovations and features are brought with regular and timely releases. Check out the changelog [here](https://wedevs.com/docs/dokan/changelog/) -* [Stripe Express ](https://wedevs.com/dokan/modules/stripe-express/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=module)(Pro): Utilize popular payment gateways – Apple Pay and Google Pay, to execute transactions like scheduled payouts, request payments, and more. -* [Minimum Maximum Order](https://wedevs.com/dokan/modules/minimum-maximum-order?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Let your merchants set a minimum or maximum limit on order amounts (quantity or price). -* [Product Advertising](https://wedevs.com/dokan/modules/product-advertising?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Let the Vendors promote their selected products. This will enhance their chance of attracting more customers, and you as the admin can charge for this, thus resulting in more income for both Admin and Vendors. -* [Product Subscription](https://wedevs.com/dokan/modules/product-subscription/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Let your vendors sell subscription-based products and services easily from the frontend of your website. -* [Request for Quotation](https://wedevs.com/dokan/modules/request-for-quotation/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Customers can communicate with vendors by requesting quoted prices on wholesale orders. -* [Rank Math SEO](https://wedevs.com/dokan/modules/rank-math-seo) (Pro): Let your vendors manage their product SEO with an easy-to-navigate frontend dashboard and drive traffic to your eCommerce site. -* [Dokan MANGOPAY Integration](https://wedevs.com/dokan/modules/dokan-mangopay?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Make smooth transactions with split payments, multi vendor support, and run your business operations in Europe with ease using Mangopay. -* [Dokan Paypal Marketplace](https://wedevs.com/dokan/modules/dokan-paypal-marketplace) (Pro): Make your marketplace payment system smoother than ever with the advanced PayPal integration with all PayPal Commerce Platform (PCP) features. -* [PDF Invoice](https://wedevs.com/dokan/modules/pdf-invoice/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org): Create automated multi-seller invoices with templates & download them in PDF. -* [Product Duplicator](https://wedevs.com/dokan/modules/product-duplicator/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org): Enable vendors to copy a product that another seller is already selling. -* [Ajax Live Search](https://wedevs.com/dokan/modules/ajax-live-search/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Turn your regular search bar into an instant advanced product searching tool. -* [Geolocation](https://wedevs.com/dokan/modules/geolocation/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Let your customers search by location. -* [Live Chat](https://wedevs.com/dokan/modules/live-chat/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Allow your vendors to provide registered users and customers with real-time support. -* [Seller Verification](https://wedevs.com/dokan/modules/seller-verification/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Verify your vendors using their social profiles, phone, and even their photo ID. -* [Stripe Connect](https://wedevs.com/dokan/modules/stripe-connect/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Famous for its low fees, use Stripe to handle all your payments in real time and much more. -* [Wirecard(Moip)](https://wedevs.com/dokan/modules/moip/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Get to use the popular payment system Wirecard previously known as Moip with Dokan. -* [Subscriptions](https://wedevs.com/dokan/modules/subscription/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Create highly customized subscription packs and charge vendors as you like. -* [Vendor Review](https://wedevs.com/dokan/modules/dokan-vendor-review/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): This feature enables your customers to post a review for each store available on your site. -* [Vendor Staff Manager](https://wedevs.com/dokan/modules/vendor-staff-manager/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Let the sellers of your multivendor marketplace have a unique opportunity to appoint an unlimited number of staff to manage their personal eCommerce stores. -* [Dokan WooCommerce Booking](https://wedevs.com/dokan/modules/woocommerce-booking-integration/) (Pro): Allows vendors to create & sell bookable products and customers to customize their booking orders. -* [Dokan Simple Auctions](https://wedevs.com/dokan/modules/dokan-simple-auctions/) (Pro): Offer your vendors to enable auction-able products selling features. -* [Report Abuse](https://wedevs.com/dokan/modules/report-abuse/) (Pro): Allows your customers to report fraudulent products to maintain a reliable and honest marketplace, where vendors are not able to take advantage of customers or engage in wrongdoings. -* [Follow Store](https://wedevs.com/dokan/modules/follow-store/) (Pro): Allows customers to follow their favorite vendor store. It helps keep the customer updated about the vendor. -* [Razorpay Integration](https://wedevs.com/dokan/modules/dokan-razorpay/) (Pro): Get a competitive advantage with the route and various international & local payment modes using Razorpay Integration. -* [EU Compliance Fields](https://wedevs.com/dokan/modules/eu-compliance-fields/) (Pro): Provide the fields required by EU law for both customers and vendors with this module. Integration with invoicing lets you control what to display in the invoices. -* [Dokan Product Addon](https://wedevs.com/dokan/modules/product-addons/) (Pro): Let customers add additional items to a product and be billed separately for those items. This module makes your marketplace more sophisticated and exclusive. -* [Colour Scheme Customizer](https://wedevs.com/dokan/modules/color-scheme-customizer/) (Pro): Using the Color Scheme Customizer, you can customize the dashboard attributes and make the vendor dashboards more appealing. -* [Product Enquiry](https://wedevs.com/dokan/modules/product-enquiry/) (Pro): Allow your visitors and customers to contact vendors about the product from a product page with this module. This will let customers/visitors send an email inquiry to the vendor asking questions. -* [Return and Warranty Request](https://wedevs.com/dokan/modules/rma/) (Pro): Dokan Return and Warranty Request module enables you to allow vendors to offer customized return and warranty facilities for their sold products to customers. -* [Single Product Multivendor](https://wedevs.com/dokan/modules/single-product-multivendor/) (Pro): This module allows a vendor to sell other vendors' products. Any vendor can add a product from another vendor's store to their own store with a single click and customize it as they like. -* [Product Store Support](https://wedevs.com/dokan/modules/store-support/) (Pro): Using this module you can provide your customers with a ticket-based support system right from the store page. -* [Vendor Vacation](https://wedevs.com/dokan/modules/vendor-vacation/) (Pro): Vendors can close their stores and put all their products offline temporarily using the Vendor Vacation module. -* [Wholesale Module](https://wedevs.com/dokan/modules/wholesale/) (Pro): Using this module, the admin of the marketplace will be able to allow the vendors to sell products in a bulk wholesale quantity. -* [Vendor Analytics](https://wedevs.com/dokan/modules/vendor-analytics/) (Pro): Your vendors can easily see the analytics for their stores right from the frontend. Using this module vendors can improve their performance with data-driven decisions. -* [WPML Integration](https://wedevs.com/dokan/modules/wpml-integration/): Using this module with the famous WPML plugin you can enable multiple languages on your marketplace. -* [WC Vendor Migrator](https://wedevs.com/docs/dokan/free-modules/wc-vendors-to-dokan-importer/): Using this feature, you will be able to import all of your sellers and order data from your WC Vendors-enabled marketplace to a Dokan-powered marketplace. -* [Seller Badge](https://wedevs.com/dokan/modules/seller-badge/) (Pro): Give your sellers a boost of motivation with this module. Badges allow vendors to show off their achievements to store visitors and aspire for higher badges with more active marketplace activities -* [Vendor Dashboard](https://wedevs.com/dokan/modules/vendor-dashboard/): Researching industry best standards and experimenting with countless UI designs, the Dokan Vendor Dashboard add-on provides an organized look with categorized functions so that your vendors can reach optimal efficiency easily -* [Dokan Delivery Driver App](https://wedevs.com/dokan/dokan-delivery-driver-app/) (Pro): Ensure a smooth, risk-free delivery of products with verified drivers and live tracking ensuring admin, vendor, and customers can follow their products from the warehouse to customers doorsteps. - -[AND MANY MORE](https://wedevs.com/dokan/modules/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) ⏩ +* [Stripe Express ](https://dokan.co/wordpress/modules/stripe-express/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=module)(Pro): Utilize popular payment gateways – Apple Pay and Google Pay, to execute transactions like scheduled payouts, request payments, and more. +* [Minimum Maximum Order](https://dokan.co/wordpress/modules/minimum-maximum-order/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Let your merchants set a minimum or maximum limit on order amounts (quantity or price). +* [Product Advertising](https://dokan.co/wordpress/modules/product-advertising/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Let the Vendors promote their selected products. This will enhance their chance of attracting more customers, and you as the admin can charge for this, thus resulting in more income for both Admin and Vendors. +* [Product Subscription](https://dokan.co/wordpress/modules/product-subscription/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Let your vendors sell subscription-based products and services easily from the frontend of your website. +* [Request for Quotation](https://dokan.co/wordpress/modules/request-for-quotation/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Customers can communicate with vendors by requesting quoted prices on wholesale orders. +* [Rank Math SEO](https://dokan.co/wordpress/modules/rank-math-seo/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Let your vendors manage their product SEO with an easy-to-navigate frontend dashboard and drive traffic to your eCommerce site. +* [Dokan MANGOPAY Integration](https://dokan.co/wordpress/modules/dokan-mangopay-integration/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Make smooth transactions with split payments, multi vendor support, and run your business operations in Europe with ease using Mangopay. +* [Dokan Paypal Marketplace](https://dokan.co/wordpress/modules/dokan-paypal-marketplace/?utm_medium=dokan-lite&utm_source=wordpress.org&utm_campaign=modules) (Pro): Make your marketplace payment system smoother than ever with the advanced PayPal integration with all PayPal Commerce Platform (PCP) features. +* [PDF Invoice](https://dokan.co/wordpress/modules/pdf-invoice-2/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org): Create automated multi-seller invoices with templates & download them in PDF. +* [Product Duplicator](https://dokan.co/wordpress/modules/product-duplicator/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org): Enable vendors to copy a product that another seller is already selling. +* [Ajax Live Search](https://dokan.co/wordpress/modules/ajax-live-search/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Turn your regular search bar into an instant advanced product searching tool. +* [Geolocation](https://dokan.co/wordpress/modules/geolocation/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Let your customers search by location. +* [Live Chat](https://dokan.co/wordpress/modules/live-chat/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Allow your vendors to provide registered users and customers with real-time support. +* [Seller Verification](https://dokan.co/wordpress/modules/seller-verification/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Verify your vendors using their social profiles, phone, and even their photo ID. +* [Stripe Connect](https://dokan.co/wordpress/modules/stripe-connect/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Famous for its low fees, use Stripe to handle all your payments in real time and much more. +* [Wirecard(Moip)](https://dokan.co/wordpress/modules/moip/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Get to use the popular payment system Wirecard previously known as Moip with Dokan. +* [Subscriptions](https://dokan.co/wordpress/modules/subscriptions/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Create highly customized subscription packs and charge vendors as you like. +* [Vendor Review](https://dokan.co/wordpress/modules/dokan-vendor-review/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): This feature enables your customers to post a review for each store available on your site. +* [Vendor Staff Manager](https://dokan.co/wordpress/modules/vendor-staff-manager/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Let the sellers of your multivendor marketplace have a unique opportunity to appoint an unlimited number of staff to manage their personal eCommerce stores. +* [Dokan WooCommerce Booking](https://dokan.co/wordpress/modules/woocommerce-booking-integration/) (Pro): Allows vendors to create & sell bookable products and customers to customize their booking orders. +* [Dokan Simple Auctions](https://dokan.co/wordpress/modules/dokan-simple-auctions/) (Pro): Offer your vendors to enable auction-able products selling features. +* [Report Abuse](https://dokan.co/wordpress/modules/report-abuse/) (Pro): Allows your customers to report fraudulent products to maintain a reliable and honest marketplace, where vendors are not able to take advantage of customers or engage in wrongdoings. +* [Follow Store](https://dokan.co/wordpress/modules/follow-store/) (Pro): Allows customers to follow their favorite vendor store. It helps keep the customer updated about the vendor. +* [Razorpay Integration](https://dokan.co/wordpress/modules/razorpay/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Get a competitive advantage with the route and various international & local payment modes using Razorpay Integration. +* [EU Compliance Fields](https://dokan.co/wordpress/modules/eu-compliance-fields/) (Pro): Provide the fields required by EU law for both customers and vendors with this module. Integration with invoicing lets you control what to display in the invoices. +* [Dokan Product Addon](https://dokan.co/wordpress/modules/product-addon/) (Pro): Let customers add additional items to a product and be billed separately for those items. This module makes your marketplace more sophisticated and exclusive. +* [Colour Scheme Customizer](https://dokan.co/wordpress/modules/color-scheme-customizer/) (Pro): Using the Color Scheme Customizer, you can customize the dashboard attributes and make the vendor dashboards more appealing. +* [Product Enquiry](https://dokan.co/wordpress/modules/product-enquiry/) (Pro): Allow your visitors and customers to contact vendors about the product from a product page with this module. This will let customers/visitors send an email inquiry to the vendor asking questions. +* [Return and Warranty Request](https://dokan.co/wordpress/modules/return-and-warranty-request/) (Pro): Dokan Return and Warranty Request module enables you to allow vendors to offer customized return and warranty facilities for their sold products to customers. +* [Single Product Multivendor](https://dokan.co/wordpress/modules/single-product-multivendor/) (Pro): This module allows a vendor to sell other vendors' products. Any vendor can add a product from another vendor's store to their own store with a single click and customize it as they like. +* [Product Store Support](https://dokan.co/wordpress/modules/store-support/) (Pro): Using this module you can provide your customers with a ticket-based support system right from the store page. +* [Vendor Vacation](https://dokan.co/wordpress/modules/vendor-vacation/) (Pro): Vendors can close their stores and put all their products offline temporarily using the Vendor Vacation module. +* [Wholesale Module](https://dokan.co/wordpress/modules/wholesale/) (Pro): Using this module, the admin of the marketplace will be able to allow the vendors to sell products in a bulk wholesale quantity. +* [Vendor Analytics](https://dokan.co/wordpress/modules/vendor-analytics/) (Pro): Your vendors can easily see the analytics for their stores right from the frontend. Using this module vendors can improve their performance with data-driven decisions. +* [WPML Integration](https://dokan.co/wordpress/modules/wpml-integration/): Using this module with the famous WPML plugin you can enable multiple languages on your marketplace. +* [WC Vendor Migrator](https://dokan.co/docs/wordpress/free-modules/wc-vendors-to-dokan-importer/): Using this feature, you will be able to import all of your sellers and order data from your WC Vendors-enabled marketplace to a Dokan-powered marketplace. +* [Seller Badge](https://dokan.co/wordpress/modules/seller-badge/) (Pro): Give your sellers a boost of motivation with this module. Badges allow vendors to show off their achievements to store visitors and aspire for higher badges with more active marketplace activities +* [Vendor Dashboard](https://dokan.co/wordpress/modules/vendor-dashboard/): Researching industry best standards and experimenting with countless UI designs, the Dokan Vendor Dashboard add-on provides an organized look with categorized functions so that your vendors can reach optimal efficiency easily +* [Dokan Delivery Driver App](https://dokan.co/wordpress/delivery-driver-app/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) (Pro): Ensure a smooth, risk-free delivery of products with verified drivers and live tracking ensuring admin, vendor, and customers can follow their products from the warehouse to customers doorsteps. + +[AND MANY MORE](https://dokan.co/wordpress/modules/?utm_campaign=dokan-wordpress-org-visitor&utm_medium=learn_more_about_dokan&utm_source=WordPress.org) ⏩ ### WE KNOW WE ARE NOT PERFECT THAT’S WHY WE ARE IMPROVING EVERYDAY ### @@ -311,7 +311,7 @@ A. Yes, that's how Dokan works. In every sales, you can cut a commission from a A. Obviously, you can use this on a single seller site to give them a nice front-end experience. ### Q. How to upgrade to the Pro version? -A. Just install and activate the PRO version without deleting the free plugin. All your data will be safe on the database and some extra features will be added. If you feel something may go wrong, please consult with our [support](https://wedevs.com/contact/) staff first. +A. Just install and activate the PRO version without deleting the free plugin. All your data will be safe on the database and some extra features will be added. If you feel something may go wrong, please consult with our [support](https://dokan.co/contact/) staff first. ### ## Screenshots ## @@ -338,6 +338,11 @@ A. Just install and activate the PRO version without deleting the free plugin. A ## Changelog ## +### v3.8.1 ( Aug 25, 2023 ) ### + +- **fix:** Fixed a console warning under Dokan admin settings for Google Map integration +- **fix:** [ReverseWithdrawal] Fixed an issue where Vendor/Admin cannot pay for reverse withdrawal balance due to a rule that vendor’s can’t purchase their own products. + ### v3.8.0 ( Aug 18, 2023 ) ### - **update:** Added HPOS (High-Performance Order Storage) support for Dokan Lite. diff --git a/assets/js/login-form-popup.js b/assets/js/login-form-popup.js index ee3e11b5e1..7c7e6717b9 100644 --- a/assets/js/login-form-popup.js +++ b/assets/js/login-form-popup.js @@ -1 +1 @@ -(()=>{var o;o=jQuery,dokan.login_form_popup={form_html:"",form_title:"",init:function(){o("body").on("dokan:login_form_popup:show",this.get_form),o("body").on("submit","#dokan-login-form-popup-form",this.submit_form),o("body").on("dokan:login_form_popup:working",this.working),o("body").on("dokan:login_form_popup:done_working",this.done_working)},get_form:function(n,a){dokan.login_form_popup.form_html?dokan.login_form_popup.show_popup():(a=o.extend(!0,{nonce:dokan.nonce,action:"dokan_get_login_form"},a),o("body").trigger("dokan:login_form_popup:fetching_form"),o.ajax({url:dokan.ajaxurl,method:"get",dataType:"json",data:{_wpnonce:a.nonce,action:a.action}}).done((function(n){dokan.login_form_popup.form_html=n.data.html,dokan.login_form_popup.form_title=n.data.title,dokan.login_form_popup.show_popup(),o("body").trigger("dokan:login_form_popup:fetched_form")})))},show_popup:function(){o("body").append('
');const n=o("#dokan-modal-login-form-popup").iziModal({headerColor:dokan.modal_header_color,overlayColor:"rgba(0, 0, 0, 0.8)",width:690,onOpened:()=>{o("body").trigger("dokan:login_form_popup:opened")}});n.iziModal("setTitle",dokan.login_form_popup.form_title),n.iziModal("setContent",dokan.login_form_popup.form_html),n.iziModal("open")},submit_form:function(n){n.preventDefault();var a=o(this).serialize(),i=o(".dokan-login-form-error","#dokan-login-form-popup-form");i.removeClass("has-error").text(""),o("body").trigger("dokan:login_form_popup:working"),o.ajax({url:dokan.ajaxurl,method:"post",dataType:"json",data:{_wpnonce:dokan.nonce,action:"dokan_login_user",form_data:a}}).done((function(n){o("body").trigger("dokan:login_form_popup:logged_in",n),o("#dokan-login-form-popup").iziModal("close")})).always((function(){o("body").trigger("dokan:login_form_popup:done_working")})).fail((function(o){o.responseJSON&&o.responseJSON.data&&o.responseJSON.data.message&&i.addClass("has-error").text(o.responseJSON.data.message)}))},working:function(){o("fieldset","#dokan-login-form-popup-form").prop("disabled",!0),o("#dokan-login-form-submit-btn").addClass("dokan-hide"),o("#dokan-login-form-working-btn").removeClass("dokan-hide")},done_working:function(){o("fieldset","#dokan-login-form-popup-form").prop("disabled",!1),o("#dokan-login-form-submit-btn").removeClass("dokan-hide"),o("#dokan-login-form-working-btn").addClass("dokan-hide")}},dokan.login_form_popup.init()})(); \ No newline at end of file +(()=>{var o;o=jQuery,dokan.login_form_popup={form_html:"",form_title:"",init:function(){o("body").on("dokan:login_form_popup:show",this.get_form),o("body").on("submit","#dokan-login-form-popup-form",this.submit_form),o("body").on("dokan:login_form_popup:working",this.working),o("body").on("dokan:login_form_popup:done_working",this.done_working)},get_form:function(n,a){dokan.login_form_popup.form_html?dokan.login_form_popup.show_popup():(a=o.extend(!0,{nonce:dokan.nonce,action:"dokan_get_login_form"},a),o("body").trigger("dokan:login_form_popup:fetching_form"),o.ajax({url:dokan.ajaxurl,method:"get",dataType:"json",data:{_wpnonce:a.nonce,action:a.action}}).done((function(n){dokan.login_form_popup.form_html=n.data.html,dokan.login_form_popup.form_title=n.data.title,dokan.login_form_popup.show_popup(),o("body").trigger("dokan:login_form_popup:fetched_form")})))},show_popup:function(){o("body").append('
');const n=o("#dokan-modal-login-form-popup").iziModal({headerColor:dokan.modal_header_color,overlayColor:"rgba(0, 0, 0, 0.8)",width:690,onOpened:()=>{o("body").trigger("dokan:login_form_popup:opened")}});n.iziModal("setTitle",dokan.login_form_popup.form_title),n.iziModal("setContent",dokan.login_form_popup.form_html),n.iziModal("open")},submit_form:function(n){n.preventDefault();var a=o(this).serialize(),i=o(".dokan-login-form-error","#dokan-login-form-popup-form");i.removeClass("has-error").text(""),o("body").trigger("dokan:login_form_popup:working"),o.ajax({url:dokan.ajaxurl,method:"post",dataType:"json",data:{_wpnonce:dokan.nonce,action:"dokan_login_user",form_data:a}}).done((function(n){o("body").trigger("dokan:login_form_popup:logged_in",n),o("#dokan-modal-login-form-popup").iziModal("close")})).always((function(){o("body").trigger("dokan:login_form_popup:done_working")})).fail((function(o){o.responseJSON&&o.responseJSON.data&&o.responseJSON.data.message&&i.addClass("has-error").text(o.responseJSON.data.message)}))},working:function(){o("fieldset","#dokan-login-form-popup-form").prop("disabled",!0),o("#dokan-login-form-submit-btn").addClass("dokan-hide"),o("#dokan-login-form-working-btn").removeClass("dokan-hide")},done_working:function(){o("fieldset","#dokan-login-form-popup-form").prop("disabled",!1),o("#dokan-login-form-submit-btn").removeClass("dokan-hide"),o("#dokan-login-form-working-btn").addClass("dokan-hide")}},dokan.login_form_popup.init()})(); \ No newline at end of file diff --git a/dokan.php b/dokan.php index 0edcfbbc88..2505c4b67b 100755 --- a/dokan.php +++ b/dokan.php @@ -3,7 +3,7 @@ * Plugin Name: Dokan * Plugin URI: https://wordpress.org/plugins/dokan-lite/ * Description: An e-commerce marketplace plugin for WordPress. Powered by WooCommerce and weDevs. - * Version: 3.8.0 + * Version: 3.8.1 * Author: weDevs * Author URI: https://wedevs.com/ * Text Domain: dokan-lite @@ -62,7 +62,7 @@ final class WeDevs_Dokan { * * @var string */ - public $version = '3.7.24'; + public $version = '3.8.1'; /** * Instance of self diff --git a/includes/ReverseWithdrawal/Helper.php b/includes/ReverseWithdrawal/Helper.php index 2a9bc23839..7c12eb4618 100644 --- a/includes/ReverseWithdrawal/Helper.php +++ b/includes/ReverseWithdrawal/Helper.php @@ -214,7 +214,7 @@ public static function get_reverse_withdrawal_base_product() { /** * This method will check if a product is reverse withdrawal product * - * @since DOKAN_SINCE + * @since 3.8.1 * * @param int $product_id * diff --git a/languages/dokan-lite.pot b/languages/dokan-lite.pot index fe6c7afec4..c43613501e 100644 --- a/languages/dokan-lite.pot +++ b/languages/dokan-lite.pot @@ -1,14 +1,14 @@ # Copyright (c) 2023 weDevs Pte. Ltd. All Rights Reserved. msgid "" msgstr "" -"Project-Id-Version: Dokan 3.8.0\n" +"Project-Id-Version: Dokan 3.8.1\n" "Report-Msgid-Bugs-To: https://wedevs.com/contact\n" "Last-Translator: support@wedevs.com\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2023-08-17T14:10:33+00:00\n" +"POT-Creation-Date: 2023-08-25T09:00:33+00:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.8.1\n" "X-Domain: dokan-lite\n" @@ -224,7 +224,7 @@ msgstr "" #: includes/Admin/Menu.php:48 #: includes/Admin/Settings.php:326 -#: includes/ReverseWithdrawal/Hooks.php:228 +#: includes/ReverseWithdrawal/Hooks.php:232 #: templates/reverse-withdrawal/header.php:9 #: assets/js/vue-admin.js:2 msgid "Reverse Withdrawal" @@ -1905,233 +1905,233 @@ msgstr "" msgid "Please enter a value greater than or equal to {0}." msgstr "" -#: includes/Assets.php:946 +#: includes/Assets.php:947 msgid "Upload featured image" msgstr "" -#: includes/Assets.php:947 +#: includes/Assets.php:948 msgid "Choose a file" msgstr "" -#: includes/Assets.php:948 +#: includes/Assets.php:949 msgid "Add Images to Product Gallery" msgstr "" -#: includes/Assets.php:949 +#: includes/Assets.php:950 msgid "Set featured image" msgstr "" -#: includes/Assets.php:950 +#: includes/Assets.php:951 #: includes/woo-views/html-product-download.php:8 msgid "Insert file URL" msgstr "" -#: includes/Assets.php:951 +#: includes/Assets.php:952 msgid "Add to gallery" msgstr "" -#: includes/Assets.php:952 +#: includes/Assets.php:953 msgid "Sorry, this attribute option already exists, Try a different one." msgstr "" -#: includes/Assets.php:953 +#: includes/Assets.php:954 msgid "Warning! This product will not have any variations if this option is not checked." msgstr "" -#: includes/Assets.php:954 +#: includes/Assets.php:955 msgid "Enter a name for the new attribute term:" msgstr "" -#: includes/Assets.php:955 +#: includes/Assets.php:956 msgid "Remove this attribute?" msgstr "" #. translators: %d: max linked variation. -#: includes/Assets.php:964 +#: includes/Assets.php:965 msgid "Are you sure you want to link all variations? This will create a new variation for each and every possible combination of variation attributes (max %d per run)." msgstr "" -#: includes/Assets.php:965 +#: includes/Assets.php:966 msgid "Enter a value" msgstr "" -#: includes/Assets.php:966 +#: includes/Assets.php:967 msgid "Variation menu order (determines position in the list of variations)" msgstr "" -#: includes/Assets.php:967 +#: includes/Assets.php:968 msgid "Enter a value (fixed or %)" msgstr "" -#: includes/Assets.php:968 +#: includes/Assets.php:969 msgid "Are you sure you want to delete all variations? This cannot be undone." msgstr "" -#: includes/Assets.php:969 +#: includes/Assets.php:970 msgid "Last warning, are you sure?" msgstr "" -#: includes/Assets.php:970 +#: includes/Assets.php:971 msgid "Choose an image" msgstr "" -#: includes/Assets.php:971 +#: includes/Assets.php:972 msgid "Set variation image" msgstr "" -#: includes/Assets.php:972 +#: includes/Assets.php:973 msgid "variation added" msgstr "" -#: includes/Assets.php:973 +#: includes/Assets.php:974 msgid "variations added" msgstr "" -#: includes/Assets.php:974 +#: includes/Assets.php:975 msgid "No variations added" msgstr "" -#: includes/Assets.php:975 +#: includes/Assets.php:976 msgid "Are you sure you want to remove this variation?" msgstr "" -#: includes/Assets.php:976 +#: includes/Assets.php:977 msgid "Sale start date (YYYY-MM-DD format or leave blank)" msgstr "" -#: includes/Assets.php:977 +#: includes/Assets.php:978 msgid "Sale end date (YYYY-MM-DD format or leave blank)" msgstr "" -#: includes/Assets.php:978 +#: includes/Assets.php:979 msgid "Save changes before changing page?" msgstr "" -#: includes/Assets.php:979 +#: includes/Assets.php:980 msgid "%qty% variation" msgstr "" -#: includes/Assets.php:980 +#: includes/Assets.php:981 msgid "%qty% variations" msgstr "" -#: includes/Assets.php:981 +#: includes/Assets.php:982 msgid "No Result Found" msgstr "" -#: includes/Assets.php:982 +#: includes/Assets.php:983 msgid "Please insert value less than the regular price!" msgstr "" #. translators: %s: decimal -#: includes/Assets.php:984 -#: includes/Assets.php:1162 +#: includes/Assets.php:985 +#: includes/Assets.php:1163 msgid "Please enter with one decimal point (%s) without thousand separators." msgstr "" #. translators: %s: price decimal separator -#: includes/Assets.php:986 -#: includes/Assets.php:1164 -msgid "Please enter with one monetary decimal point (%s) without thousand separators and currency symbols." -msgstr "" - #: includes/Assets.php:987 #: includes/Assets.php:1165 -msgid "Please enter in country code with two capital letters." +msgid "Please enter with one monetary decimal point (%s) without thousand separators and currency symbols." msgstr "" #: includes/Assets.php:988 #: includes/Assets.php:1166 -msgid "Please enter in a value less than the regular price." +msgid "Please enter in country code with two capital letters." msgstr "" #: includes/Assets.php:989 #: includes/Assets.php:1167 -msgid "This product has produced sales and may be linked to existing orders. Are you sure you want to delete it?" +msgid "Please enter in a value less than the regular price." msgstr "" #: includes/Assets.php:990 #: includes/Assets.php:1168 +msgid "This product has produced sales and may be linked to existing orders. Are you sure you want to delete it?" +msgstr "" + +#: includes/Assets.php:991 +#: includes/Assets.php:1169 msgid "This action cannot be reversed. Are you sure you wish to erase personal data from the selected orders?" msgstr "" -#: includes/Assets.php:1000 +#: includes/Assets.php:1001 msgid "Select and Crop" msgstr "" -#: includes/Assets.php:1001 +#: includes/Assets.php:1002 msgid "Choose Image" msgstr "" -#: includes/Assets.php:1002 +#: includes/Assets.php:1003 msgid "Product title is required" msgstr "" -#: includes/Assets.php:1003 +#: includes/Assets.php:1004 msgid "Product category is required" msgstr "" -#: includes/Assets.php:1004 +#: includes/Assets.php:1005 msgid "Product created successfully" msgstr "" -#: includes/Assets.php:1008 +#: includes/Assets.php:1009 msgid "One result is available, press enter to select it." msgstr "" -#: includes/Assets.php:1009 +#: includes/Assets.php:1010 msgid "%qty% results are available, use up and down arrow keys to navigate." msgstr "" -#: includes/Assets.php:1010 +#: includes/Assets.php:1011 msgid "No matches found" msgstr "" -#: includes/Assets.php:1011 +#: includes/Assets.php:1012 msgid "Loading failed" msgstr "" -#: includes/Assets.php:1012 +#: includes/Assets.php:1013 msgid "Please enter 1 or more characters" msgstr "" -#: includes/Assets.php:1013 +#: includes/Assets.php:1014 msgid "Please enter %qty% or more characters" msgstr "" -#: includes/Assets.php:1014 +#: includes/Assets.php:1015 msgid "Please delete 1 character" msgstr "" -#: includes/Assets.php:1015 +#: includes/Assets.php:1016 msgid "Please delete %qty% characters" msgstr "" -#: includes/Assets.php:1016 +#: includes/Assets.php:1017 msgid "You can only select 1 item" msgstr "" -#: includes/Assets.php:1017 +#: includes/Assets.php:1018 msgid "You can only select %qty% items" msgstr "" -#: includes/Assets.php:1018 +#: includes/Assets.php:1019 msgid "Loading more results…" msgstr "" -#: includes/Assets.php:1019 +#: includes/Assets.php:1020 msgid "Searching…" msgstr "" -#: includes/Assets.php:1020 +#: includes/Assets.php:1021 msgid "Calculating" msgstr "" -#: includes/Assets.php:1021 +#: includes/Assets.php:1022 msgid "OK" msgstr "" -#: includes/Assets.php:1022 +#: includes/Assets.php:1023 #: includes/Product/functions.php:310 #: templates/my-orders.php:95 #: templates/orders/details.php:196 @@ -2151,15 +2151,15 @@ msgstr "" msgid "Cancel" msgstr "" -#: includes/Assets.php:1023 +#: includes/Assets.php:1024 msgid "Attribute Name" msgstr "" -#: includes/Assets.php:1025 +#: includes/Assets.php:1026 msgid "Are you sure? You have uploaded banner but didn't click the Update Settings button!" msgstr "" -#: includes/Assets.php:1026 +#: includes/Assets.php:1027 #: templates/settings/header.php:20 #: templates/settings/payment-manage.php:48 #: templates/settings/store-form.php:292 @@ -6225,61 +6225,61 @@ msgstr "" msgid "Other" msgstr "" -#: includes/ReverseWithdrawal/Helper.php:347 +#: includes/ReverseWithdrawal/Helper.php:362 #: includes/ReverseWithdrawal/Manager.php:373 #: includes/ReverseWithdrawal/Manager.php:409 msgid "No vendor id provided" msgstr "" -#: includes/ReverseWithdrawal/Helper.php:354 -#: includes/ReverseWithdrawal/Helper.php:419 -#: includes/ReverseWithdrawal/Helper.php:486 +#: includes/ReverseWithdrawal/Helper.php:369 +#: includes/ReverseWithdrawal/Helper.php:434 +#: includes/ReverseWithdrawal/Helper.php:501 msgid "Invalid date provided" msgstr "" -#: includes/ReverseWithdrawal/Helper.php:475 +#: includes/ReverseWithdrawal/Helper.php:490 msgid "Invalid vendor provided." msgstr "" -#: includes/ReverseWithdrawal/Helper.php:617 +#: includes/ReverseWithdrawal/Helper.php:632 msgid "Your products add to cart will be hidden. Hence users will not be able to purchase any of your products." msgstr "" -#: includes/ReverseWithdrawal/Helper.php:621 +#: includes/ReverseWithdrawal/Helper.php:636 msgid "Withdraw menu will be hidden. Hence you will not be able to make any withdraw request from your account." msgstr "" -#: includes/ReverseWithdrawal/Helper.php:625 +#: includes/ReverseWithdrawal/Helper.php:640 msgid "Your account will be disabled for selling. Hence you will no longer be able to sell any products." msgstr "" -#: includes/ReverseWithdrawal/Helper.php:660 +#: includes/ReverseWithdrawal/Helper.php:675 msgid "Your products add to cart button has been temporarily hidden. Hence users are not able to purchase any of your products currently." msgstr "" -#: includes/ReverseWithdrawal/Helper.php:664 +#: includes/ReverseWithdrawal/Helper.php:679 msgid "Withdraw menu has been temporarily hidden. Hence you are not able to make any withdrawal requests from your account." msgstr "" -#: includes/ReverseWithdrawal/Helper.php:668 +#: includes/ReverseWithdrawal/Helper.php:683 msgid "Your account has been temporarily disabled for selling. Hence you are no longer able to sell any products." msgstr "" -#: includes/ReverseWithdrawal/Helper.php:717 +#: includes/ReverseWithdrawal/Helper.php:732 msgid "Payment can not be less than or equal to zero." msgstr "" -#: includes/ReverseWithdrawal/Helper.php:723 -#: includes/ReverseWithdrawal/Helper.php:728 +#: includes/ReverseWithdrawal/Helper.php:738 +#: includes/ReverseWithdrawal/Helper.php:743 msgid "Invalid base payment product id. Please contact with site admin." msgstr "" -#: includes/ReverseWithdrawal/Helper.php:732 +#: includes/ReverseWithdrawal/Helper.php:747 msgid "Base payment product status is not published. Please contact with site admin." msgstr "" -#: includes/ReverseWithdrawal/Helper.php:754 -#: includes/ReverseWithdrawal/Helper.php:761 +#: includes/ReverseWithdrawal/Helper.php:769 +#: includes/ReverseWithdrawal/Helper.php:776 msgid "Something went wrong while adding product to cart. Please contact site admin." msgstr "" diff --git a/package.json b/package.json index e2d090b7df..c299a404fe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dokan", - "version": "3.8.0", + "version": "3.8.1", "description": "A WordPress marketplace plugin", "author": "weDevs", "license": "GPL", diff --git a/readme.txt b/readme.txt index a196b2aaaf..a467b68cc0 100644 --- a/readme.txt +++ b/readme.txt @@ -7,7 +7,7 @@ Tested up to: 6.3.0 WC requires at least: 5.0.0 WC tested up to: 8.0.2 Requires PHP: 7.3 -Stable tag: 3.8.0 +Stable tag: 3.8.1 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -338,6 +338,11 @@ A. Just install and activate the PRO version without deleting the free plugin. A == Changelog == += v3.8.1 ( Aug 25, 2023 ) = + +- **fix:** Fixed a console warning under Dokan admin settings for Google Map integration +- **fix:** [ReverseWithdrawal] Fixed an issue where Vendor/Admin cannot pay for reverse withdrawal balance due to a rule that vendor’s can’t purchase their own products. + = v3.8.0 ( Aug 18, 2023 ) = - **update:** Added HPOS (High-Performance Order Storage) support for Dokan Lite. diff --git a/templates/whats-new.php b/templates/whats-new.php index 515cfe8e65..2c9631b980 100644 --- a/templates/whats-new.php +++ b/templates/whats-new.php @@ -3,6 +3,22 @@ * When you are adding new version please follow this sequence for changes: New Feature, New, Improvement, Fix... */ $changelog = [ + [ + 'version' => 'Version 3.8.1', + 'released' => '2023-08-25', + 'changes' => [ + 'Fix' => [ + [ + 'title' => 'Fixed a console warning under Dokan admin settings for Google Map integration', + 'description' => '', + ], + [ + 'title' => '[ReverseWithdrawal] Fixed an issue where Vendor/Admin cannot pay for reverse withdrawal balance due to a rule that vendor’s can’t purchase their own products.', + 'description' => '', + ], + ], + ], + ], [ 'version' => 'Version 3.8.0', 'released' => '2023-08-18', @@ -17,13 +33,13 @@ 'description' => '', ], ], - 'Fix' => [ + 'Fix' => [ [ - 'title' => 'Resolved an issue where traces of order data were left on the Dokan end even after the order had been deleted from the WordPress admin panel.', + 'title' => 'Resolved an issue where traces of order data were left on the Dokan end even after the order had been deleted from the WordPress admin panel.', 'description' => 'Previously, deleted orders were still visible under the Dashboard Overview menu, Reports menu, and under Withdraw menu. This issue has been fixed in the current release.', ], [ - 'title' => 'Multiple issues have been fixed after a product of an order has been deleted.', + 'title' => 'Multiple issues have been fixed after a product of an order has been deleted.', 'description' => '', ], ], @@ -39,25 +55,25 @@ 'description' => 'Previously, vendors could purchase and post reviews for their own product. Which is not logical and could manipulate the search results of a product in a marketplace. With this update, vendors will not be able to purchase or post reviews for their own product.', ], [ - 'title' => '[ReverseWithdrawal] Now Admin can request payment from vendors using the Reverse Withdrawal feature', + 'title' => '[ReverseWithdrawal] Now Admin can request payment from vendors using the Reverse Withdrawal feature', 'description' => "Currently, there is no way for Site admins to request payments from vendors. For some use cases, it is essential for admins to request money from vendors. For example: In Stripe 3DS mode, if customers ask for a refund, refund will be given from the admin Stripe account, after that vendor transfer will be reversed. But if the vendor doesn't have enough money in their stripe account transfer reversal will fail, in that case, vendor balance will be negative. Another case would be for non-connected vendors, in that case, admin will be responsible for refund and admin needs to request money from vendors.", ], [ - 'title' => '[AdminSettings] Added a toggle switch for Google ReCaptcha in the appearance settings for better control.', + 'title' => '[AdminSettings] Added a toggle switch for Google ReCaptcha in the appearance settings for better control.', 'description' => '', ], [ - 'title' => '[AdminSettings] Sensitive information like API keys, client secrets, etc., are now displayed as password fields with an unhide button to improve security.', + 'title' => '[AdminSettings] Sensitive information like API keys, client secrets, etc., are now displayed as password fields with an unhide button to improve security.', 'description' => '', ], [ - 'title' => '[AdminCommission] Now, "percentage" is selected by default if the admin setup wizard is skipped in the commission setting.', + 'title' => '[AdminCommission] Now, "percentage" is selected by default if the admin setup wizard is skipped in the commission setting.', 'description' => '', ], ], - 'Fix' => [ + 'Fix' => [ [ - 'title' => 'Added some missing translations.', + 'title' => 'Added some missing translations.', 'description' => 'Previously, the template folder at dokan-lite was missing when the .pot file was generated. With this fix template folder will be respected while generating the pot file.', ], ], From 243ce92e7206a6638cec216bb4de3ecf611419de Mon Sep 17 00:00:00 2001 From: Nurul Umbhiya Date: Fri, 1 Sep 2023 12:14:42 +0600 Subject: [PATCH 11/69] =?UTF-8?q?=F0=9F=90=9B=20fix(Manager.php):=20change?= =?UTF-8?q?=20logical=20operator=20from=20&&=20to=20||=20in=20if=20conditi?= =?UTF-8?q?on=20to=20fix=20sub=20order=20creation=20logic?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- includes/Order/Manager.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/Order/Manager.php b/includes/Order/Manager.php index a800683f34..2caa20be07 100644 --- a/includes/Order/Manager.php +++ b/includes/Order/Manager.php @@ -885,7 +885,7 @@ public function maybe_split_orders( $parent_order_id, $force_create = false ) { //dokan_log( sprintf( 'New Order #%d created. Init sub order.', $parent_order_id ) ); - if ( $force_create && wc_string_to_bool( $parent_order->get_meta( 'has_sub_order' ) ) === true ) { + if ( $force_create || wc_string_to_bool( $parent_order->get_meta( 'has_sub_order' ) ) === true ) { $child_orders = $this->get_child_orders( $parent_order->get_id() ); foreach ( $child_orders as $child_order ) { From 0e9a8526cb5f7bdc473a3ae100062882878e1168 Mon Sep 17 00:00:00 2001 From: Nurul Umbhiya Date: Fri, 1 Sep 2023 17:39:50 +0600 Subject: [PATCH 12/69] =?UTF-8?q?=F0=9F=90=9B=20fix(Permissions.php):=20ad?= =?UTF-8?q?d=20support=20for=20HPOS=20filter=20for=20orders=20of=20current?= =?UTF-8?q?=20vendor=20=E2=9C=A8=20feat(Permissions.php):=20add=20support?= =?UTF-8?q?=20for=20filtering=20orders=20of=20current=20vendor=20based=20o?= =?UTF-8?q?n=20vendor=20ID=20using=20HPOS=20filter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- includes/Order/Admin/Permissions.php | 42 +++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/includes/Order/Admin/Permissions.php b/includes/Order/Admin/Permissions.php index 1c5c92e4ee..22367b1dec 100644 --- a/includes/Order/Admin/Permissions.php +++ b/includes/Order/Admin/Permissions.php @@ -3,6 +3,8 @@ namespace WeDevs\Dokan\Order\Admin; // don't call the file directly +use WeDevs\Dokan\Utilities\OrderUtil; + if ( ! defined( 'ABSPATH' ) ) { exit; } @@ -21,8 +23,13 @@ class Permissions { public function __construct() { add_filter( 'map_meta_cap', [ $this, 'map_meta_caps' ], 12, 4 ); + if ( OrderUtil::is_hpos_enabled() ) { + add_filter( 'woocommerce_order_list_table_prepare_items_query_args', [ $this, 'hpos_filter_orders_for_current_vendor' ] ); + } else { + add_filter( 'posts_clauses', [ $this, 'filter_orders_for_current_vendor' ], 12, 2 ); + } + // didn't added hpos support for below hooks, since tareq bhai asked to revoke admin access for vendors - add_filter( 'posts_clauses', [ $this, 'filter_orders_for_current_vendor' ], 12, 2 ); add_action( 'load-post.php', [ $this, 'revoke_change_order_status' ] ); add_filter( 'manage_edit-shop_order_columns', [ $this, 'remove_action_column' ], 15 ); add_filter( 'woocommerce_admin_order_preview_actions', [ $this, 'remove_action_button' ], 15 ); @@ -68,6 +75,39 @@ public function map_meta_caps( $caps, $cap, $user_id, $args ) { return $caps; } + /** + * Filter orders of current user + * + * @since DOKAN_SINCE + * + * @param array $args + * + * @return array + */ + public function hpos_filter_orders_for_current_vendor( $args ) { + // get the vendor id + $vendor_id = isset( $_GET['vendor_id'] ) ? absint( wp_unslash( $_GET['vendor_id'] ) ) : 0; // phpcs:ignore; + if ( ! current_user_can( 'manage_woocommerce' ) ) { + $vendor_id = dokan_get_current_user_id(); + } + + if ( ! $vendor_id ) { + return $args; + } + + $meta_query = $args['meta_query'] ?? []; + $meta_query['meta_query'][] = [ + [ + 'key' => '_dokan_vendor_id', + 'value' => $vendor_id, + 'compare' => '=', + 'type' => 'NUMERIC', + ], + ]; + + return array_merge( $args, $meta_query ); + } + /** * Filter orders of current user * From 75f8a34a97d309c0403fc75c0818b9c5b0477510 Mon Sep 17 00:00:00 2001 From: Nurul Umbhiya Date: Tue, 5 Sep 2023 12:17:42 +0600 Subject: [PATCH 13/69] update: changed all wedevs.com/dokan url's with dokan.co/wordpress --- dokan.php | 4 +- includes/Admin/SetupWizard.php | 2 +- includes/Assets.php | 2 +- includes/Tracker.php | 2 +- includes/functions.php | 2 +- src/admin/components/UpgradeBanner.vue | 4 +- src/admin/pages/Premium.vue | 2 +- src/admin/pages/ProModules.vue | 104 ++++++++++++------------- templates/admin-header.php | 2 +- 9 files changed, 62 insertions(+), 62 deletions(-) diff --git a/dokan.php b/dokan.php index 2505c4b67b..852c62cc57 100755 --- a/dokan.php +++ b/dokan.php @@ -504,11 +504,11 @@ public function is_pro_exists() { */ public function plugin_action_links( $links ) { if ( ! $this->is_pro_exists() ) { - $links[] = '' . __( 'Get Pro', 'dokan-lite' ) . ''; + $links[] = '' . __( 'Get Pro', 'dokan-lite' ) . ''; } $links[] = '' . __( 'Settings', 'dokan-lite' ) . ''; - $links[] = '' . __( 'Documentation', 'dokan-lite' ) . ''; + $links[] = '' . __( 'Documentation', 'dokan-lite' ) . ''; return $links; } diff --git a/includes/Admin/SetupWizard.php b/includes/Admin/SetupWizard.php index d6292c1d79..97f07ccd1b 100644 --- a/includes/Admin/SetupWizard.php +++ b/includes/Admin/SetupWizard.php @@ -274,7 +274,7 @@ public function setup_wizard_header() { custom_logo ) ) ? $this->custom_logo : plugins_url( 'assets/images/dokan-logo.png', DOKAN_FILE ); ?> -

Dokan Logo

+

Dokan Logo

dokan_get_option( 'custom_store_url', 'dokan_general', 'store' ), 'assetsUrl' => DOKAN_PLUGIN_ASSEST, 'buynowpro' => dokan_pro_buynow_url(), - 'upgradeToPro' => 'https://wedevs.com/dokan-lite-upgrade-to-pro/?utm_source=plugin&utm_medium=wp-admin&utm_campaign=dokan-lite', + 'upgradeToPro' => 'https://dokan.co/wordpress/upgrade-to-pro/?utm_source=plugin&utm_medium=wp-admin&utm_campaign=dokan-lite', 'dummy_data' => DOKAN_PLUGIN_ASSEST . '/dummy-data/dokan_dummy_data.csv', 'adminOrderListUrl' => OrderUtil::get_admin_order_list_url(), 'adminOrderEditUrl' => OrderUtil::get_admin_order_edit_url(), diff --git a/includes/Tracker.php b/includes/Tracker.php index 711a9e0fde..6b8a000b0a 100644 --- a/includes/Tracker.php +++ b/includes/Tracker.php @@ -93,7 +93,7 @@ public function get_custom_deactivation_reasons( $reasons, $client = null ) { [ 'id' => 'dokan-pro-is-expensive', 'text' => 'Dokan PRO is expensive ', - 'placeholder' => 'We’ve discounts going all year round. Please copy & visit this link to instantly get 30% off your purchase: https://wedevs.com/dokan-lite-upgrade-to-pro', + 'placeholder' => 'We’ve discounts going all year round. Please copy & visit this link to instantly get 30% off your purchase: https://dokan.co/wordpress/upgrade-to-pro/?utm_source=plugin&utm_medium=wp-admin&utm_campaign=dokan-lite', 'icon' => '', ], [ diff --git a/includes/functions.php b/includes/functions.php index a92ce7e956..ce46fdd655 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -3032,7 +3032,7 @@ function dokan_is_store_open( $user_id ) { * @return string [url] */ function dokan_pro_buynow_url() { - $link = 'https://wedevs.com/dokan/pricing/'; + $link = 'https://dokan.co/wordpress/pricing/'; if ( $aff = get_option( '_dokan_aff_ref' ) ) { // phpcs:ignore $link = add_query_arg( [ 'ref' => $aff ], $link ); diff --git a/src/admin/components/UpgradeBanner.vue b/src/admin/components/UpgradeBanner.vue index 750196dc90..423e060075 100644 --- a/src/admin/components/UpgradeBanner.vue +++ b/src/admin/components/UpgradeBanner.vue @@ -127,11 +127,11 @@ {{ __( 'Delivery Time', 'dokan-lite' ) }} - {{ __( 'See All Premium Modules', 'dokan-lite' ) }} + {{ __( 'See All Premium Modules', 'dokan-lite' ) }}
- + + + + + From 146f40ce45fabba6046ff10474dc94e3a6ef9edb Mon Sep 17 00:00:00 2001 From: Aunshon <32583103+Aunshon@users.noreply.github.com> Date: Thu, 7 Sep 2023 11:30:26 +0600 Subject: [PATCH 22/69] Fix: Trying to delete all products also booking product and also trying to delete non-dummy product (#1990) * Fix: Trying to delete all products also booking product and also trying to delete non-dummy product * Fix query --- includes/DummyData/Importer.php | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/includes/DummyData/Importer.php b/includes/DummyData/Importer.php index f8328fe270..a1260108d1 100644 --- a/includes/DummyData/Importer.php +++ b/includes/DummyData/Importer.php @@ -269,16 +269,19 @@ private function is_my_product( $product ) { */ public function clear_all_dummy_data() { $args = [ - 'post_type' => 'product', - 'numberposts' => -1, - 'post_status' => 'any', + 'post_type' => 'product', + 'posts_per_page' => - 1, + 'post_status' => 'any', + 'fields' => 'ids', + 'meta_key' => 'dokan_dummy_data', + 'meta_value' => '1' ]; - $query = new WP_query( $args ); + $query = new WP_Query( $args ); $all_products = $query->posts; - foreach ( $all_products as $product ) { - wp_delete_post( $product->ID, true ); + foreach ( $all_products as $product_id ) { + wp_delete_post( $product_id, true ); } $all_vendors = dokan()->vendor->get_vendors( From d993d03ec7c6b5b8ff51317095fe06c4faf32f45 Mon Sep 17 00:00:00 2001 From: Nurul Umbhiya Date: Tue, 12 Sep 2023 07:55:38 +0600 Subject: [PATCH 23/69] Single Product Page and Product Edit Page Enhancements (#1986) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update: Admin settings change * update: One-step product add * fix: One-step product url fix * refactor: settings text * update: SPMV Product create search hook added * refactor: removed `wp_delete_auto_drafts()` * update: add product action hook setup * update: product editor url replace * update: add pending review as new product status * Add product filter reset button * Fix: edit product publish product directly * Fix: text domain * Fix: pending review in lite and pro * Fix: pending review in lite and pro * Fix: pending review in lite and pro * Refactor: introduce new method for post status * Refactor: if dokan_get_available_post_status function not exists in dokan pro then get it from lite. * Refactor: if dokan_get_available_post_status function not exists in dokan pro then get it from lite. * Refactor: if dokan_get_available_post_status function not exists in dokan pro then get it from lite. * Refactor: if dokan_get_available_post_status function not exists in dokan pro then get it from lite. * refactor: Product creation popup remove and product status fix * update: bring back admin settings and popup * fixed merged conflict on others.php files * Fix: auction and booking products showing on the product menu if Dokan Pro is disabled * Fix: product statuses * Add notice for one step product create. * Prevent wrong email send for draft product, the wrong email was as published and pending product. * Prevent wrong email send for draft product, the wrong email was as published and pending product. * Fix: product status in lite * Product status in rest api * Fix: draft to pending email * Fix: draft product status * 🛠️Fix: phpcs * 🐛 fix(Products.php): change `dokan_get_new_post_status()` to `dokan_get_default_product_status()` to use the correct default product status for the current user 🐛 fix(functions.php): deprecate `dokan_get_new_post_status()` and replace it with `dokan_get_default_product_status()` to get the default product status for the current user 🐛 fix(ProductController.php): change `dokan_get_new_post_status()` to `dokan_get_default_product_status()` to use the correct default product status for the current user 🐛 fix(functions.php): change `dokan_get_new_post_status()` to `dokan_get_default_product_status()` to use the correct default product status for the current user * 🐛 fix(Products.php): change post_status assignment to use dokan_get_default_product_status() function for improved consistency and reliability 🐛 fix(ProductController.php): change post_status assignment to use dokan_get_default_product_status() function for improved consistency and reliability * 🔥 refactor(NewProduct.php): remove unnecessary check for dokan_get_option before triggering email 🐛 fix(NewProduct.php): handle case where product is not found and return early to prevent errors * 🔧 fix(Manager.php): remove unused 'dokan_email_trigger_new_pending_product' action to clean up code 🔧 fix(NewProduct.php): remove unused $postdata parameter from 'dokan_new_product_added' and 'dokan_product_updated' actions to improve code clarity 🔧 fix(NewProductPending.php): remove unused $postdata parameter from 'dokan_new_product_added' and 'dokan_product_updated' actions to improve code clarity 🔧 fix(NewProduct.php): update trigger() method in NewProduct class to only send email if product status is 'publish' and remove unnecessary condition checks 🔧 fix(NewProductPending.php): update trigger() method in NewProductPending class to only send email if product status is 'pending' and remove unnecessary condition checks * 🐛 fix(functions.php): fix incorrect assignment of $seller_id variable in dokan_get_default_product_status function ✨ feat(functions.php): use dokan_get_current_user_id function to get the current user id if $seller_id is null in dokan_get_default_product_status function * 🐛 fix(functions.php): remove unnecessary space before semicolon in dokan_get_default_product_status function to improve code readability * 🐛 fix(ProductController.php): fix logic for setting post status in ProductController class The logic for setting the post status in the ProductController class has been fixed. Previously, the post status was not being set correctly when the request contained a 'status' parameter. The fix includes the following changes: - Added a new variable `$default_product_status` to store the default product status. - Updated the logic for setting the post status based on the request 'status' parameter. - Added a switch statement to handle different cases of the 'status' parameter. - Updated the default case to set the post status to the value of the 'status' parameter. This fix ensures that the post status is set correctly based on the request 'status' parameter, improving the functionality of the ProductController class. * fix: api product status --------- Co-authored-by: Shazahanul Islam Shohag Co-authored-by: Aunshon <32583103+Aunshon@users.noreply.github.com> --- assets/src/js/product-editor.js | 39 +++++++ includes/Admin/Notices/Manager.php | 50 +++++++++ includes/Admin/Settings.php | 11 ++ includes/Blocks/ProductBlock.php | 8 +- includes/Dashboard/Templates/Products.php | 19 +++- includes/Emails/Manager.php | 2 +- includes/Emails/NewProduct.php | 103 +++++++++--------- includes/Emails/NewProductPending.php | 94 ++++++++++------- includes/Product/Hooks.php | 115 +++++++++++++++++---- includes/Product/functions.php | 2 +- includes/REST/ProductController.php | 20 ++-- includes/functions.php | 80 ++++++++++++-- templates/products/edit-product-single.php | 39 ++++++- templates/products/listing-filter.php | 6 +- templates/products/others.php | 35 ++----- templates/products/products-listing.php | 27 +++-- 16 files changed, 475 insertions(+), 175 deletions(-) diff --git a/assets/src/js/product-editor.js b/assets/src/js/product-editor.js index c865184a32..7f6e7af369 100755 --- a/assets/src/js/product-editor.js +++ b/assets/src/js/product-editor.js @@ -70,9 +70,48 @@ this.attribute.disbalePredefinedAttribute(); + this.setCorrectProductId(); + $( 'body' ).trigger( 'dokan-product-editor-loaded', this ); }, + setCorrectProductId : function () { + let productForm = $( '.dokan-product-edit-form' ); + if ( ! productForm ) { + return; + } + let productId = $( '#dokan_product_id' ).val(); + + if ( window.history.replaceState ) { + let url = new URL( document.location ); + let searchParams = url.searchParams; + + let currentProductId = searchParams.get( 'product_id' ); + if ( ! ( '' === currentProductId || '0' === currentProductId ) ) { + return; + } + + // new value of "product_id" is set to new value + searchParams.set('product_id', productId ); + + let action = searchParams.get( 'action' ); + if ( 'edit' !== action ) { + return; + } + + // change the search property of the main url + url.search = searchParams.toString(); + + // the new url string + let newUrl = url.toString(); + let stateData = { + product_id: productId, + } + + window.history.replaceState( stateData, document.title, newUrl ); + } + }, + saleSchedule: function() { var $wrap = $(this).closest( '.dokan-product-field-content', 'div, table' ); $(this).hide(); diff --git a/includes/Admin/Notices/Manager.php b/includes/Admin/Notices/Manager.php index 312c4c6c7c..5113a353de 100644 --- a/includes/Admin/Notices/Manager.php +++ b/includes/Admin/Notices/Manager.php @@ -48,6 +48,8 @@ private function init_hooks() { add_action( 'admin_notices', [ $this, 'render_missing_woocommerce_notice' ] ); add_action( 'admin_notices', [ $this, 'render_global_admin_notices_html' ] ); add_filter( 'dokan_admin_notices', [ $this, 'show_permalink_setting_notice' ] ); + add_filter( 'dokan_admin_notices', [ $this, 'show_one_step_product_add_notice' ] ); + add_action( 'wp_ajax_dismiss_dokan_one_step_product_notice', [ $this, 'dismiss_dokan_one_step_product_notice' ] ); } /** @@ -124,4 +126,52 @@ public function show_permalink_setting_notice( $notices ) { return $notices; } + + /** + * Display single page product page create notice. + * + * @since DOKAN_SINCE + * + * @param array $notices + * + * @return array + */ + public function show_one_step_product_add_notice( $notices ) { + if ( 'yes' !== get_option( 'dismiss_dokan_one_step_product_nonce', 'no' ) ) { + $notices[] = [ + 'type' => 'alert', + 'title' => __( 'New One-Step Product Form', 'dokan-lite' ), + 'description' => __( 'Try it now to enhance your vendor\'s product upload experience, the older two-step version will be retired in one month.', 'dokan-lite' ), + 'priority' => 1, + 'show_close_button' => true, + 'ajax_data' => [ + 'action' => 'dismiss_dokan_one_step_product_notice', + 'nonce' => wp_create_nonce( 'dismiss_dokan_one_step_product_nonce' ), + ], + ]; + } + + return $notices; + } + + /** + * Dismisses one-step product create notice. + * + * @since DOKAN_SINCE + * + * @return void + */ + public function dismiss_dokan_one_step_product_notice() { + if ( ! isset( $_POST['nonce'] ) || ! wp_verify_nonce( sanitize_key( wp_unslash( $_POST['nonce'] ) ), 'dismiss_dokan_one_step_product_nonce' ) ) { + wp_send_json_error( __( 'Invalid nonce', 'dokan-lite' ) ); + } + + // phpcs:ignore + if ( ! current_user_can( 'manage_woocommerce' ) ) { + wp_send_json_error( __( 'You have no permission to do that', 'dokan-lite' ) ); + } + + update_option( 'dismiss_dokan_one_step_product_nonce', 'yes' ); + wp_send_json_success(); + } } diff --git a/includes/Admin/Settings.php b/includes/Admin/Settings.php index 26e9b568c7..06d1e33398 100644 --- a/includes/Admin/Settings.php +++ b/includes/Admin/Settings.php @@ -539,12 +539,23 @@ public function get_settings_fields() { 'default' => 'on', 'tooltip' => __( 'If checked, vendors will have permission to sell immediately after registration. If unchecked, newly registered vendors cannot add products until selling capability is activated manually from admin dashboard.', 'dokan-lite' ), ], + 'one_step_product_create' => [ + 'name' => 'one_step_product_create', + 'label' => __( 'One Page Product Creation', 'dokan-lite' ), + 'desc' => __( 'Add new product in single page view', 'dokan-lite' ), + 'type' => 'switcher', + 'default' => 'on', + 'tooltip' => __( 'If disabled, instead of a single add product page it will open a pop up window or vendor will redirect to product page when adding new product.', 'dokan-lite' ), + ], 'disable_product_popup' => [ 'name' => 'disable_product_popup', 'label' => __( 'Disable Product Popup', 'dokan-lite' ), 'desc' => __( 'Disable add new product in popup view', 'dokan-lite' ), 'type' => 'switcher', 'default' => 'off', + 'show_if' => [ + 'dokan_selling.one_step_product_create' => [ 'equal' => 'off' ], + ], 'tooltip' => __( 'If disabled, instead of a pop up window vendor will redirect to product page when adding new product.', 'dokan-lite' ), ], 'order_status_change' => [ diff --git a/includes/Blocks/ProductBlock.php b/includes/Blocks/ProductBlock.php index 68989c38a3..000624ce54 100644 --- a/includes/Blocks/ProductBlock.php +++ b/includes/Blocks/ProductBlock.php @@ -23,13 +23,7 @@ public function get_configurations() { 'dokan_get_product_block_configurations', [ 'disable_popup' => 'on' === dokan_get_option( 'disable_product_popup', 'dokan_selling', 'off' ), - 'statuses' => apply_filters( - 'dokan_post_status', - [ - 'publish' => __( 'Online', 'dokan-lite' ), - 'draft' => __( 'Draft', 'dokan-lite' ), - ] - ), + 'statuses' => dokan_get_available_post_status(), 'visibility_options' => dokan_get_product_visibility_options(), 'manage_stocks' => 'yes' === get_option( 'woocommerce_manage_stock' ), 'stock_statuses' => [ diff --git a/includes/Dashboard/Templates/Products.php b/includes/Dashboard/Templates/Products.php index 7b1ce58a06..3a4a42bed2 100644 --- a/includes/Dashboard/Templates/Products.php +++ b/includes/Dashboard/Templates/Products.php @@ -164,11 +164,15 @@ public static function load_others_template( $post, $post_id ) { $_visibility = $product->get_catalog_visibility(); $visibility_options = dokan_get_product_visibility_options(); + // set new post status + $post_status = dokan_get_default_product_status( dokan_get_current_user_id() ); + $post_status = $product->get_status() === 'auto-draft' ? $post_status : $product->get_status(); + dokan_get_template_part( 'products/others', '', [ 'post_id' => $post_id, 'post' => $post, - 'post_status' => $post->post_status, + 'post_status' => apply_filters( 'dokan_post_edit_default_status', $post_status, $product ), '_visibility' => $_visibility, 'visibility_options' => $visibility_options, 'class' => '', @@ -283,7 +287,7 @@ public function handle_product_add() { if ( ! self::$errors ) { $timenow = dokan_current_datetime()->setTimezone( new \DateTimeZone( 'UTC' ) ); - $product_status = dokan_get_new_post_status(); + $product_status = dokan_get_default_product_status( dokan_get_current_user_id() ); $post_data = apply_filters( 'dokan_insert_product_post_data', [ 'post_type' => 'product', @@ -438,8 +442,11 @@ public function handle_product_update() { $errors[] = __( 'No product found!', 'dokan-lite' ); } + $current_post_status = get_post_status( $post_id ); + $is_new_product = 'auto-draft' === $current_post_status; + if ( empty( $post_status ) ) { - $post_status = get_post_status( $post_id ); + $post_status = $current_post_status; } if ( ! dokan_is_product_author( $post_id ) ) { @@ -521,7 +528,11 @@ public function handle_product_update() { /** Process all variation products meta */ dokan_process_product_meta( $post_id, $postdata ); - do_action( 'dokan_product_updated', $post_id, $postdata ); + if ( $is_new_product ) { + do_action( 'dokan_new_product_added', $post_id, $postdata ); + } else { + do_action( 'dokan_product_updated', $post_id, $postdata ); + } $redirect = apply_filters( 'dokan_add_new_product_redirect', dokan_edit_product_url( $post_id ), $post_id ); diff --git a/includes/Emails/Manager.php b/includes/Emails/Manager.php index d720d93a78..36b56d644f 100755 --- a/includes/Emails/Manager.php +++ b/includes/Emails/Manager.php @@ -146,7 +146,7 @@ public function register_email_actions( $actions ) { $dokan_email_actions = apply_filters( 'dokan_email_actions', array( 'dokan_new_product_added', - 'dokan_email_trigger_new_pending_product', + 'dokan_product_updated', 'dokan_new_seller_created', 'dokan_after_withdraw_request', 'dokan_withdraw_request_approved', diff --git a/includes/Emails/NewProduct.php b/includes/Emails/NewProduct.php index 86c6818774..dc18d2f846 100644 --- a/includes/Emails/NewProduct.php +++ b/includes/Emails/NewProduct.php @@ -28,7 +28,8 @@ public function __construct() { $this->template_base = DOKAN_DIR . '/templates/'; // Triggers for this email - add_action( 'dokan_new_product_added', array( $this, 'trigger' ), 30, 2 ); + add_action( 'dokan_new_product_added', array( $this, 'trigger' ), 30, 1 ); + add_action( 'dokan_product_updated', array( $this, 'trigger' ), 30, 1 ); // Call parent constructor parent::__construct(); @@ -61,53 +62,61 @@ public function get_default_heading() { * Trigger the sending of this email. * * @param int $product_id The product ID. - * @param array $postdata. */ - public function trigger( $product_id, $postdata ) { - if ( dokan_get_option( 'product_add_mail', 'dokan_general', 'on' ) !== 'on' ) { - return; - } - - if ( dokan_get_new_post_status() === 'pending' ) { - do_action( 'dokan_email_trigger_new_pending_product', $product_id, $postdata ); - return; - } - - if ( ! $this->is_enabled() || ! $this->get_recipient() ) { - return; - } - - $product = wc_get_product( $product_id ); - $seller_id = get_post_field( 'post_author', $product_id ); - $seller = get_user_by( 'id', $seller_id ); - $category = wp_get_post_terms( dokan_get_prop( $product, 'id' ), 'product_cat', array( 'fields' => 'names' ) ); - $category_name = $category ? reset( $category ) : 'N/A'; - - if ( is_a( $product, 'WC_Product' ) ) { - $this->object = $product; - - $this->find['product-title'] = '{product_title}'; - $this->find['price'] = '{price}'; - $this->find['seller-name'] = '{seller_name}'; - $this->find['seller_url'] = '{seller_url}'; - $this->find['category'] = '{category}'; - $this->find['product_link'] = '{product_link}'; - $this->find['site_name'] = '{site_name}'; - $this->find['site_url'] = '{site_url}'; - - $this->replace['product-title'] = $product->get_title(); - $this->replace['price'] = $product->get_price(); - $this->replace['seller-name'] = $seller->display_name; - $this->replace['seller_url'] = dokan_get_store_url( $seller->ID ); - $this->replace['category'] = $category_name; - $this->replace['product_link'] = admin_url( 'post.php?action=edit&post=' . $product_id ); - $this->replace['site_name'] = $this->get_from_name(); - $this->replace['site_url'] = site_url(); - } - - $this->setup_locale(); - $this->send( $this->get_recipient(), $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments() ); - $this->restore_locale(); + public function trigger( $product_id ) { + $product = wc_get_product( $product_id ); + if ( ! $product ) { + return; + } + + // we've added _dokan_new_product_email_sent from version DOKAN_SINCE + // so, we are assuming if the meta doesn't exist, email was already sent to the client + $email_sent = $product->get_meta( '_dokan_new_product_email_sent' ); + if ( empty( $email_sent ) || true === wc_string_to_bool( $email_sent ) ) { + return; + } + + if ( 'publish' !== $product->get_status() ) { + return; + } + + $product->update_meta_data( '_dokan_new_product_email_sent', 'yes' ); + $product->save(); + + if ( ! $this->is_enabled() || ! $this->get_recipient() ) { + return; + } + + $seller_id = get_post_field( 'post_author', $product_id ); + $seller = get_user_by( 'id', $seller_id ); + $category = wp_get_post_terms( dokan_get_prop( $product, 'id' ), 'product_cat', array( 'fields' => 'names' ) ); + $category_name = $category ? reset( $category ) : 'N/A'; + + if ( is_a( $product, 'WC_Product' ) ) { + $this->object = $product; + + $this->find['product-title'] = '{product_title}'; + $this->find['price'] = '{price}'; + $this->find['seller-name'] = '{seller_name}'; + $this->find['seller_url'] = '{seller_url}'; + $this->find['category'] = '{category}'; + $this->find['product_link'] = '{product_link}'; + $this->find['site_name'] = '{site_name}'; + $this->find['site_url'] = '{site_url}'; + + $this->replace['product-title'] = $product->get_title(); + $this->replace['price'] = $product->get_price(); + $this->replace['seller-name'] = $seller->display_name; + $this->replace['seller_url'] = dokan_get_store_url( $seller->ID ); + $this->replace['category'] = $category_name; + $this->replace['product_link'] = admin_url( 'post.php?action=edit&post=' . $product_id ); + $this->replace['site_name'] = $this->get_from_name(); + $this->replace['site_url'] = site_url(); + } + + $this->setup_locale(); + $this->send( $this->get_recipient(), $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments() ); + $this->restore_locale(); } /** diff --git a/includes/Emails/NewProductPending.php b/includes/Emails/NewProductPending.php index dc8c1aa0c5..6ea6f7c94a 100644 --- a/includes/Emails/NewProductPending.php +++ b/includes/Emails/NewProductPending.php @@ -29,7 +29,8 @@ public function __construct() { $this->template_base = DOKAN_DIR . '/templates/'; // Triggers for this email - add_action( 'dokan_email_trigger_new_pending_product', array( $this, 'trigger' ), 30, 2 ); + add_action( 'dokan_new_product_added', array( $this, 'trigger' ), 30, 1 ); + add_action( 'dokan_product_updated', array( $this, 'trigger' ), 30, 1 ); // Call parent constructor parent::__construct(); @@ -62,44 +63,61 @@ public function get_default_heading() { * Trigger the sending of this email. * * @param int $product_id The product ID. - * @param array $postdata. */ - public function trigger( $product_id, $postdata ) { - if ( ! $this->is_enabled() || ! $this->get_recipient() ) { - return; - } - - $product = wc_get_product( $product_id ); - $seller_id = get_post_field( 'post_author', $product_id ); - $seller = get_user_by( 'id', $seller_id ); - $category = wp_get_post_terms( dokan_get_prop( $product, 'id' ), 'product_cat', array( 'fields' => 'names' ) ); - $category_name = $category ? reset( $category ) : 'N/A'; - - if ( is_a( $product, 'WC_Product' ) ) { - $this->object = $product; - - $this->find['product-title'] = '{product_title}'; - $this->find['price'] = '{price}'; - $this->find['seller-name'] = '{seller_name}'; - $this->find['seller_url'] = '{seller_url}'; - $this->find['category'] = '{category}'; - $this->find['product_link'] = '{product_link}'; - $this->find['site_name'] = '{site_name}'; - $this->find['site_url'] = '{site_url}'; - - $this->replace['product-title'] = $product->get_title(); - $this->replace['price'] = $product->get_price(); - $this->replace['seller-name'] = $seller->display_name; - $this->replace['seller_url'] = dokan_get_store_url( $seller->ID ); - $this->replace['category'] = $category_name; - $this->replace['product_link'] = admin_url( 'post.php?action=edit&post=' . $product_id ); - $this->replace['site_name'] = $this->get_from_name(); - $this->replace['site_url'] = site_url(); - } - - $this->setup_locale(); - $this->send( $this->get_recipient(), $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments() ); - $this->restore_locale(); + public function trigger( $product_id ) { + $product = wc_get_product( $product_id ); + if ( ! $product ) { + return; + } + + // we've added _dokan_new_product_email_sent from version DOKAN_SINCE + // so, we are assuming if the meta doesn't exist, email was already sent to the client + $email_sent = $product->get_meta( '_dokan_new_product_email_sent' ); + if ( empty( $email_sent ) || true === wc_string_to_bool( $email_sent ) ) { + return; + } + + if ( 'pending' !== $product->get_status() ) { + return; + } + + $product->update_meta_data( '_dokan_new_product_email_sent', 'yes' ); + $product->save(); + + if ( ! $this->is_enabled() || ! $this->get_recipient() ) { + return; + } + + $seller_id = get_post_field( 'post_author', $product_id ); + $seller = get_user_by( 'id', $seller_id ); + $category = wp_get_post_terms( dokan_get_prop( $product, 'id' ), 'product_cat', array( 'fields' => 'names' ) ); + $category_name = $category ? reset( $category ) : 'N/A'; + + if ( is_a( $product, 'WC_Product' ) ) { + $this->object = $product; + + $this->find['product-title'] = '{product_title}'; + $this->find['price'] = '{price}'; + $this->find['seller-name'] = '{seller_name}'; + $this->find['seller_url'] = '{seller_url}'; + $this->find['category'] = '{category}'; + $this->find['product_link'] = '{product_link}'; + $this->find['site_name'] = '{site_name}'; + $this->find['site_url'] = '{site_url}'; + + $this->replace['product-title'] = $product->get_title(); + $this->replace['price'] = $product->get_price(); + $this->replace['seller-name'] = $seller->display_name; + $this->replace['seller_url'] = dokan_get_store_url( $seller->ID ); + $this->replace['category'] = $category_name; + $this->replace['product_link'] = admin_url( 'post.php?action=edit&post=' . $product_id ); + $this->replace['site_name'] = $this->get_from_name(); + $this->replace['site_url'] = site_url(); + } + + $this->setup_locale(); + $this->send( $this->get_recipient(), $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments() ); + $this->restore_locale(); } /** diff --git a/includes/Product/Hooks.php b/includes/Product/Hooks.php index c7b344027e..dee9eff296 100644 --- a/includes/Product/Hooks.php +++ b/includes/Product/Hooks.php @@ -3,6 +3,7 @@ namespace WeDevs\Dokan\Product; use WeDevs\Dokan\ProductCategory\Helper; +use WC_Product; /** * Admin Hooks @@ -23,11 +24,28 @@ public function __construct() { add_action( 'dokan_bulk_product_status_change', [ $this, 'bulk_product_delete' ], 10, 2 ); add_action( 'dokan_store_profile_frame_after', [ $this, 'store_products_orderby' ], 10, 2 ); add_action( 'wp_ajax_dokan_store_product_search_action', [ $this, 'store_product_search_action' ], 10, 2 ); - add_action( 'wp_ajax_nopriv_dokan_store_product_search_action', [ $this, 'store_product_search_action' ], 10, 2 ); - add_action( 'woocommerce_product_quick_edit_save', [ $this, 'update_category_data_for_bulk_and_quick_edit' ], 10, 1 ); - add_action( 'woocommerce_product_bulk_edit_save', [ $this, 'update_category_data_for_bulk_and_quick_edit' ], 10, 1 ); + add_action( + 'wp_ajax_nopriv_dokan_store_product_search_action', [ + $this, + 'store_product_search_action', + ], 10, 2 + ); + add_action( + 'woocommerce_product_quick_edit_save', [ + $this, + 'update_category_data_for_bulk_and_quick_edit', + ], 10, 1 + ); + add_action( + 'woocommerce_product_bulk_edit_save', [ + $this, + 'update_category_data_for_bulk_and_quick_edit', + ], 10, 1 + ); add_action( 'woocommerce_new_product', [ $this, 'update_category_data_for_new_and_update_product' ], 10, 1 ); add_action( 'woocommerce_update_product', [ $this, 'update_category_data_for_new_and_update_product' ], 10, 1 ); + add_filter( 'dokan_post_status', [ $this, 'set_product_status' ], 1, 2 ); + add_action( 'dokan_new_product_added', [ $this, 'set_new_product_email_status' ], 1, 1 ); // Remove product type filter if pro not exists. add_filter( 'dokan_product_listing_filter_args', [ $this, 'remove_product_type_filter' ] ); @@ -40,9 +58,8 @@ public function __construct() { /** * Callback for Ajax Action Initialization * - * @since DOKAN_LITE_SINCE - * * @return void + * @since DOKAN_LITE_SINCE */ public function store_product_search_action() { if ( ! isset( $_POST['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $_POST['_wpnonce'] ), 'dokan_store_product_search_nonce' ) ) { @@ -162,9 +179,8 @@ public function store_product_search_action() { /** * Output the store product sorting options * - * @since DOKAN_LITE_SINCE - * * @return void + * @since DOKAN_LITE_SINCE */ public function store_products_orderby() { $store_products = dokan_get_option( 'store_products', 'dokan_appearance' ); @@ -179,19 +195,24 @@ public function store_products_orderby() { ?>
-
- + - $name ) : ?> - + - +
'ids' ] ); @@ -306,6 +323,64 @@ private function update_product_categories( $product_id ) { Helper::set_object_terms_from_chosen_categories( $product_id, $chosen_categories ); } + /** + * Set product edit status + * + * @param array $all_statuses + * @param int $product_id + * + * @return array + * @since DOKAN_SINCE + */ + public function set_product_status( $all_statuses, int $product_id ) { + if ( ! is_user_logged_in() ) { + return [ + 'draft' => dokan_get_post_status( 'draft' ), + ]; + } + + $user_id = get_current_user_id(); + if ( ! dokan_is_seller_trusted( $user_id ) ) { + unset( $all_statuses['publish'] ); + } else { + unset( $all_statuses['pending'] ); + } + + $product = wc_get_product( $product_id ); + if ( ! $product ) { + return $all_statuses; + } + + switch ( $product->get_status() ) { + case 'pending': + $all_statuses['pending'] = dokan_get_post_status( 'pending' ); + break; + + case 'publish': + $all_statuses['publish'] = dokan_get_post_status( 'publish' ); + unset( $all_statuses['pending'] ); + break; + } + + return $all_statuses; + } + + /** + * Set new product email status to false + * + * @param int|WC_Product $product_id + * + * @return void + * @since DOKAN_SINCE + */ + public function set_new_product_email_status( $product_id ) { + if ( is_a( $product_id, 'WC_Product' ) ) { + $product_id->update_meta_data( '_dokan_new_product_email_sent', 'no' ); + } else { + update_post_meta( $product_id, '_dokan_new_product_email_sent', 'no' ); + } + } + /** * Remove product type filter if dokan pro does not exist. * diff --git a/includes/Product/functions.php b/includes/Product/functions.php index 7e814b8f3f..8b2f44bdba 100644 --- a/includes/Product/functions.php +++ b/includes/Product/functions.php @@ -53,7 +53,7 @@ function dokan_save_product( $args ) { return $error; } - $post_status = ! empty( $data['post_status'] ) ? sanitize_text_field( $data['post_status'] ) : dokan_get_new_post_status(); + $post_status = ! empty( $data['post_status'] ) ? sanitize_text_field( $data['post_status'] ) : dokan_get_default_product_status(); $post_arr = [ 'post_type' => 'product', diff --git a/includes/REST/ProductController.php b/includes/REST/ProductController.php index 5c951b36e3..a837a1c09b 100644 --- a/includes/REST/ProductController.php +++ b/includes/REST/ProductController.php @@ -878,15 +878,23 @@ protected function prepare_object_for_database( $request, $creating = false ) { } // Post status. - if ( dokan_is_seller_trusted( get_current_user_id() ) ) { - if ( isset( $request['status'] ) ) { - $product->set_status( get_post_status_object( $request['status'] ) ? $request['status'] : 'draft' ); + $default_product_status = dokan_get_default_product_status(); + $post_status = $product->get_status(); + if ( isset( $request['status'] ) ) { + switch ( $request['status'] ) { + case 'publish': + $post_status = $default_product_status; + break; + case 'pending': + $post_status = 'pending' === $post_status ? 'pending' : $default_product_status; + break; + default: + $post_status = $request['status']; } - } else { - $status = dokan_get_option( 'product_status', 'dokan_selling', 'pending' ); - $product->set_status( get_post_status_object( $status ) ? $status : 'draft' ); } + $product->set_status( get_post_status_object( $post_status ) ? $post_status : 'draft' ); + // Post slug. if ( isset( $request['slug'] ) ) { $product->set_slug( $request['slug'] ); diff --git a/includes/functions.php b/includes/functions.php index ce46fdd655..a7c5ba47d4 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -552,19 +552,49 @@ function dokan_get_commission_type( $seller_id = 0, $product_id = 0, $category_i return $global_type; } +/** + * Get the default product status for new and edited product for seller based on settings + * + * @since DOKAN_SINCE + * + * @param int|null $seller_id + * + * @return string + */ +function dokan_get_default_product_status( $seller_id = null ) { + $seller_id = null === $seller_id ? dokan_get_current_user_id() : $seller_id; + $is_trusted = dokan_is_seller_trusted( $seller_id ); + $status = 'pending'; + + if ( $is_trusted ) { + $status = 'publish'; + } + + // below code will be removed on a future version of Dokan Lite + if ( dokan()->is_pro_exists() && version_compare( DOKAN_PRO_PLUGIN_VERSION, '3.8.3', '<' ) ) { + $status = 'publish' === $status ? $status : dokan_get_option( 'product_status', 'dokan_selling', 'pending' ); + } + + $status = apply_filters_deprecated( 'dokan_get_new_post_status', [ $status, $seller_id, $is_trusted ], 'DOKAN_SINCE', 'dokan_get_default_product_status' ); + + return apply_filters( 'dokan_get_default_product_status', $status, $seller_id, $is_trusted ); +} + /** * Get product status based on user id and settings * * @since 3.7.20 added a new filter hook `dokan_get_new_post_status` * + * @since DOKAN_SINCE made the function deprecated + * + * @param int|null $seller_id + * + * @deprecated DOKAN_SINCE use `dokan_get_default_product_status` instead + * * @return string */ -function dokan_get_new_post_status() { - $user_id = get_current_user_id(); - $is_trusted = dokan_is_seller_trusted( $user_id ); - $status = $is_trusted ? 'publish' : dokan_get_option( 'product_status', 'dokan_selling', 'pending' ); - - return apply_filters( 'dokan_get_new_post_status', $status, $user_id, $is_trusted ); +function dokan_get_new_post_status( $seller_id = null ) { + return dokan_get_default_product_status( $seller_id ); } /** @@ -742,6 +772,30 @@ function dokan_get_post_status( $status = '' ) { return $statuses; } +/** + * Get product available statuses + * + * @since DOKAN_SINCE + * + * @args int|object $product_id + * + * @return array + */ +if ( ! function_exists( 'dokan_get_available_post_status' ) ) { + + function dokan_get_available_post_status( $product_id = 0 ) { + return apply_filters( + 'dokan_post_status', + [ + 'publish' => dokan_get_post_status( 'publish' ), + 'draft' => dokan_get_post_status( 'draft' ), + 'pending' => dokan_get_post_status( 'pending' ), + ], + $product_id + ); + } +} + /** * Get user friendly post status label based class * @@ -979,21 +1033,26 @@ function dokan_add_subpage_to_url( $url, $subpage ) { * Get edit product url * * @param int|WC_Product $product + * @param bool $is_new_product Is new product. Default `false`. * * @return string|false on failure */ -function dokan_edit_product_url( $product ) { +function dokan_edit_product_url( $product, bool $is_new_product = false ) { if ( ! $product instanceof WC_Product ) { $product = wc_get_product( $product ); } - if ( ! $product ) { + if ( ! $product && ! $is_new_product ) { return false; } + if ( ! $product && $is_new_product ) { + $product = new WC_Product(); + } + $url = add_query_arg( [ - 'product_id' => $product->get_id(), + 'product_id' => $is_new_product ? 0 : $product->get_id(), 'action' => 'edit', '_dokan_edit_product_nonce' => wp_create_nonce( 'dokan_edit_product_nonce' ), ], @@ -4239,8 +4298,7 @@ function dokan_user_update_to_seller( $user, $data ) { $vendor->make_active(); } - $publishing = dokan_get_option( 'product_status', 'dokan_selling', 'pending' ); - update_user_meta( $user_id, 'dokan_publishing', $publishing ); + update_user_meta( $user_id, 'dokan_publishing', 'no' ); do_action( 'dokan_new_seller_created', $user_id, $vendor->get_shop_info() ); } diff --git a/templates/products/edit-product-single.php b/templates/products/edit-product-single.php index b20d423eb3..049cd14de0 100755 --- a/templates/products/edit-product-single.php +++ b/templates/products/edit-product-single.php @@ -6,6 +6,7 @@ global $post; $from_shortcode = false; +$new_product = false; if ( ! isset( $post->ID ) @@ -30,21 +31,38 @@ if ( isset( $_GET['product_id'] ) ) { $post_id = intval( $_GET['product_id'] ); $post = get_post( $post_id ); - $post_title = $post->post_title; - $post_content = $post->post_content; - $post_excerpt = $post->post_excerpt; $post_status = $post->post_status; + $auto_draft = 'auto-draft' === $post_status; + $post_title = $auto_draft ? '' : $post->post_title; + $post_content = $auto_draft ? '' : $post->post_content; + $post_excerpt = $post->post_excerpt; $product = wc_get_product( $post_id ); $from_shortcode = true; } +if ( isset( $_GET['product_id'] ) && 0 === absint( $_GET['product_id'] ) ) { + $post_id = intval( $_GET['product_id'] ); + $post_title = ''; + $post_content = ''; + $post_excerpt = ''; + $post_status = 'auto-draft'; + $product = new WC_Product( $post_id ); + + $product->set_name( $post_title ); + $product->set_status( $post_status ); + $post_id = $product->save(); + $post = get_post( $post_id ); + $from_shortcode = true; + $new_product = true; +} + if ( ! dokan_is_product_author( $post_id ) ) { wp_die( esc_html__( 'Access Denied', 'dokan-lite' ) ); } $_regular_price = get_post_meta( $post_id, '_regular_price', true ); $_sale_price = get_post_meta( $post_id, '_sale_price', true ); -$is_discount = ! empty( $_sale_price ) ? true : false; +$is_discount = ! empty( $_sale_price ); $_sale_price_dates_from = get_post_meta( $post_id, '_sale_price_dates_from', true ); $_sale_price_dates_to = get_post_meta( $post_id, '_sale_price_dates_to', true ); @@ -109,11 +127,21 @@ * @since 2.4 */ do_action( 'dokan_product_content_inside_area_before' ); + + if ( $new_product ) { + do_action( 'dokan_new_product_before_product_area' ); + } ?>

- + post_status ) { + esc_html_e( 'Add New Product', 'dokan-lite' ); + } else { + esc_html_e( 'Edit Product', 'dokan-lite' ); + } + ?> post_status ) ); ?> @@ -440,6 +468,7 @@ + diff --git a/templates/products/listing-filter.php b/templates/products/listing-filter.php index 8aa5d87877..7b9848a634 100644 --- a/templates/products/listing-filter.php +++ b/templates/products/listing-filter.php @@ -71,7 +71,11 @@ - + + diff --git a/templates/products/others.php b/templates/products/others.php index 48a62ceaf8..165f041ba1 100644 --- a/templates/products/others.php +++ b/templates/products/others.php @@ -1,3 +1,7 @@ +ID ); +?> +

@@ -11,30 +15,13 @@
- - __( 'Online', 'dokan-lite' ), - 'draft' => __( 'Draft', 'dokan-lite' ), - ], - $post - ); - ?> - - - - - - - +
diff --git a/templates/products/products-listing.php b/templates/products/products-listing.php index b77884ec76..412b597a4d 100755 --- a/templates/products/products-listing.php +++ b/templates/products/products-listing.php @@ -34,21 +34,28 @@ ?>
- wp_create_nonce( 'dokan_add_product_nonce' ), ], dokan_get_navigation_url( 'new-product' ) ); - $product_listing_args = [ - 'author' => dokan_get_current_user_id(), - 'posts_per_page' => 1, - 'post_status' => apply_filters( 'dokan_product_listing_post_statuses', [ 'publish', 'draft', 'pending', 'future' ] ), + $product_listing_args = [ + 'author' => dokan_get_current_user_id(), + 'posts_per_page' => 1, + 'post_status' => apply_filters( + 'dokan_product_listing_post_statuses', [ + 'publish', + 'draft', + 'pending', + 'future', + ] + ), ]; - $product_query = dokan()->product->all( $product_listing_args ); + $product_query = dokan()->product->all( $product_listing_args ); if ( $product_query->have_posts() ) { ?> @@ -139,8 +146,8 @@ class="dokan-btn dokan-btn-theme" array( 'taxonomy' => 'product_type', 'field' => 'slug', - 'terms' => apply_filters( 'dokan_product_listing_exclude_type', array() ), - 'operator' => 'NOT IN', + 'terms' => ! dokan()->is_pro_exists() ? [ 'simple' ] : apply_filters( 'dokan_product_listing_exclude_type', array() ), + 'operator' => ! dokan()->is_pro_exists() ? 'IN' : 'NOT IN', ), ), ); From 06001bf0999cb0c17e3972dc5a17e23ec7da47a3 Mon Sep 17 00:00:00 2001 From: Farazi Forhad Date: Tue, 12 Sep 2023 19:11:15 +0600 Subject: [PATCH 24/69] Add New Form for Bug & Feature Request --- .github/ISSUE_TEMPLATE/bug_report.md | 34 -------------- .github/ISSUE_TEMPLATE/bug_report.yml | 54 ++++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 20 -------- .github/ISSUE_TEMPLATE/feature_request.yml | 31 +++++++++++++ 4 files changed, 85 insertions(+), 54 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index c922c57ee1..0000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: Bug -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Environment (please complete the following information):** - - Dokan Version: [e.g. v3.1.2] - - Dokan Pro Version: [e.g. v3.1.2] - - WooCommerce Version: [e.g. v4.9.2] - - Browser [e.g. chrome, safari] - - Current Theme: [e.g. Store Front] - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000000..982a51b7c8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,54 @@ +name: Bug Report +description: File a bug report +labels: ["bug", "triage"] +projects: ["dokan-plugin"] +assignees: + - dokan +body: + - type: textarea + id: what-happened + attributes: + label: Bug Description + description: In a few sentences or paragraphs, describe the bug in detail. Include information such as what the bug does, what was expected, steps to reproduce the bug, any error messages, and the impact of the bug on the application. + validations: + required: true + - type: textarea + id: logs + attributes: + label: Step To Reproduce + description: List step-by-step instructions to reproduce the bug. This helps the assigned team member understand and replicate the issue. + value: | + 1. Go to '...' + 2. Click on '....' + 3. Scroll down to '....' + 4. See error + - type: textarea + id: logs2 + attributes: + label: Expected Behaviour + description: Describe what you expected to happen when performing the steps listed above. + validations: + required: true + - type: textarea + id: logs3 + attributes: + label: Actual Behaviour + description: Describe what actually happened when performing the steps, highlighting the bug's behavior. + validations: + required: true + - type: textarea + id: logs4 + attributes: + label: Additional Information + description: Include any other relevant information, any images or videos, such as related issues, links to documentation, or any workarounds if they exist. + - type: textarea + id: logs5 + attributes: + label: Environment (please complete the following information) + value: | + 1. Dokan Version: [e.g. v3.1.2] + 2. Dokan Pro Version: [e.g. v3.1.2] + 3. WooCommerce Version: [e.g. v4.9.2] + 4. Browser [e.g. chrome, safari] + 5. Current Theme: [e.g. Store Front] + render: shell diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index adc97e3e28..0000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: Feature Request -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000000..51e47ff141 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,31 @@ +name: Feature Request +description: File a feature request +projects: ["dokan-plugin"] +assignees: + - dokan +body: + - type: textarea + id: what-happened + attributes: + label: Is your feature request related to a problem? Please describe. + description: A clear and concise description of what the problem is. Ex. I'm always frustrated when.... + validations: + required: true + - type: textarea + id: what-happened1 + attributes: + label: Describe the solution you'd like + description: A clear and concise description of what you want to happen. + validations: + required: true + - type: textarea + id: what-happened2 + attributes: + label: Describe alternatives you've considered + description: A clear and concise description of any alternative solutions or features you've considered. + - type: textarea + id: what-happened3 + attributes: + label: Additional context + description: Add any other context or screenshots about the feature request here. + \ No newline at end of file From a7a89cd4b4b6a8c965174ee21695523c8221c46d Mon Sep 17 00:00:00 2001 From: Nurul Umbhiya Date: Wed, 13 Sep 2023 15:10:54 +0600 Subject: [PATCH 25/69] chore: added some unwanted files to gitignore --- .gitignore | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.gitignore b/.gitignore index 150f75c86a..fbdaef1b15 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,19 @@ config.json phpcs-report.txt /phpcs.xml .phpunit.result.cache + +#unwanted webpack files +assets/js/admin.js +assets/js/dokan-admin-product-style.js +assets/js/dokan-product-category-ui.js +assets/js/dokan-promo-notice.js.LICENSE.txt +assets/js/global-admin.js +assets/js/plugin.js +assets/js/reverse-withdrawal-style.js +assets/js/rtl.js +assets/js/setup-no-wc-style.js +assets/js/setup.js +assets/js/style.js +assets/js/vue-admin.js.LICENSE.txt +assets/js/vue-bootstrap.js.LICENSE.txt +assets/js/vue-frontend.js.LICENSE.txt From 9c32d2bf60c1aca17b6f0d1e8c7386d031dcfb57 Mon Sep 17 00:00:00 2001 From: Nurul Umbhiya Date: Wed, 13 Sep 2023 22:39:57 +0600 Subject: [PATCH 26/69] chore: bump version to 3.8.2 --- README.md | 25 +- assets/css/style.css | 11 +- assets/js/dokan-admin-product.js | 2 +- assets/js/dokan.js | 2 +- assets/js/vue-admin.js | 2 +- dokan.php | 10 +- includes/Admin/Notices/Manager.php | 4 +- includes/Emails/NewProduct.php | 2 +- includes/Emails/NewProductPending.php | 2 +- includes/Order/Admin/Permissions.php | 2 +- includes/Product/Hooks.php | 6 +- includes/functions.php | 10 +- languages/dokan-lite.pot | 988 +++++++++--------- package-lock.json | 1387 +++++++++++++------------ package.json | 4 +- readme.txt | 25 +- templates/whats-new.php | 53 + 17 files changed, 1347 insertions(+), 1188 deletions(-) diff --git a/README.md b/README.md index 78fc21e980..5f8005492c 100644 --- a/README.md +++ b/README.md @@ -2,12 +2,12 @@ **Contributors:** [tareq1988](https://profiles.wordpress.org/tareq1988/), [wedevs](https://profiles.wordpress.org/wedevs/), [nizamuddinbabu](https://profiles.wordpress.org/nizamuddinbabu/) **Donate Link:** http://tareq.co/donate/ **Tags:** WooCommerce multivendor marketplace, multi vendor marketplace, multi seller store, multi-vendor, multi seller, commissions, multivendor, marketplace, product vendors, woocommerce vendor, commission rate, e-commerce, woocommerce, ebay, ecommerce. -**Requires at least:** 5.4 -**Tested up to:** 6.3.0 +**Requires at least:** 5.6 +**Tested up to:** 6.3.1 **WC requires at least:** 5.0.0 -**WC tested up to:** 8.0.2 +**WC tested up to:** 8.1.0 **Requires PHP:** 7.3 -**Stable tag:** 3.8.1 +**Stable tag:** 3.8.2 **License:** GPLv2 or later **License URI:** http://www.gnu.org/licenses/gpl-2.0.html @@ -338,6 +338,23 @@ A. Just install and activate the PRO version without deleting the free plugin. A ## Changelog ## +### v3.8.2 ( Sep 13, 2023 ) ### + +- **new:** Feature: Single-page product creation form. +Before this release, vendors had to go through a two-step process to create a product. However, with this release, a single-page product creation form has been introduced. To enable this feature, you need to navigate to the WordPress admin panel → Dokan → Settings → Selling Options → One Page Product Creation. +It’s important to note that in the next version of Dokan, the Add New Product popup and the Add New Product form will be removed. After that, the Single-Page product form will be the default system for creating a product from the vendor dashboard. +- **new:** Feature: Ask for product review +The Ask for Product Review feature in Dokan allows vendors to set the product status to draft while creating a product using the single-page product creation form. After the vendor is satisfied with the edit, they can either ask for a review or publish the product directly based on the admin settings and vendor capability. +- **fix:** Fixed an issue where orders can’t be filtered by vendor under Admin Dashboard → WooCommerce → Order lists page if HPOS feature is enabled +- **fix:** Fixed an issue where multiple sub-orders has been created for a single parent order. +- **fix:** Fixed and issue while trying to delete all demo products also deleting non-dummy products while calling the API endpoints multiple times +- **fix:** Fixed an issue where Dokan Pro’s Product Status setting were used even though Dokan Pro plugin is deactivated. +- **fix:** Fixed an issue where products were visible beyond Simple Products in the product list page under the vendor dashboard when Dokan Pro was deactivated or not installed. +- **update:** Removed unnecessary product type filter from Vendor Dashboard product list page since there is only one product type available in Dokan Lite +- **update:** [VendorRegistration] Improved Compatibility with WooCommerce Password Settings +In the past, when vendors registered using the [dokan-vendor-registration] shortcode, the process did not align with WooCommerce's automatic password generation settings. However, in the latest update, we've enhanced this process. The vendor registration form presented through the [dokan-vendor-registration] shortcode now seamlessly adheres to WooCommerce's automatic password generation settings. This enhancement ensures a more unified and user-friendly registration experience for vendors, in line with WooCommerce's standard practices. +- **update:** Added shipping tax fee recipient field setting under admin setup wizard. + ### v3.8.1 ( Aug 25, 2023 ) ### - **fix:** Fixed a console warning under Dokan admin settings for Google Map integration diff --git a/assets/css/style.css b/assets/css/style.css index 3036cb4eb9..624e6dfe47 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -2287,8 +2287,8 @@ article.dokan-notice-single-notice-area span.dokan-single-announcement-date { font-size: 17px; color: #fff; position: absolute; - top: 10px; - right: 15px; + top: 0; + right: 0; width: 33px; z-index: 1; cursor: pointer; @@ -2318,8 +2318,7 @@ article.dokan-notice-single-notice-area span.dokan-single-announcement-date { } @media only screen and (max-width: 450px) { .dokan-dashboard .dokan-dash-sidebar #dokan-navigation { - background: #000; - height: 58px; + height: 33px; position: relative; } .dokan-dashboard .dokan-dash-sidebar #dokan-navigation #mobile-menu-icon { @@ -2341,6 +2340,10 @@ body { div.media-sidebar a.edit-attachment { display: none; } +.daterangepicker .calendar-table th, +.daterangepicker .calendar-table td { + padding: 5px 10px; +} .dokan-dashboard .dokan-dashboard-wrap { display: flex; display: -webkit-flex; diff --git a/assets/js/dokan-admin-product.js b/assets/js/dokan-admin-product.js index 2df15eafb2..590f62ac3f 100644 --- a/assets/js/dokan-admin-product.js +++ b/assets/js/dokan-admin-product.js @@ -1 +1 @@ -!function(n){const t={searchVendors(t){n(t).each((function(){let t=n(this),e=n(t).data();n(t).selectWoo({closeOnSelect:!!e.close_on_select,minimumInputLength:e.minimum_input_length?e.minimum_input_length:"0",ajax:{url:dokan_admin_product.ajaxurl,dataType:"json",delay:250,data:function(n){return{action:e.action,_wpnonce:dokan_admin_product.nonce,s:n.term}},processResults:function(n,t){return t.page=t.page||1,{results:n.data.vendors,pagination:{more:!1}}},cache:!1},language:{errorLoading:function(){return dokan_admin_product.i18n.error_loading},searching:function(){return dokan_admin_product.i18n.searching+"..."},inputTooShort:function(){return dokan_admin_product.i18n.input_too_short+"..."}},escapeMarkup:function(n){return n},templateResult:function(n){return n.loading?n.text:"
"+n.text+"
"},templateSelection:function(n){return n.text}})}))},init(){this.searchVendors(".dokan_product_author_override")}};n((function(){t.init()}))}(jQuery); \ No newline at end of file +!function(t){const n={vendorHtmlElement:null,searchVendors(e){t(e).each((function(){let e=t(this),o=t(e).data();n.vendorHtmlElement=t(e).selectWoo({closeOnSelect:!!o.close_on_select,minimumInputLength:o.minimum_input_length?o.minimum_input_length:"0",ajax:{url:dokan_admin_product.ajaxurl,dataType:"json",delay:250,data:function(t){return{action:o.action,_wpnonce:dokan_admin_product.nonce,s:t.term}},processResults:function(t,n){return n.page=n.page||1,{results:t.data.vendors,pagination:{more:!1}}},cache:!1},language:{errorLoading:function(){return dokan_admin_product.i18n.error_loading},searching:function(){return dokan_admin_product.i18n.searching+"..."},inputTooShort:function(){return dokan_admin_product.i18n.input_too_short+"..."}},escapeMarkup:function(t){return t},templateResult:function(t){return t.loading?t.text:"
"+t.text+"
"},templateSelection:function(t){return t.text}})}))},hideVendorIfSubscriptionProduct(){let e=t("#product-type").val(),o=t(".dokan_product_author_override").closest("div.postbox");if("product_pack"===e){let e=t(".dokan_product_author_override").data("data")[0];o.slideUp(),n.vendorHtmlElement.val(e.id?String(e.id):"0").trigger("change")}else o.slideDown()},init(){this.searchVendors(".dokan_product_author_override"),this.hideVendorIfSubscriptionProduct(),t("#product-type").on("change",this.hideVendorIfSubscriptionProduct)}};t((function(){n.init()}))}(jQuery); \ No newline at end of file diff --git a/assets/js/dokan.js b/assets/js/dokan.js index 5b45c54b17..47d6fb565c 100644 --- a/assets/js/dokan.js +++ b/assets/js/dokan.js @@ -1 +1 @@ -(()=>{var e,t;jQuery((function(e){e(".tips").tooltip(),e("ul.order-status").on("click","a.dokan-edit-status",(function(t){return e(this).addClass("dokan-hide").closest("li").next("li").removeClass("dokan-hide"),!1})),e("ul.order-status").on("click","a.dokan-cancel-status",(function(t){return e(this).closest("li").addClass("dokan-hide").prev("li").find("a.dokan-edit-status").removeClass("dokan-hide"),!1})),e("form#dokan-order-status-form").on("submit",(function(t){t.preventDefault();var a=e(this),n=a.closest("li");n.block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}}),e.post(dokan.ajaxurl,a.serialize(),(function(e){if(n.unblock(),e.success){var t=n.prev();n.addClass("dokan-hide"),t.find("label").replaceWith(e.data),t.find("a.dokan-edit-status").removeClass("dokan-hide")}else dokan_sweetalert(e.data,{icon:"success"})}))})),e("form#add-order-note").on("submit",(function(t){if(t.preventDefault(),e("textarea#add-note-content").val())return e("#dokan-order-notes").block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}}),e.post(dokan.ajaxurl,e(this).serialize(),(function(t){e("ul.order_notes").prepend(t),e("#dokan-order-notes").unblock(),e("#add-note-content").val("")})),!1})),e("#dokan-order-notes").on("click","a.delete_note",(function(){var t=e(this).closest("li.note");e("#dokan-order-notes").block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}});var a={action:"dokan_delete_order_note",note_id:e(t).attr("rel"),security:e("#delete-note-security").val()};return e.post(dokan.ajaxurl,a,(function(a){e(t).remove(),e("#dokan-order-notes").unblock()})),!1})),e(".order_download_permissions").on("click","button.grant_access",(function(){var t=e(this),a=e("select.grant_access_id").val();if(a){e(".order_download_permissions").block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}});var n={action:"dokan_grant_access_to_download",product_ids:a,loop:e(".order_download_permissions .panel").length,order_id:t.data("order-id"),security:t.data("nonce")};return e.post(dokan.ajaxurl,n,(function(t){t?e("#accordion").append(t):dokan_sweetalert(dokan.i18n_download_access,{icon:"warning"}),e(".datepicker").datepicker(),e(".order_download_permissions").unblock()})),!1}})),e(".order_download_permissions").on("click","button.revoke_access",(async function(t){t.preventDefault();const a=await dokan_sweetalert(dokan.i18n_download_permission,{action:"confirm",icon:"warning"});if("undefined"!==a&&a.isConfirmed){var n=e(this),o=n.closest(".dokan-panel"),i=n.attr("rel").split(",")[0],r=n.attr("rel").split(",")[1];if(i>0){e(o).block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}});var d={action:"dokan_revoke_access_to_download",product_id:i,download_id:r,order_id:n.data("order-id"),permission_id:n.data("permission-id"),security:n.data("nonce")};e.post(dokan.ajaxurl,d,(function(t){e(o).fadeOut("300",(function(){e(o).remove()}))}))}else e(o).fadeOut("300",(function(){e(o).remove()}))}return!1}))})),e=jQuery,(t={init:function(){let t={d:"dd",D:"D",j:"d",l:"DD",F:"MM",m:"mm",M:"M",n:"m",o:"yy",Y:"yy",y:"y"},a=0,n="",o="";for(a=0;a0?e("#restock_refunded_items").closest("tr").show():(e("#restock_refunded_items").closest("tr").hide(),e(".woocommerce_order_items input.refund_order_item_qty").each((function(){e(this).val()>0&&e("#restock_refunded_items").closest("tr").show()}))),e(this).trigger("refund_quantity_changed")}}}).init(),e("#dokan-filter-customer").filter(":not(.enhanced)").each((function(){var t={allowClear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"1",escapeMarkup:function(e){return e},language:{errorLoading:function(){return dokan.i18n_searching},inputTooLong:function(e){var t=e.input.length-e.maximum;return 1===t?dokan.i18n_input_too_long_1:dokan.i18n_input_too_long_n.replace("%qty%",t)},inputTooShort:function(e){var t=e.minimum-e.input.length;return 1===t?dokan.i18n_input_too_short_1:dokan.i18n_input_too_short_n.replace("%qty%",t)},loadingMore:function(){return dokan.i18n_load_more},maximumSelected:function(e){return 1===e.maximum?dokan.i18n_selection_too_long_1:dokan.i18n_selection_too_long_n.replace("%qty%",e.maximum)},noResults:function(){return dokan.i18n_no_matches},searching:function(){return dokan.i18n_searching}},ajax:{url:dokan.ajaxurl,dataType:"json",delay:1e3,data:function(t){return{term:t.term,action:"dokan_json_search_vendor_customers",security:dokan.search_customer_nonce,exclude:e(this).data("exclude")}},processResults:function(t){var a=[];return t&&e.each(t,(function(e,t){a.push({id:e,text:t})})),{results:a}},cache:!0}};if(e(this).select2(t).addClass("enhanced"),e(this).data("sortable")){var a=e(this),n=e(this).next(".select2-container").find("ul.select2-selection__rendered");n.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:!0,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){e(n.find(".select2-selection__choice").get().reverse()).each((function(){var t=e(this).data("data").id,n=a.find('option[value="'+t+'"]')[0];a.prepend(n)}))}})}})),function(e){e("#variants-holder"),e("#product_image_gallery"),e("#product_images_container ul.product_images");var t,a,n={modal:!1,init:function(){product_type="simple",e(".product-edit-container").on("click",".dokan-section-heading",this.toggleProductSection),e(".product-edit-container").on("click","input[type=checkbox]#_downloadable",this.downloadable),e(".product-edit-container").on("click","a.sale-schedule",this.showDiscountSchedule),e("body, #dokan-product-images").on("click","a.add-product-images",this.gallery.addImages),e("body, #dokan-product-images").on("click","a.action-delete",this.gallery.deleteImage),this.gallery.sortable(),e("body, .product-edit-container").on("click","a.dokan-feat-image-btn",this.featuredImage.addImage),e("body, .product-edit-container").on("click","a.dokan-remove-feat-image",this.featuredImage.removeImage),e("body, #variable_product_options").on("click",".sale_schedule",this.saleSchedule),e("body, #variable_product_options").on("click",".cancel_sale_schedule",this.cancelSchedule),e(".product-edit-container").on("change","input[type=checkbox]#_manage_stock",this.showManageStock),e(".product-edit-container").on("click","a.upload_file_button",this.fileDownloadable),e("body").on("click","a.insert-file-row",(function(){return e(this).closest("table").find("tbody").append(e(this).data("row")),!1})),e("body").on("click","a.dokan-product-delete",(function(){return e(this).closest("tr").remove(),!1})),e("body").on("submit","form.dokan-product-edit-form",this.inputValidate),e(".dokan-product-listing").on("click","a.dokan-add-new-product",this.addProductPopup),this.loadSelect2(),this.bindProductTagDropdown(),this.attribute.sortable(),this.checkProductPostboxToggle(),e(".product-edit-container .dokan-product-attribute-wrapper").on("click","a.dokan-product-toggle-attribute, .dokan-product-attribute-heading",this.attribute.toggleAttribute),e(".product-edit-container .dokan-product-attribute-wrapper").on("click","a.add_new_attribute",this.attribute.addNewAttribute),e(".product-edit-container .dokan-product-attribute-wrapper").on("keyup","input.dokan-product-attribute-name",this.attribute.dynamicAttrNameChange),e(".dokan-product-attribute-wrapper ul.dokan-attribute-option-list").on("click","button.dokan-select-all-attributes",this.attribute.selectAllAttr),e(".dokan-product-attribute-wrapper ul.dokan-attribute-option-list").on("click","button.dokan-select-no-attributes",this.attribute.selectNoneAttr),e(".dokan-product-attribute-wrapper ul.dokan-attribute-option-list").on("click","button.dokan-add-new-attribute",this.attribute.addNewExtraAttr),e(".product-edit-container .dokan-product-attribute-wrapper").on("click","a.dokan-product-remove-attribute",this.attribute.removeAttribute),e(".product-edit-container .dokan-product-attribute-wrapper").on("click","a.dokan-save-attribute",this.attribute.saveAttribute),e("body").on("click",'.product-container-footer input[type="submit"]',this.createNewProduct),this.attribute.disbalePredefinedAttribute(),e("body").trigger("dokan-product-editor-loaded",this)},saleSchedule:function(){var t=e(this).closest(".dokan-product-field-content","div, table");return e(this).hide(),t.find(".cancel_sale_schedule").show(),t.find(".sale_price_dates_fields").show(),!1},cancelSchedule:function(){var t=e(this).closest(".dokan-product-field-content","div, table");return e(this).hide(),t.find(".sale_schedule").show(),t.find(".sale_price_dates_fields").hide(),t.find(".sale_price_dates_fields").find("input").val(""),!1},checkProductPostboxToggle:function(){var t=JSON.parse(localStorage.getItem("toggleClasses"));e.each(t,(function(t,a){var n=e("."+t.replace(/_/g,"-")),o=n.find(".dokan-section-content"),i=n.find("i.fa-sort-desc");a?(o.show(),i.removeClass("fa-flip-horizointal").addClass("fa-flip-vertical"),i.css("marginTop","9px")):(o.hide(),i.removeClass("fa-flip-vertical").addClass("fa-flip-horizointal"),i.css("marginTop","0px"))}))},toggleProductSection:function(t){t.preventDefault();var a=e(this);if(null!=JSON.parse(localStorage.getItem("toggleClasses")))var n=JSON.parse(localStorage.getItem("toggleClasses"));else n={};a.closest(".dokan-edit-row").find(".dokan-section-content").slideToggle(300,(function(){var t;e(this).is(":visible")?((t=a.find("i.fa-sort-desc")).removeClass("fa-flip-horizointal").addClass("fa-flip-vertical"),t.css("marginTop","9px"),n[a.data("togglehandler")]=!0):((t=a.find("i.fa-sort-desc")).removeClass("fa-flip-vertical").addClass("fa-flip-horizointal"),t.css("marginTop","0px"),n[a.data("togglehandler")]=!1),localStorage.setItem("toggleClasses",JSON.stringify(n))}))},loadSelect2:function(){e(".dokan-select2").select2({language:{noResults:function(){return dokan.i18n_no_result_found}}})},bindProductTagDropdown:function(){e(".product_tag_search").select2({allowClear:!1,tags:dokan.product_vendors_can_create_tags&&"on"===dokan.product_vendors_can_create_tags,createTag:function(t){var a=e.trim(t.term);return""===a?null:{id:a,text:a,newTag:!0}},insertTag:function(t,a){var n=!1;e.each(t,(function(t,o){e.trim(a.text).toUpperCase()==e.trim(o.text).toUpperCase()&&(n=!0)})),n||t.unshift(a)},minimumInputLength:2,maximumSelectionLength:void 0!==dokan.maximum_tags_select_length?dokan.maximum_tags_select_length:-1,ajax:{url:dokan.ajaxurl,dataType:"json",delay:250,data:function(e){return{q:e.term,action:"dokan_json_search_products_tags",security:dokan.search_products_tags_nonce,page:e.page||1}},processResults:function(t){var a=[];return t&&e.each(t,(function(e,t){a.push({id:t[0],text:t[1]})})),{results:a,pagination:{more:0!=a.length}}},cache:!0},language:{errorLoading:function(){return dokan.i18n_searching},inputTooLong:function(e){var t=e.input.length-e.maximum;return 1===t?dokan.i18n_input_too_long_1:dokan.i18n_input_too_long_n.replace("%qty%",t)},inputTooShort:function(e){var t=e.minimum-e.input.length;return 1===t?dokan.i18n_input_too_short_1:dokan.i18n_input_too_short_n.replace("%qty%",t)},loadingMore:function(){return dokan.i18n_load_more},maximumSelected:function(e){return 1===e.maximum?dokan.i18n_selection_too_long_1:dokan.i18n_selection_too_long_n.replace("%qty%",e.maximum)},noResults:function(){return dokan.i18n_no_matches},searching:function(){return dokan.i18n_searching}}})},addProductPopup:function(e){e.preventDefault(),n.openProductPopup()},openProductPopup:function(){const o=wp.template("dokan-add-new-product"),i=e("#dokan-add-product-popup");n.modal=i.iziModal({headerColor:dokan.modal_header_color,overlayColor:"rgba(0, 0, 0, 0.8)",width:690,top:32,onOpening:()=>{n.reRenderPopupElements()},onClosed:()=>{t=void 0,a=void 0,e('#dokan-add-new-product-popup input[name="_sale_price_dates_from"], #dokan-add-new-product-popup input[name="_sale_price_dates_to"]').datepicker("destroy")}}),n.modal.iziModal("setContent",o().trim()),n.modal.iziModal("open")},reRenderPopupElements:function(){n.loadSelect2(),n.bindProductTagDropdown(),e("#dokan-add-new-product-popup .sale_price_dates_fields input").daterangepicker({singleDatePicker:!0,showDropdowns:!1,autoApply:!0,parentEl:"#dokan-add-new-product-popup",opens:"left",autoUpdateInput:!1}).on("apply.daterangepicker",(function(t,a){e(this).val(a.startDate.format("YYYY-MM-DD"))})),e(".tips").tooltip(),n.gallery.sortable(),e("body").trigger("dokan-product-editor-popup-opened",n)},createNewProduct:function(t){t.preventDefault();var o=e(this),i=o.closest("form#dokan-add-new-product-form"),r=o.attr("data-btn_id");if(i.find("span.dokan-show-add-product-success").html(""),i.find("span.dokan-show-add-product-error").html(""),i.find("span.dokan-add-new-product-spinner").css("display","inline-block"),o.attr("disabled","disabled"),""==i.find('input[name="post_title"]').val())return e("span.dokan-show-add-product-error").html(dokan.product_title_required),o.removeAttr("disabled"),void i.find("span.dokan-add-new-product-spinner").css("display","none");if("-1"==i.find('select[name="product_cat"]').val())return e("span.dokan-show-add-product-error").html(dokan.product_category_required),o.removeAttr("disabled"),void i.find("span.dokan-add-new-product-spinner").css("display","none");var d={action:"dokan_create_new_product",postdata:i.serialize(),_wpnonce:dokan.nonce};n.modal.iziModal("startLoading"),e.post(dokan.ajaxurl,d,(function(t){t.success?(o.removeAttr("disabled"),"create_new"===r?(e("#dokan-add-product-popup").iziModal("close"),window.location.href=t.data):(a=void 0,e(".dokan-dashboard-product-listing-wrapper").load(window.location.href+" table.product-listing-table"),n.modal.iziModal("resetContent"),n.openProductPopup(),n.reRenderPopupElements(),e("span.dokan-show-add-product-success").html(dokan.product_created_response),setTimeout((function(){e("span.dokan-show-add-product-success").html("")}),3e3))):(o.removeAttr("disabled"),e("span.dokan-show-add-product-error").html(t.data)),i.find("span.dokan-add-new-product-spinner").css("display","none")})).always((function(){n.modal.iziModal("stopLoading")}))},attribute:{toggleAttribute:function(t){t.preventDefault();var a=e(this),n=a.closest("li").find(".dokan-product-attribute-item");return e(n).hasClass("dokan-hide")?(a.closest(".dokan-product-attribute-heading").css({borderBottom:"1px solid #e3e3e3"}),e(n).slideDown(200,(function(){a.find("i.fa").removeClass("fa-flip-horizointal").addClass("fa-flip-vertical"),e(this).removeClass("dokan-hide"),e(t.target).hasClass("dokan-product-attribute-heading")?e(t.target).hasClass("dokan-product-attribute-heading")&&a.find("a.dokan-product-toggle-attribute").css("top","12px"):e(t.target).closest("a").css("top","12px")}))):e(n).slideUp(200,(function(){e(this).addClass("dokan-hide"),a.find("i.fa").removeClass("fa-flip-vertical").addClass("fa-flip-horizointal"),e(t.target).hasClass("dokan-product-attribute-heading")?e(t.target).hasClass("dokan-product-attribute-heading")&&a.find("a.dokan-product-toggle-attribute").css("top","7px"):e(t.target).closest("a").css("top","7px"),a.closest(".dokan-product-attribute-heading").css({borderBottom:"none"})})),!1},sortable:function(){e(".dokan-product-attribute-wrapper ul").sortable({items:"li.product-attribute-list",cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,helper:"clone",opacity:.65,placeholder:"dokan-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")},update:function(e,t){n.attribute.reArrangeAttribute()}})},dynamicAttrNameChange:function(t){t.preventDefault();var a=e(this),n=a.val();""==n?a.closest("li").find("strong").html(dokan.i18n_attribute_label):a.closest("li").find("strong").html(n)},selectAllAttr:function(t){return t.preventDefault(),e(this).closest("li.product-attribute-list").find("select.dokan_attribute_values option").attr("selected","selected"),e(this).closest("li.product-attribute-list").find("select.dokan_attribute_values").trigger("change"),!1},selectNoneAttr:function(t){return t.preventDefault(),e(this).closest("li.product-attribute-list").find("select.dokan_attribute_values option").removeAttr("selected"),e(this).closest("li.product-attribute-list").find("select.dokan_attribute_values").trigger("change"),!1},reArrangeAttribute:function(){e(".dokan-product-attribute-wrapper").find("ul.dokan-attribute-option-list").find("li.product-attribute-list").css("cursor","default").each((function(t){e(this).find(".attribute_position").val(t)}))},addNewExtraAttr:async function(t){t.preventDefault();var a=e(this).closest("li.product-attribute-list"),n=a.data("taxonomy"),o=(await dokan_sweetalert(dokan.new_attribute_prompt,{action:"prompt",input:"text"})).value;if(o){var i={action:"dokan_add_new_attribute",taxonomy:n,term:o,_wpnonce:dokan.nonce};e.post(dokan.ajaxurl,i,(function(e){e.error?dokan_sweetalert(e.error,{action:"alert",icon:"warning"}):e.slug&&(a.find("select.dokan_attribute_values").append('"),a.find("select.dokan_attribute_values").trigger("change"))}))}},addNewAttribute:function(t){t.preventDefault();var a=e(this),o=a.closest(".dokan-attribute-type").find("select#predefined_attribute"),i=o.val(),r=e("ul.dokan-attribute-option-list .product-attribute-list").length,d={action:"dokan_get_pre_attribute",taxonomy:i,i:r,_wpnonce:dokan.nonce};a.closest(".dokan-attribute-type").find("span.dokan-attribute-spinner").removeClass("dokan-hide"),e.post(dokan.ajaxurl,d,(function(t){if(t.success){var r=e(".dokan-product-attribute-wrapper").find("ul.dokan-attribute-option-list");if($html=e.parseHTML(t.data),e($html).find(".dokan-product-attribute-item").removeClass("dokan-hide"),e($html).find("i.fa.fa-sort-desc").removeClass("fa-flip-horizointal").addClass("fa-flip-vertical"),e($html).find("a.dokan-product-toggle-attribute").css("top","12px"),e($html).find(".dokan-product-attribute-heading").css({borderBottom:"1px solid #e3e3e3"}),r.append($html),n.loadSelect2(),n.bindProductTagDropdown(),n.attribute.reArrangeAttribute(),"variable"!==e("select#product_type").val()){let t=e("div.dokan-product-attribute-wrapper label.show_if_variable");for(let a of t){let t=e(a).find('input[type="checkbox"]');t.length>0&&t[0].getAttribute("name")?.startsWith("attribute_variation[")&&e(a).hide()}}}a.closest(".dokan-attribute-type").find("span.dokan-attribute-spinner").addClass("dokan-hide"),i&&(o.find('option[value="'+i+'"]').attr("disabled","disabled"),o.val(""))})).done((function(){e("select#product_type").trigger("change")}))},removeAttribute:async function(t){t.stopPropagation(),t.preventDefault();const a=await dokan_sweetalert(dokan.remove_attribute,{action:"confirm",icon:"warning"});if("undefined"!==a&&a.isConfirmed){var o=e(this).closest("li.product-attribute-list");o.fadeOut(300,(function(){o.is(".taxonomy")?(o.find("select, input[type=text]").val(""),e("select.dokan_attribute_taxonomy").find('option[value="'+o.data("taxonomy")+'"]').removeAttr("disabled")):(o.find("select, input[type=text]").val(""),o.hide()),n.attribute.reArrangeAttribute()}))}return!1},saveAttribute:function(t){t.preventDefault(),e(this);var a={post_id:e("#dokan-edit-product-id").val(),data:e("ul.dokan-attribute-option-list").find("input, select, textarea").serialize(),action:"dokan_save_attributes"};e(".dokan-product-attribute-wrapper").block({message:null,fadeIn:50,fadeOut:1e3,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,a,(function(t){e("#dokan-variable-product-options").load(window.location.toString()+" #dokan-variable-product-options-inner",(function(){e("#dokan-variable-product-options").trigger("reload"),e("select#product_type").trigger("change"),e(".dokan-product-attribute-wrapper").unblock()}))}))},disbalePredefinedAttribute:function(){e("ul.dokan-attribute-option-list li.product-attribute-list").each((function(t,a){"none"!==e(a).css("display")&&e(a).is(".taxonomy")&&e("select#predefined_attribute").find('option[value="'+e(a).data("taxonomy")+'"]').attr("disabled","disabled")}))}},inputValidate:function(t){return t.preventDefault(),""==e("#post_title").val().trim()?(e("#post_title").focus(),void e("div.dokan-product-title-alert").removeClass("dokan-hide")):(e("div.dokan-product-title-alert").hide(),-1==e("select.product_cat").val()?(e("select.product_cat").focus(),void e("div.dokan-product-cat-alert").removeClass("dokan-hide")):(e("div.dokan-product-cat-alert").hide(),e("input[type=submit]").attr("disabled","disabled"),void this.submit()))},downloadable:function(){e(this).prop("checked")?e(this).closest("aside").find(".dokan-side-body").removeClass("dokan-hide"):e(this).closest("aside").find(".dokan-side-body").addClass("dokan-hide")},showDiscountSchedule:function(t){t.preventDefault(),e(".sale-schedule-container").slideToggle("fast")},showManageStock:function(t){const a=e("#product_type").val();e(this).is(":checked")&&"external"!==a?e(".show_if_stock").slideDown("fast"):e(".show_if_stock").slideUp("fast"),"simple"===a&&(e(this).is(":checked")?e(".hide_if_stock_global").slideUp("fast"):e(".hide_if_stock_global").slideDown("fast"))},gallery:{addImages:function(a){a.preventDefault();var n=e(this),o=n.closest(".dokan-product-gallery").find("#product_images_container ul.product_images"),i=n.closest(".dokan-product-gallery").find("#product_image_gallery");t||(t=wp.media({title:dokan.i18n_choose_gallery,library:{type:"image"},button:{text:dokan.i18n_choose_gallery_btn_text},multiple:!0})).on("select",(function(){t.state().get("selection").map((function(t){t=t.toJSON(),attachment_ids=[],t.id&&"image"===t.type&&(e('
  • ×
  • ').insertBefore(o.find("li.add-image")),e("#product_images_container ul li.image").css("cursor","default").each((function(){var e=jQuery(this).attr("data-attachment_id");attachment_ids.push(e)})),i.val(attachment_ids.join(",")))}))})),t.open()},deleteImage:function(t){t.preventDefault();var a=e(this),n=(a.closest(".dokan-product-gallery").find("#product_images_container ul.product_images"),a.closest(".dokan-product-gallery").find("#product_image_gallery"));a.closest("li.image").remove();var o=[];return e("#product_images_container ul li.image").css("cursor","default").each((function(){var t=e(this).attr("data-attachment_id");o.push(t)})),n.val(o.join(",")),!1},sortable:function(){e("body").find("#product_images_container ul.product_images").sortable({items:"li.image",cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,helper:"clone",opacity:.65,placeholder:"dokan-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")},update:function(t,a){var n=[];e("body").find("#product_images_container ul li.image").css("cursor","default").each((function(){var e=jQuery(this).attr("data-attachment_id");n.push(e)})),e("body").find("#product_image_gallery").val(n.join(","))}})}},featuredImage:{addImage:function(t){t.preventDefault();var n=e(this);a||(a=wp.media({title:dokan.i18n_choose_featured_img,library:{type:"image"},button:{text:dokan.i18n_choose_featured_img_btn_text}})).on("select",(function(){a.state().get("selection").map((function(e){if("image"===(e=e.toJSON()).type){n.siblings("input.dokan-feat-image-id").val(e.id);var t=n.closest(".instruction-inside"),a=t.siblings(".image-wrap");a.find("img").attr("src",e.url),a.find("img").removeAttr("srcset"),t.addClass("dokan-hide"),a.removeClass("dokan-hide")}}))})),a.open()},removeImage:function(t){t.preventDefault();var a=e(this).closest(".image-wrap"),n=a.siblings(".instruction-inside");n.find("input.dokan-feat-image-id").val("0"),a.addClass("dokan-hide"),n.removeClass("dokan-hide")}},fileDownloadable:function(t){t.preventDefault();var a,n=e(this);a||((a=wp.media({title:dokan.i18n_choose_file,button:{text:dokan.i18n_choose_file_btn_text},multiple:!0})).on("select",(function(){a.state().get("selection").map((function(e){e=e.toJSON(),n.closest("tr").find("input.wc_file_url, input.wc_variation_file_url").val(e.url)}))})),a.on("ready",(function(){a.uploader.options.uploader.params={type:"downloadable_product"}}))),a.open()}};e((function(){function t(){var t=e("#product_type").val(),a=e("input#_virtual:checked").length,n=e("input#_downloadable:checked").length;let o=e(".dokan-product-shipping-tax");var i=".hide_if_downloadable, .hide_if_virtual",r=".show_if_downloadable, .show_if_virtual";e.each(Object.keys(dokan.product_types),(function(e,t){i=i+", .hide_if_"+t,r=r+", .show_if_"+t})),e(i).show(),e(r).hide(),n&&e(".show_if_downloadable").show(),a&&e(".show_if_virtual").show(),e(".show_if_"+t).show(),n&&e(".hide_if_downloadable").hide(),a?(e(".hide_if_virtual").hide(),1===e(".dokan-product-shipping-tax .dokan-section-content").first().children().length?o.hide():(o.hasClass("hide_if_virtual")&&o.removeClass("hide_if_virtual"),o.show())):o.show(),e(".hide_if_"+t).hide(),e("input#_manage_stock").trigger("change")}n.init(),e("select#product_type").on("change",(function(){var a=e(this).val();"variable"===a&&(e("input#_manage_stock").trigger("change"),e("input#_downloadable").prop("checked",!1),e("input#_virtual").removeAttr("checked")),t(),e(document.body).trigger("dokan-product-type-change",a,e(this))})).trigger("change"),e(".product-edit-container").on("change","input#_downloadable, input#_virtual",(function(){t()})).trigger("change"),e("input#_downloadable").trigger("change"),e("input#_virtual").trigger("change"),e(".sale_price_dates_fields").each((function(){var t=e(this),a=!1,n=t.closest("div, table");t.find("input").each((function(){""!==e(this).val()&&(a=!0)})),a?(n.find(".sale_schedule").hide(),n.find(".sale_price_dates_fields").show()):(n.find(".sale_schedule").show(),n.find(".sale_price_dates_fields").hide())})),e(".product-edit-container").on("click",".sale_schedule",(function(){var t=e(this).closest(".product-edit-container, div.dokan-product-variation-itmes, table");return e(this).hide(),t.find(".cancel_sale_schedule").show(),t.find(".sale_price_dates_fields").show(),!1})),e(".product-edit-container").on("click",".cancel_sale_schedule",(function(){var t=e(".product-edit-container, div.dokan-product-variation-itmes, table");return e(this).hide(),t.find(".sale_schedule").show(),t.find(".sale_price_dates_fields").hide(),t.find(".sale_price_dates_fields").find("input").val(""),!1})),e("#dokan-product-title-area").on("click",".edit-slug",(function(){!function(){var t,a,n,o,i=0,r=e("#post_name"),d=r.val(),s=e("#sample-permalink"),l=s.html(),c=e("#sample-permalink a").html(),u=e("#edit-slug-buttons"),p=u.html(),m=e("#editable-post-name-full");for(m.find("img").replaceWith((function(){return this.alt})),m=m.html(),s.html(c),n=e("#editable-post-name"),o=n.html(),u.html(' "),u.children(".save").on("click",(function(){var t=n.children("input").val();t!=e("#editable-post-name-full").text()?e.post(ajaxurl,{action:"sample-permalink",post_id:e("#dokan-edit-product-id").val(),new_slug:t,new_title:e("#post_title").val(),samplepermalinknonce:e("#samplepermalinknonce").val()},(function(a){var n=e("#edit-slug-box");n.html(a),n.hasClass("hidden")&&n.fadeIn("fast",(function(){n.removeClass("hidden")})),u.html(p),s.html(l),r.val(t),e(".edit-slug").focus(),e("#editable-post-name-full-dokan").val(e("#editable-post-name-full").html())})):u.children(".cancel").trigger("click")})),u.children(".cancel").on("click",(function(){e("#view-post-btn").show(),n.html(o),u.html(p),s.html(l),r.val(d),e(".edit-slug").focus()})),t=0;tm.length/4?"":m,n.html('').children("input").on("keydown",(function(e){var t=e.which;13===t&&(e.preventDefault(),u.children(".save").trigger("click")),27===t&&u.children(".cancel").trigger("click")})).on("keyup",(function(){r.val(this.value)})).focus()}()})),e("#dokan-edit-product-id").val()&&e("#post_title").val()&&e("#samplepermalinknonce").val()&&e.post(ajaxurl,{action:"sample-permalink",post_id:e("#dokan-edit-product-id").val(),new_slug:e("#edited-post-name-dokan").val(),new_title:e("#post_title").val(),samplepermalinknonce:e("#samplepermalinknonce").val()},(function(t){e("#edit-slug-box").html(t)})),e(window).on("load",(function(){e("input#_virtual:checked").length&&t()}))}))}(jQuery),jQuery((function(e){function t(e,t,a){jQuery('
    '+a+"
    ").css({top:t-16,left:e+20}).appendTo("body").fadeIn(200)}wp.customize,e(".datepicker").datepicker({dateFormat:"yy-mm-dd"}),e(".dokan-table tbody").on("click",".toggle-row",(function(){e(this).closest("tr").toggleClass("is-expanded")})),e(".dokan-start-date").datepicker({defaultDate:"",dateFormat:"yy-mm-dd",numberOfMonths:1,onSelect:function(t){let a=new Date(t);a.setDate(a.getDate()+1),e(".dokan-end-date").datepicker("option",{minDate:a})}}),e(".dokan-end-date").datepicker({defaultDate:"",dateFormat:"yy-mm-dd",numberOfMonths:1,onSelect:function(t){let a=new Date(t);a.setDate(a.getDate()-1),e("dokan-start-date").datepicker("option",{maxDate:a})}}),e(".tips").tooltip();var a=null,n=null;jQuery(".chart-placeholder").on("plothover",(function(e,o,i){if(i){if((a!=i.dataIndex||n!=i.seriesIndex)&&(a=i.dataIndex,n=i.seriesIndex,jQuery(".chart-tooltip").remove(),i.series.points.show||i.series.enable_tooltip)){var r=i.series.data[i.dataIndex][1];tooltip_content="",i.series.prepend_label&&(tooltip_content=tooltip_content+i.series.label+": "),i.series.prepend_tooltip&&(tooltip_content+=i.series.prepend_tooltip),tooltip_content+=r,i.series.append_tooltip&&(tooltip_content+=i.series.append_tooltip),i.series.pie.show?t(o.pageX,o.pageY,tooltip_content):t(i.pageX,i.pageY,tooltip_content)}}else jQuery(".chart-tooltip").remove(),a=null}))})),function(e){e.validator.setDefaults({ignore:":hidden"});var t=function(t,a){e(a).closest(".dokan-form-group").addClass("has-error").append(t)},a=function(t,a){e(a).closest(".dokan-form-group").removeClass("has-error"),e(t).remove()},n=wp.customize,o='input[name="settings[bank][disconnect]"], input[name="settings[paypal][disconnect]"], input[name="settings[skrill][disconnect]"], input[name="settings[dokan_custom][disconnect]"]',i={init:function(){return e("a.dokan-banner-drag").on("click",this.imageUpload),e("a.dokan-remove-banner-image").on("click",this.removeBanner),e("a.dokan-pro-gravatar-drag").on("click",this.gragatarImageUpload),e("a.dokan-gravatar-drag").on("click",this.simpleImageUpload),e("a.dokan-remove-gravatar-image").on("click",this.removeGravatar),e(".dokan-update-setting-top-button").on("click",(function(){e("input[name='dokan_update_store_settings']").trigger("click")})),this.validateForm(this),e(".dokan_payment_disconnect_btn").on("click",(function(){var t=e(this).closest("form"),a=e("form#"+t.attr("id"));e(":input",t).not(":button, :submit, :reset, :hidden, :checkbox").val("").prop("selected",!1);var n=t.serializeArray().reduce((function(e,t){return e[t.name]=t.value,e}),{});n[e(this).attr("name")]="",n.form_id=t.attr("id"),n.action="dokan_settings",i.handleRequest(a,n,!0)})),!1},calculateImageSelectOptions:function(e,t){var a,o,i,r,d,s,l=parseInt(dokan.store_banner_dimension.width,10),c=parseInt(dokan.store_banner_dimension.height,10),u=!!parseInt(dokan.store_banner_dimension["flex-width"],10),p=!!parseInt(dokan.store_banner_dimension["flex-height"],10);return d=e.get("width"),r=e.get("height"),this.headerImage=new n.HeaderTool.ImageModel,this.headerImage.set({themeWidth:l,themeHeight:c,themeFlexWidth:u,themeFlexHeight:p,imageWidth:d,imageHeight:r}),t.set("canSkipCrop",!this.headerImage.shouldBeCropped()),(o=d)/(i=r)>(a=l/c)?l=(c=i)*a:c=(l=o)/a,s={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:d,imageHeight:r,x1:0,y1:0,x2:l,y2:c},!1===p&&!1===u&&(s.aspectRatio=l+":"+c),!1===p&&(s.maxHeight=c),!1===u&&(s.maxWidth=l),s},onSelect:function(){this.frame.setState("cropper")},onCropped:function(e){var t=e.url,a=e.attachment_id,n=e.width,o=e.height;this.setImageFromURL(t,a,n,o)},onSkippedCrop:function(e){var t=e.get("url"),a=e.get("width"),n=e.get("height");this.setImageFromURL(t,e.id,a,n)},setImageFromURL:function(t,a,n,o){var i=!1;if(e(this.uploadBtn).hasClass("dokan-banner-drag"))(r=e(this.uploadBtn).closest(".dokan-banner")).find("input.dokan-file-field").val(a),r.find("img.dokan-banner-img").attr("src",t),e(this.uploadBtn).parent().siblings(".image-wrap",r).removeClass("dokan-hide"),e(this.uploadBtn).parent(".button-area").addClass("dokan-hide"),i=!0;else if(e(this.uploadBtn).hasClass("dokan-pro-gravatar-drag")){var r;(r=e(this.uploadBtn).closest(".dokan-gravatar")).find("input.dokan-file-field").val(a),r.find("img.dokan-gravatar-img").attr("src",t),i=!0,e(this.uploadBtn).parent().siblings(".gravatar-wrap",r).removeClass("dokan-hide"),e(this.uploadBtn).parent(".gravatar-button-area").addClass("dokan-hide")}!0===i&&(e(window).on("beforeunload",(function(){return dokan.dokan_banner_added_alert_msg})),e(document).ready((function(){e("#store-form").on("submit",(function(t){return e(window).off("beforeunload"),!0}))})))},removeImage:function(){n.HeaderTool.currentHeader.trigger("hide"),n.HeaderTool.CombinedList.trigger("control:removeImage")},imageUpload:function(e){e.preventDefault();var t=i;t.uploadBtn=this,t.frame=wp.media({multiple:!1,button:{text:dokan.selectAndCrop,close:!1},states:[new wp.media.controller.Library({title:dokan.chooseImage,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:dokan.store_banner_dimension.width,suggestedHeight:dokan.store_banner_dimension.height}),new wp.media.controller.Cropper({suggestedWidth:5e3,imgSelectOptions:t.calculateImageSelectOptions})]}),t.frame.on("select",t.onSelect,t),t.frame.on("cropped",t.onCropped,t),t.frame.on("skippedcrop",t.onSkippedCrop,t),t.frame.open()},calculateImageSelectOptionsProfile:function(e,t){var a,o,i,r,d,s,l=150,c=150,u=!!parseInt(dokan.store_banner_dimension["flex-width"],10),p=!!parseInt(dokan.store_banner_dimension["flex-height"],10);return d=e.get("width"),r=e.get("height"),this.headerImage=new n.HeaderTool.ImageModel,this.headerImage.set({themeWidth:l,themeHeight:c,themeFlexWidth:u,themeFlexHeight:p,imageWidth:d,imageHeight:r}),t.set("canSkipCrop",!this.headerImage.shouldBeCropped()),(o=d)/(i=r)>(a=l/c)?l=(c=i)*a:c=(l=o)/a,s={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:d,imageHeight:r,x1:0,y1:0,x2:l,y2:c},!1===p&&!1===u&&(s.aspectRatio=l+":"+c),!1===p&&(s.maxHeight=c),!1===u&&(s.maxWidth=l),s},simpleImageUpload:function(t){t.preventDefault();var a,n=e(this);a||(a=wp.media.frames.file_frame=wp.media({title:jQuery(this).data("uploader_title"),button:{text:jQuery(this).data("uploader_button_text")},multiple:!1})).on("select",(function(){var e=a.state().get("selection").first().toJSON(),t=n.closest(".dokan-gravatar");t.find("input.dokan-file-field").val(e.id),t.find("img.dokan-gravatar-img").attr("src",e.url),n.parent().siblings(".gravatar-wrap",t).removeClass("dokan-hide"),n.parent(".gravatar-button-area").addClass("dokan-hide")})),a.open()},gragatarImageUpload:function(e){e.preventDefault();var t=i;t.uploadBtn=this,t.frame=wp.media({multiple:!1,button:{text:dokan.selectAndCrop,close:!1},states:[new wp.media.controller.Library({title:dokan.chooseImage,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:150,suggestedHeight:150}),new wp.media.controller.Cropper({imgSelectOptions:t.calculateImageSelectOptionsProfile})]}),t.frame.on("select",t.onSelect,t),t.frame.on("cropped",t.onCropped,t),t.frame.on("skippedcrop",t.onSkippedCrop,t),t.frame.open()},submitSettings:function(t){"undefined"!=typeof tinyMCE&&tinyMCE.triggerSave();var a=e("form#"+t),n=a.serialize()+"&action=dokan_settings&form_id="+t;i.handleRequest(a,n,!1)},handleRequest:function(t,a,n){n?t.find(".ajax_prev.disconnect").append(' '):t.find(".ajax_prev.save").append(' '),e(".dokan-update-setting-top-button span.dokan-loading").remove(),e(".dokan-update-setting-top-button").append(' '),e.post(dokan.ajaxurl,a,(function(a){t.find("span.dokan-loading").remove(),e(".dokan-update-setting-top-button span.dokan-loading").remove(),e("html,body").animate({scrollTop:e(".dokan-dashboard-header").offset().top}),a.success?(e(".dokan-ajax-response").html(e("
    ",{class:"dokan-alert dokan-alert-success",html:"

    "+a.data.msg+"

    "})),e(".dokan-ajax-response").append(a.data.progress),dokan&&dokan.storeProgressBar&&dokan.storeProgressBar.init(),o=o.replaceAll("input","button"),n?t.find(o).addClass("dokan-hide"):t.find(o).removeClass("dokan-hide")):e(".dokan-ajax-response").html(e("
    ",{class:"dokan-alert dokan-alert-danger",html:"

    "+a.data+"

    "}))}))},validateForm:function(n){e("form#settings-form, form#profile-form, form#store-form, form#payment-form").validate({submitHandler:function(e){n.submitSettings(e.getAttribute("id"))},errorElement:"span",errorClass:"error",errorPlacement:t,success:a,ignore:".select2-search__field, :hidden, .mapboxgl-ctrl-geocoder--input"})},removeBanner:function(t){t.preventDefault();var a=e(this).closest(".image-wrap"),n=a.siblings(".button-area");a.find("input.dokan-file-field").val("0"),a.addClass("dokan-hide"),n.removeClass("dokan-hide")},removeGravatar:function(t){t.preventDefault();var a=e(this).closest(".gravatar-wrap"),n=a.siblings(".gravatar-button-area");a.find("input.dokan-file-field").val("0"),a.addClass("dokan-hide"),n.removeClass("dokan-hide")}},r={init:function(){this.withdrawValidate(this)},withdrawValidate:function(n){e("form.withdraw").validate({errorElement:"span",errorClass:"error",errorPlacement:t,success:a})}},d={init:function(){this.validate(this)},validate:function(a){e("form#dokan-form-contact-seller").validate({errorPlacement:t,errorElement:"span",success:function(e,t){e.removeClass("error"),e.remove()},submitHandler:async function(t,a){a.preventDefault(),e(t).block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}}),await dokan_execute_recaptcha("form#dokan-form-contact-seller .dokan_recaptcha_token","dokan_contact_seller_recaptcha");var n=e(t).serialize();e.post(dokan.ajaxurl,n,(function(a){e(t).unblock(),void 0!==a.data&&e(t).find(".ajax-response").html(a.data),e(t).find("input[type=text], input[type=email], textarea, input[name=dokan_recaptcha_token]").val("").removeClass("valid")}))}})}};e((function(){i.init(),r.init(),d.init(),e(".dokan-form-horizontal").on("change","input[type=checkbox]#lbl_setting_minimum_quantity",(function(){var t=e(".show_if_needs_sw_discount");e(this).is(":checked")?(t.find('input[type="number"]').val(""),t.slideDown("slow")):t.slideUp("slow")}))}))}(jQuery),function(e){var t=DokanValidateMsg;t.maxlength=e.validator.format(t.maxlength_msg),t.minlength=e.validator.format(t.minlength_msg),t.rangelength=e.validator.format(t.rangelength_msg),t.range=e.validator.format(t.range_msg),t.max=e.validator.format(t.max_msg),t.min=e.validator.format(t.min_msg),e.validator.messages=t,e(document).on("click","#dokan_store_tnc_enable",(function(t){e(this).is(":checked")?e("#dokan_tnc_text").show():e("#dokan_tnc_text").hide()})).ready((function(t){e("#dokan_store_tnc_enable").is(":checked")?e("#dokan_tnc_text").show():e("#dokan_tnc_text").hide()}))}(jQuery),function(e){var t="undefined"!=typeof wp&&wp.customize&&wp.customize.selectiveRefresh;function a(){dokan.store_banner_dimension.width;var t=dokan.store_banner_dimension.height/dokan.store_banner_dimension.width*e("#dokan-content").width();e(".dokan-profile-frame-wrapper .profile-info-img.dummy-image").css({height:t})}a(),e(window).on("resize",(function(e){a()})),t&&wp.customize.selectiveRefresh.bind("partial-content-rendered",(function(e){console.log("placement",e),"store_header_template"===e.partial.id&&a()})),e(":input.dokan-product-search").filter(":not(.enhanced)").each((function(){var t={allowClear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"3",escapeMarkup:function(e){return e},language:{errorLoading:function(){return dokan.i18n_searching},inputTooLong:function(e){var t=e.input.length-e.maximum;return 1===t?dokan.i18n_input_too_long_1:dokan.i18n_input_too_long_n.replace("%qty%",t)},inputTooShort:function(e){var t=e.minimum-e.input.length;return 1===t?dokan.i18n_input_too_short_1:dokan.i18n_input_too_short_n.replace("%qty%",t)},loadingMore:function(){return dokan.i18n_load_more},maximumSelected:function(e){return 1===e.maximum?dokan.i18n_selection_too_long_1:dokan.i18n_selection_too_long_n.replace("%qty%",e.maximum)},noResults:function(){return dokan.i18n_no_matches},searching:function(){return dokan.i18n_searching}},ajax:{url:dokan.ajaxurl,dataType:"json",delay:250,data:function(t){return{term:t.term,action:e(this).data("action")||"dokan_json_search_products_and_variations",security:dokan.search_products_nonce,exclude:e(this).data("exclude"),user_ids:e(this).data("user_ids"),include:e(this).data("include"),limit:e(this).data("limit")}},processResults:function(t){var a=[];return t&&e.each(t,(function(e,t){a.push({id:e,text:t})})),{results:a}},cache:!0}};if(e(this).select2(t).addClass("enhanced"),e(this).data("sortable")){var a=e(this),n=e(this).next(".select2-container").find("ul.select2-selection__rendered");n.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:!0,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){e(n.find(".select2-selection__choice").get().reverse()).each((function(){var t=e(this).data("data").id,n=a.find('option[value="'+t+'"]')[0];a.prepend(n)}))}})}})),selected_items=[],e("#cb-select-all").on("change",(function(t){var a=e(this),n=e(".cb-select-items");a.is(":checked")?n.each((function(t,a){e(a).prop("checked","checked")})):n.each((function(t,a){e(a).prop("checked",""),selected_items.pop()}))}))}(jQuery),function(e){function t(t,a){const n=e(t.target).closest("li.has-submenu");n.find(".navigation-submenu").each(((t,o)=>{if(a)n.removeClass("submenu-hovered"),e(".dokan-dashboard-wrap").css("height",""),e(o).css("bottom",0),e(o).removeAttr("style");else{n.addClass("submenu-hovered");let t=n[0].getBoundingClientRect(),a=o.getBoundingClientRect(),i=e(".dokan-dashboard-wrap"),r=i[0].getBoundingClientRect(),d=Math.min(r.bottom,r.height);if(d0)e(o).css("bottom",0),a=o.getBoundingClientRect(),a.top<0&&(e(o).css("bottom","unset"),e(o).css("top",0));else{e(o).css("bottom",n);let t=e(".dokan-dash-sidebar")[0].getBoundingClientRect(),i=e(".entry-header")[0].getBoundingClientRect();a=o.getBoundingClientRect(),a.bottom>t.bottom?n+=a.bottom-t.bottom:a.bottom-i.bottom'+dokan[n]+"
    "),a.parent().find(".wc_error_tip").css("left",o.left+a.width()-a.width()/2-e(".wc_error_tip").width()/2).css("top",o.top+a.height()).fadeIn("100"))})).on("wc_remove_error_tip",(function(t,a,n){a.parent().find(".wc_error_tip."+n).fadeOut("100",(function(){e(this).remove()}))})).on("click",(function(){e(".wc_error_tip").fadeOut("100",(function(){e(this).remove()}))})).on("blur",".wc_input_decimal[type=text], .wc_input_price[type=text], .wc_input_country_iso[type=text]",(function(){e(".wc_error_tip").fadeOut("100",(function(){e(this).remove()}))})).on("change",".wc_input_price[type=text], .wc_input_decimal[type=text], .wc-order-totals #refund_amount[type=text]",(function(){var t,a,n=dokan.decimal_point;(e(this).is(".wc_input_price")||e(this).is("#refund_amount"))&&(n=dokan.mon_decimal_point),t=new RegExp("[^-0-9%\\"+n+"]+","gi"),a=new RegExp("\\"+n+"+","gi");var o=e(this).val(),i=o.replace(t,"").replace(a,n);o!==i&&e(this).val(i)})).on("keyup",".wc_input_price[type=text], .wc_input_decimal[type=text], .wc_input_country_iso[type=text], .wc-order-totals #refund_amount[type=text]",(function(){var t,a,n,o=!1;e(this).is(".wc_input_price")||e(this).is("#refund_amount")?(o=!0,t=new RegExp("[^-0-9%\\"+dokan.mon_decimal_point+"]+","gi"),n=new RegExp("[^\\"+dokan.mon_decimal_point+"]","gi"),a="i18n_mon_decimal_error"):e(this).is(".wc_input_country_iso")?(t=new RegExp("([^A-Z])+|(.){3,}","im"),a="i18n_country_iso_error"):(o=!0,t=new RegExp("[^-0-9%\\"+dokan.decimal_point+"]+","gi"),n=new RegExp("[^\\"+dokan.decimal_point+"]","gi"),a="i18n_decimal_error");var i=e(this).val(),r=i.replace(t,"");o&&1=parseFloat(window.accounting.unformat(t.val(),dokan.mon_decimal_point))&&e(this).val("")})).on("keyup","#_sale_price.wc_input_price[type=text], .wc_input_price[name^=variable_sale_price], #_subscription_sale_price.wc_input_price[type=text]",(function(){var t,a=e(this),n=e("#product_type");t=-1!==a.attr("name").indexOf("variable")?a.parents(".variable_pricing").find(".wc_input_price[name^=variable_regular_price]"):n.length&&"subscription"===n.find(":selected").val()?e("#_subscription_price"):e("#_regular_price"),parseFloat(window.accounting.unformat(a.val(),dokan.mon_decimal_point))>=parseFloat(window.accounting.unformat(t.val(),dokan.mon_decimal_point))?e(document.body).triggerHandler("wc_add_error_tip",[e(this),"i18n_sale_less_than_regular_error"]):e(document.body).triggerHandler("wc_remove_error_tip",[e(this),"i18n_sale_less_than_regular_error"])})).on("init_tooltips",(function(){e(".tips, .help_tip, .woocommerce-help-tip").tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200}),e(".column-wc_actions .wc-action-button").tipTip({fadeIn:50,fadeOut:50,delay:200}),e(".parent-tips").each((function(){e(this).closest("a, th").attr("data-tip",e(this).data("tip")).tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200}).css("cursor","help")}))})),e("#dokan-navigation .dokan-dashboard-menu li.has-submenu:not(.active)").on("mouseover",(e=>{t(e)})).on("mouseout",(e=>{t(e,!0)}))}(jQuery),window.dokan_show_delete_prompt=async function(e,t){e.preventDefault();let a=await dokan_sweetalert(t,{action:"confirm",icon:"warning"});if(a.isConfirmed&&void 0!==e.target.href)window.location.href=e.target.href;else{if(!a.isConfirmed||void 0===e.target.dataset.url)return!1;window.location.href=e.target.dataset.url}},window.dokan_bulk_delete_prompt=async function(e,t,a,n){"delete"===jQuery(a).val()&&(e.preventDefault(),(await dokan_sweetalert(t,{action:"confirm",icon:"warning"})).isConfirmed&&jQuery(n).submit())},function(e){var t={query:{},form:null,cateItemStringArray:[],init:function(){e("#dokan-store-listing-filter-wrap .sort-by #stores_orderby").on("change",this.buildSortByQuery),e("#dokan-store-listing-filter-wrap .toggle-view span").on("click",this.toggleView),e("#dokan-store-listing-filter-wrap .dokan-store-list-filter-button, #dokan-store-listing-filter-wrap .dokan-icons, #dokan-store-listing-filter-form-wrap .apply-filter #cancel-filter-btn ").on("click",this.toggleForm),e("#dokan-store-listing-filter-form-wrap .store-search-input").on("change",this.buildSearchQuery),e("#dokan-store-listing-filter-form-wrap .apply-filter #apply-filter-btn").on("click",this.submitForm),this.maybeHideListView();const a=t;a.form=document.forms.dokan_store_lists_filter_form;const n=a.getLocal("dokan-layout");if(n){const t=e(".toggle-view span");a.setView(n,t)}const o=a.getParams();if(o.length){let t=!1;o.forEach((function(e){const n=Object.keys(e),i=Object.values(e);(!n.includes("stores_orderby")||o.length>1)&&(t=!0),a.setParams(n,i)})),t&&e("#dokan-store-listing-filter-form-wrap").slideToggle()}var i,r;e("#dokan-store-listing-filter-form-wrap").length&&e(".store-search-input").on("keypress",(function(t){if(13==t.which)return e("#dokan-store-listing-filter-form-wrap").submit(),!1})),e("body").on("click",(function(t){e(t.target).is("div#dokan-store-products-search-result li")||(e("#dokan-store-products-search-result").html(""),e("#dokan-store-products-search-result").removeClass("dokan-store-products-search-has-results"))})),e("body").on("keyup",".dokan-store-products-filter-search",(i=function(t){t.preventDefault();var a=e(this),n=a.val(),o=a.data("store_id");n&&(e(".dokan-store-products-filter-search").addClass("dokan-ajax-search-loader"),e("#dokan-store-products-search-result").removeClass("dokan-store-products-search-has-results"),e("#dokan-store-products-search-result").hide(),e("#dokan-store-products-search-result").html(""),jQuery.ajax({type:"post",dataType:"json",url:dokan.ajaxurl,data:{search_term:n,store_id:o,_wpnonce:dokan.store_product_search_nonce,action:"dokan_store_product_search_action"},success:function(t){e(".dokan-store-products-filter-search").removeClass("dokan-ajax-search-loader"),e("#dokan-store-products-search-result").show(),e("#dokan-store-products-search-result").addClass("dokan-store-products-search-has-results"),"success"==t.type?e("#dokan-store-products-search-result").html("
      "+t.data_list+"
    "):e("#dokan-store-products-search-result").html('
      '+t.data_list+"
    ")}}))},500,r=0,function(){var e=this,t=arguments;clearTimeout(r),r=setTimeout((function(){i.apply(e,t)}),500)}))},buildSortByQuery:function(e){const a=t;a.query.stores_orderby=e.target.value,a.submitForm(e)},toggleView:function(a){const n=t,o=e(a.target),i=o.parent().find("span"),r=o.data("view");n.setView(r,i),n.setLocal("dokan-layout",r)},setView:function(t,a){if(void 0===t||t.length<1||void 0===a||a.length<1)return;const n=e("#dokan-seller-listing-wrap");[...a].forEach((function(a){const o=e(a);t===o.data("view")?(o.addClass("active"),n.addClass(t)):(o.removeClass("active"),n.removeClass(o.data("view")))}))},toggleForm:function(t){t.preventDefault(),e("#dokan-store-listing-filter-form-wrap").slideToggle()},buildSearchQuery:function(e){e.target.value?t.query.dokan_seller_search=e.target.value:delete t.query.dokan_seller_search},submitForm:function(a){a.preventDefault(),t.query._store_filter_nonce&&delete t.query._store_filter_nonce,t.query._store_filter_nonce=e('input[name="_store_filter_nonce"]').first().val();const n=decodeURIComponent(e.param(t.query)),o="/page",i=window.location.pathname,r=i.includes(o)?i.substr(0,i.indexOf(o)):"";window.history.pushState(null,null,`${r}?${n}`),window.location.reload()},setLocal:function(e,t){window.localStorage.setItem(e,t)},getLocal:function(e){return window.localStorage.getItem(e)},setParams:function(a,n){const o=t,i=o.form?o.form.elements:"",r=document.forms.stores_sorting,d=r?r.elements:"";Object.values(d).forEach((function(t){t.name===a[0]&&e(t).val(n[0])})),Object.values(i).forEach((function(t){if(a.includes(t.name)&&("checkbox"===t.type?t.checked=!!["yes","true","1"].includes(n[0]):["text","search"].includes(t.type)&&(t.value=n[0])),a[0].includes("store_categories[")||a[0].includes("store_category[")){const t=n[0].split(" ").join("-"),a=e(`[data-slug=${t}]`);o.cateItemStringArray.includes(a.text().trim())||o.cateItemStringArray.push(a.text().trim()),a.addClass("dokan-btn-theme")}else if("rating"===a[0]){const t=n[0].split(" ").join("-");e(`[data-${a[0]}=${t}]`).addClass("active"),e(`[data-rating=${t}]`).parent().addClass("selected")}})),a.forEach((function(e,t){e.includes("[")||(o.query[e]=n[t])}))},getParams:function(){const e=new URLSearchParams(location.search),t=[];return e.forEach((function(e,a){t.push({[a]:e})})),t},maybeHideListView:function(){const a=t;window.matchMedia("(max-width: 767px)").matches&&"list-view"===a.getLocal("dokan-layout")&&a.setLocal("dokan-layout","grid-view"),e(window).on("resize",(function(){e(this).width()<767?(e("#dokan-seller-listing-wrap").removeClass("list-view"),e("#dokan-seller-listing-wrap").addClass("grid-view")):(e(".toggle-view.item span").last().removeClass("active"),e(".toggle-view.item span").first().addClass("active"))}))}};window.dokan&&(window.dokan.storeLists=t,window.dokan.storeLists.init())}(jQuery),(e=>{const t={init:()=>{e("#dokan-request-withdraw-button").on("click",(e=>{e.preventDefault(),t.openRequestWithdrawWindow()})),e(".dokan-withdraw-make-default-button").on("click",(e=>{e.preventDefault(),t.makeDefault(e)})),e("#dokan-withdraw-request-submit").on("click",(e=>{t.handleWithdrawRequest(e)})),e("#dokan-withdraw-display-schedule-popup").on("click",(e=>{t.opensScheduleWindow(e)})),e("#dokan-withdraw-schedule-request-submit").on("click",(e=>{t.handleScheduleChangeRequest(e)})),e("input[name='withdraw-schedule']").on("change",(e=>{t.handleScheduleChange(e)}))},openRequestWithdrawWindow:()=>{const a=wp.template("withdraw-request-popup"),n=e("#dokan-withdraw-request-popup").iziModal({width:690,overlayColor:"rgba(0, 0, 0, 0.8)",headerColor:dokan.modal_header_color});n.iziModal("setContent",a().trim()),n.iziModal("open"),t.init()},opensScheduleWindow:()=>{const a=wp.template("withdraw-schedule-popup"),n=e("#dokan-withdraw-schedule-popup").iziModal({width:690,overlayColor:"rgba(0, 0, 0, 0.8)",headerColor:dokan.modal_header_color});n.iziModal("setContent",a().trim()),n.iziModal("open"),t.init()},makeDefault:t=>{const a=e(t.target),n=e("#dokan-withdraw-payment-method-list");n.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,{action:"dokan_withdraw_handle_make_default_method",nonce:n.data("security"),method:a.data("method")},(e=>{e.success?(dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"success",showConfirmButton:!1,timer:2e3,timerProgressBar:!0}),n.unblock(),window.location.reload()):(dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"error",showConfirmButton:!1,timer:2e3,timerProgressBar:!0}),n.unblock())}))},handleWithdrawRequest:t=>{t.preventDefault();const a=e("input#withdraw-amount").val(),n=e("input#dokan_withdraw_nonce").val(),o=e("#withdraw-request-popup"),i=e("#withdraw-method").val();o.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,{action:"dokan_handle_withdraw_request",_handle_withdraw_request:n,amount:a,method:i},(async e=>{e.success?await dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"success",showConfirmButton:!1,timer:2e3,timerProgressBar:!0,didOpen:e=>{setTimeout((function(){o.unblock(),window.location.reload()}),2e3)}}):(dokan_sweetalert("",{icon:"error",html:e.data}),o.unblock())}))},handleScheduleChangeRequest:t=>{t.preventDefault();const a=e("input[name='withdraw-schedule']:checked").val(),n=e("#dokan-withdraw-schedule-request-submit").data("security"),o=e("#withdraw-schedule-popup"),i=e("#withdraw-remaining-amount").val(),r=e("#minimum-withdraw-amount").val(),d=e("#preferred-payment-method").val();o.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,{action:"dokan_handle_withdraw_schedule_change_request",nonce:n,schedule:a,reserve:i,minimum:r,method:d},(e=>{e.success?(dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"success",showConfirmButton:!1,timer:2e3,timerProgressBar:!0}),o.unblock(),window.location.reload()):(dokan_sweetalert("",{icon:"error",html:e.data}),o.unblock())}))},handleScheduleChange:t=>{const a=e(t.target).data("next-schedule");e("#dokan-withdraw-next-scheduled-date").html(a)}};e(document).ready((function(){t.init()}))})(jQuery)})(); \ No newline at end of file +(()=>{var e,t;jQuery((function(e){e(".tips").tooltip(),e("ul.order-status").on("click","a.dokan-edit-status",(function(t){return e(this).addClass("dokan-hide").closest("li").next("li").removeClass("dokan-hide"),!1})),e("ul.order-status").on("click","a.dokan-cancel-status",(function(t){return e(this).closest("li").addClass("dokan-hide").prev("li").find("a.dokan-edit-status").removeClass("dokan-hide"),!1})),e("form#dokan-order-status-form").on("submit",(function(t){t.preventDefault();var a=e(this),n=a.closest("li");n.block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}}),e.post(dokan.ajaxurl,a.serialize(),(function(e){if(n.unblock(),e.success){var t=n.prev();n.addClass("dokan-hide"),t.find("label").replaceWith(e.data),t.find("a.dokan-edit-status").removeClass("dokan-hide")}else dokan_sweetalert(e.data,{icon:"success"})}))})),e("form#add-order-note").on("submit",(function(t){if(t.preventDefault(),e("textarea#add-note-content").val())return e("#dokan-order-notes").block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}}),e.post(dokan.ajaxurl,e(this).serialize(),(function(t){e("ul.order_notes").prepend(t),e("#dokan-order-notes").unblock(),e("#add-note-content").val("")})),!1})),e("#dokan-order-notes").on("click","a.delete_note",(function(){var t=e(this).closest("li.note");e("#dokan-order-notes").block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}});var a={action:"dokan_delete_order_note",note_id:e(t).attr("rel"),security:e("#delete-note-security").val()};return e.post(dokan.ajaxurl,a,(function(a){e(t).remove(),e("#dokan-order-notes").unblock()})),!1})),e(".order_download_permissions").on("click","button.grant_access",(function(){var t=e(this),a=e("select.grant_access_id").val();if(a){e(".order_download_permissions").block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}});var n={action:"dokan_grant_access_to_download",product_ids:a,loop:e(".order_download_permissions .panel").length,order_id:t.data("order-id"),security:t.data("nonce")};return e.post(dokan.ajaxurl,n,(function(t){t?e("#accordion").append(t):dokan_sweetalert(dokan.i18n_download_access,{icon:"warning"}),e(".datepicker").datepicker(),e(".order_download_permissions").unblock()})),!1}})),e(".order_download_permissions").on("click","button.revoke_access",(async function(t){t.preventDefault();const a=await dokan_sweetalert(dokan.i18n_download_permission,{action:"confirm",icon:"warning"});if("undefined"!==a&&a.isConfirmed){var n=e(this),o=n.closest(".dokan-panel"),i=n.attr("rel").split(",")[0],r=n.attr("rel").split(",")[1];if(i>0){e(o).block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}});var d={action:"dokan_revoke_access_to_download",product_id:i,download_id:r,order_id:n.data("order-id"),permission_id:n.data("permission-id"),security:n.data("nonce")};e.post(dokan.ajaxurl,d,(function(t){e(o).fadeOut("300",(function(){e(o).remove()}))}))}else e(o).fadeOut("300",(function(){e(o).remove()}))}return!1}))})),e=jQuery,(t={init:function(){let t={d:"dd",D:"D",j:"d",l:"DD",F:"MM",m:"mm",M:"M",n:"m",o:"yy",Y:"yy",y:"y"},a=0,n="",o="";for(a=0;a0?e("#restock_refunded_items").closest("tr").show():(e("#restock_refunded_items").closest("tr").hide(),e(".woocommerce_order_items input.refund_order_item_qty").each((function(){e(this).val()>0&&e("#restock_refunded_items").closest("tr").show()}))),e(this).trigger("refund_quantity_changed")}}}).init(),e("#dokan-filter-customer").filter(":not(.enhanced)").each((function(){var t={allowClear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"1",escapeMarkup:function(e){return e},language:{errorLoading:function(){return dokan.i18n_searching},inputTooLong:function(e){var t=e.input.length-e.maximum;return 1===t?dokan.i18n_input_too_long_1:dokan.i18n_input_too_long_n.replace("%qty%",t)},inputTooShort:function(e){var t=e.minimum-e.input.length;return 1===t?dokan.i18n_input_too_short_1:dokan.i18n_input_too_short_n.replace("%qty%",t)},loadingMore:function(){return dokan.i18n_load_more},maximumSelected:function(e){return 1===e.maximum?dokan.i18n_selection_too_long_1:dokan.i18n_selection_too_long_n.replace("%qty%",e.maximum)},noResults:function(){return dokan.i18n_no_matches},searching:function(){return dokan.i18n_searching}},ajax:{url:dokan.ajaxurl,dataType:"json",delay:1e3,data:function(t){return{term:t.term,action:"dokan_json_search_vendor_customers",security:dokan.search_customer_nonce,exclude:e(this).data("exclude")}},processResults:function(t){var a=[];return t&&e.each(t,(function(e,t){a.push({id:e,text:t})})),{results:a}},cache:!0}};if(e(this).select2(t).addClass("enhanced"),e(this).data("sortable")){var a=e(this),n=e(this).next(".select2-container").find("ul.select2-selection__rendered");n.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:!0,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){e(n.find(".select2-selection__choice").get().reverse()).each((function(){var t=e(this).data("data").id,n=a.find('option[value="'+t+'"]')[0];a.prepend(n)}))}})}})),function(e){e("#variants-holder"),e("#product_image_gallery"),e("#product_images_container ul.product_images");var t,a,n={modal:!1,init:function(){product_type="simple",e(".product-edit-container").on("click",".dokan-section-heading",this.toggleProductSection),e(".product-edit-container").on("click","input[type=checkbox]#_downloadable",this.downloadable),e(".product-edit-container").on("click","a.sale-schedule",this.showDiscountSchedule),e("body, #dokan-product-images").on("click","a.add-product-images",this.gallery.addImages),e("body, #dokan-product-images").on("click","a.action-delete",this.gallery.deleteImage),this.gallery.sortable(),e("body, .product-edit-container").on("click","a.dokan-feat-image-btn",this.featuredImage.addImage),e("body, .product-edit-container").on("click","a.dokan-remove-feat-image",this.featuredImage.removeImage),e("body, #variable_product_options").on("click",".sale_schedule",this.saleSchedule),e("body, #variable_product_options").on("click",".cancel_sale_schedule",this.cancelSchedule),e(".product-edit-container").on("change","input[type=checkbox]#_manage_stock",this.showManageStock),e(".product-edit-container").on("click","a.upload_file_button",this.fileDownloadable),e("body").on("click","a.insert-file-row",(function(){return e(this).closest("table").find("tbody").append(e(this).data("row")),!1})),e("body").on("click","a.dokan-product-delete",(function(){return e(this).closest("tr").remove(),!1})),e("body").on("submit","form.dokan-product-edit-form",this.inputValidate),e(".dokan-product-listing").on("click","a.dokan-add-new-product",this.addProductPopup),this.loadSelect2(),this.bindProductTagDropdown(),this.attribute.sortable(),this.checkProductPostboxToggle(),e(".product-edit-container .dokan-product-attribute-wrapper").on("click","a.dokan-product-toggle-attribute, .dokan-product-attribute-heading",this.attribute.toggleAttribute),e(".product-edit-container .dokan-product-attribute-wrapper").on("click","a.add_new_attribute",this.attribute.addNewAttribute),e(".product-edit-container .dokan-product-attribute-wrapper").on("keyup","input.dokan-product-attribute-name",this.attribute.dynamicAttrNameChange),e(".dokan-product-attribute-wrapper ul.dokan-attribute-option-list").on("click","button.dokan-select-all-attributes",this.attribute.selectAllAttr),e(".dokan-product-attribute-wrapper ul.dokan-attribute-option-list").on("click","button.dokan-select-no-attributes",this.attribute.selectNoneAttr),e(".dokan-product-attribute-wrapper ul.dokan-attribute-option-list").on("click","button.dokan-add-new-attribute",this.attribute.addNewExtraAttr),e(".product-edit-container .dokan-product-attribute-wrapper").on("click","a.dokan-product-remove-attribute",this.attribute.removeAttribute),e(".product-edit-container .dokan-product-attribute-wrapper").on("click","a.dokan-save-attribute",this.attribute.saveAttribute),e("body").on("click",'.product-container-footer input[type="submit"]',this.createNewProduct),this.attribute.disbalePredefinedAttribute(),this.setCorrectProductId(),e("body").trigger("dokan-product-editor-loaded",this)},setCorrectProductId:function(){if(!e(".dokan-product-edit-form"))return;let t=e("#dokan_product_id").val();if(window.history.replaceState){let e=new URL(document.location),a=e.searchParams,n=a.get("product_id");if(""!==n&&"0"!==n)return;if(a.set("product_id",t),"edit"!==a.get("action"))return;e.search=a.toString();let o=e.toString(),i={product_id:t};window.history.replaceState(i,document.title,o)}},saleSchedule:function(){var t=e(this).closest(".dokan-product-field-content","div, table");return e(this).hide(),t.find(".cancel_sale_schedule").show(),t.find(".sale_price_dates_fields").show(),!1},cancelSchedule:function(){var t=e(this).closest(".dokan-product-field-content","div, table");return e(this).hide(),t.find(".sale_schedule").show(),t.find(".sale_price_dates_fields").hide(),t.find(".sale_price_dates_fields").find("input").val(""),!1},checkProductPostboxToggle:function(){var t=JSON.parse(localStorage.getItem("toggleClasses"));e.each(t,(function(t,a){var n=e("."+t.replace(/_/g,"-")),o=n.find(".dokan-section-content"),i=n.find("i.fa-sort-desc");a?(o.show(),i.removeClass("fa-flip-horizointal").addClass("fa-flip-vertical"),i.css("marginTop","9px")):(o.hide(),i.removeClass("fa-flip-vertical").addClass("fa-flip-horizointal"),i.css("marginTop","0px"))}))},toggleProductSection:function(t){t.preventDefault();var a=e(this);if(null!=JSON.parse(localStorage.getItem("toggleClasses")))var n=JSON.parse(localStorage.getItem("toggleClasses"));else n={};a.closest(".dokan-edit-row").find(".dokan-section-content").slideToggle(300,(function(){var t;e(this).is(":visible")?((t=a.find("i.fa-sort-desc")).removeClass("fa-flip-horizointal").addClass("fa-flip-vertical"),t.css("marginTop","9px"),n[a.data("togglehandler")]=!0):((t=a.find("i.fa-sort-desc")).removeClass("fa-flip-vertical").addClass("fa-flip-horizointal"),t.css("marginTop","0px"),n[a.data("togglehandler")]=!1),localStorage.setItem("toggleClasses",JSON.stringify(n))}))},loadSelect2:function(){e(".dokan-select2").select2({language:{noResults:function(){return dokan.i18n_no_result_found}}})},bindProductTagDropdown:function(){e(".product_tag_search").select2({allowClear:!1,tags:dokan.product_vendors_can_create_tags&&"on"===dokan.product_vendors_can_create_tags,createTag:function(t){var a=e.trim(t.term);return""===a?null:{id:a,text:a,newTag:!0}},insertTag:function(t,a){var n=!1;e.each(t,(function(t,o){e.trim(a.text).toUpperCase()==e.trim(o.text).toUpperCase()&&(n=!0)})),n||t.unshift(a)},minimumInputLength:2,maximumSelectionLength:void 0!==dokan.maximum_tags_select_length?dokan.maximum_tags_select_length:-1,ajax:{url:dokan.ajaxurl,dataType:"json",delay:250,data:function(e){return{q:e.term,action:"dokan_json_search_products_tags",security:dokan.search_products_tags_nonce,page:e.page||1}},processResults:function(t){var a=[];return t&&e.each(t,(function(e,t){a.push({id:t[0],text:t[1]})})),{results:a,pagination:{more:0!=a.length}}},cache:!0},language:{errorLoading:function(){return dokan.i18n_searching},inputTooLong:function(e){var t=e.input.length-e.maximum;return 1===t?dokan.i18n_input_too_long_1:dokan.i18n_input_too_long_n.replace("%qty%",t)},inputTooShort:function(e){var t=e.minimum-e.input.length;return 1===t?dokan.i18n_input_too_short_1:dokan.i18n_input_too_short_n.replace("%qty%",t)},loadingMore:function(){return dokan.i18n_load_more},maximumSelected:function(e){return 1===e.maximum?dokan.i18n_selection_too_long_1:dokan.i18n_selection_too_long_n.replace("%qty%",e.maximum)},noResults:function(){return dokan.i18n_no_matches},searching:function(){return dokan.i18n_searching}}})},addProductPopup:function(e){e.preventDefault(),n.openProductPopup()},openProductPopup:function(){const o=wp.template("dokan-add-new-product"),i=e("#dokan-add-product-popup");n.modal=i.iziModal({headerColor:dokan.modal_header_color,overlayColor:"rgba(0, 0, 0, 0.8)",width:690,top:32,onOpening:()=>{n.reRenderPopupElements()},onClosed:()=>{t=void 0,a=void 0,e('#dokan-add-new-product-popup input[name="_sale_price_dates_from"], #dokan-add-new-product-popup input[name="_sale_price_dates_to"]').datepicker("destroy")}}),n.modal.iziModal("setContent",o().trim()),n.modal.iziModal("open")},reRenderPopupElements:function(){n.loadSelect2(),n.bindProductTagDropdown(),e("#dokan-add-new-product-popup .sale_price_dates_fields input").daterangepicker({singleDatePicker:!0,showDropdowns:!1,autoApply:!0,parentEl:"#dokan-add-new-product-popup",opens:"left",autoUpdateInput:!1}).on("apply.daterangepicker",(function(t,a){e(this).val(a.startDate.format("YYYY-MM-DD"))})),e(".tips").tooltip(),n.gallery.sortable(),e("body").trigger("dokan-product-editor-popup-opened",n)},createNewProduct:function(t){t.preventDefault();var o=e(this),i=o.closest("form#dokan-add-new-product-form"),r=o.attr("data-btn_id");if(i.find("span.dokan-show-add-product-success").html(""),i.find("span.dokan-show-add-product-error").html(""),i.find("span.dokan-add-new-product-spinner").css("display","inline-block"),o.attr("disabled","disabled"),""==i.find('input[name="post_title"]').val())return e("span.dokan-show-add-product-error").html(dokan.product_title_required),o.removeAttr("disabled"),void i.find("span.dokan-add-new-product-spinner").css("display","none");if("-1"==i.find('select[name="product_cat"]').val())return e("span.dokan-show-add-product-error").html(dokan.product_category_required),o.removeAttr("disabled"),void i.find("span.dokan-add-new-product-spinner").css("display","none");var d={action:"dokan_create_new_product",postdata:i.serialize(),_wpnonce:dokan.nonce};n.modal.iziModal("startLoading"),e.post(dokan.ajaxurl,d,(function(t){t.success?(o.removeAttr("disabled"),"create_new"===r?(e("#dokan-add-product-popup").iziModal("close"),window.location.href=t.data):(a=void 0,e(".dokan-dashboard-product-listing-wrapper").load(window.location.href+" table.product-listing-table"),n.modal.iziModal("resetContent"),n.openProductPopup(),n.reRenderPopupElements(),e("span.dokan-show-add-product-success").html(dokan.product_created_response),setTimeout((function(){e("span.dokan-show-add-product-success").html("")}),3e3))):(o.removeAttr("disabled"),e("span.dokan-show-add-product-error").html(t.data)),i.find("span.dokan-add-new-product-spinner").css("display","none")})).always((function(){n.modal.iziModal("stopLoading")}))},attribute:{toggleAttribute:function(t){t.preventDefault();var a=e(this),n=a.closest("li").find(".dokan-product-attribute-item");return e(n).hasClass("dokan-hide")?(a.closest(".dokan-product-attribute-heading").css({borderBottom:"1px solid #e3e3e3"}),e(n).slideDown(200,(function(){a.find("i.fa").removeClass("fa-flip-horizointal").addClass("fa-flip-vertical"),e(this).removeClass("dokan-hide"),e(t.target).hasClass("dokan-product-attribute-heading")?e(t.target).hasClass("dokan-product-attribute-heading")&&a.find("a.dokan-product-toggle-attribute").css("top","12px"):e(t.target).closest("a").css("top","12px")}))):e(n).slideUp(200,(function(){e(this).addClass("dokan-hide"),a.find("i.fa").removeClass("fa-flip-vertical").addClass("fa-flip-horizointal"),e(t.target).hasClass("dokan-product-attribute-heading")?e(t.target).hasClass("dokan-product-attribute-heading")&&a.find("a.dokan-product-toggle-attribute").css("top","7px"):e(t.target).closest("a").css("top","7px"),a.closest(".dokan-product-attribute-heading").css({borderBottom:"none"})})),!1},sortable:function(){e(".dokan-product-attribute-wrapper ul").sortable({items:"li.product-attribute-list",cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,helper:"clone",opacity:.65,placeholder:"dokan-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")},update:function(e,t){n.attribute.reArrangeAttribute()}})},dynamicAttrNameChange:function(t){t.preventDefault();var a=e(this),n=a.val();""==n?a.closest("li").find("strong").html(dokan.i18n_attribute_label):a.closest("li").find("strong").html(n)},selectAllAttr:function(t){return t.preventDefault(),e(this).closest("li.product-attribute-list").find("select.dokan_attribute_values option").attr("selected","selected"),e(this).closest("li.product-attribute-list").find("select.dokan_attribute_values").trigger("change"),!1},selectNoneAttr:function(t){return t.preventDefault(),e(this).closest("li.product-attribute-list").find("select.dokan_attribute_values option").removeAttr("selected"),e(this).closest("li.product-attribute-list").find("select.dokan_attribute_values").trigger("change"),!1},reArrangeAttribute:function(){e(".dokan-product-attribute-wrapper").find("ul.dokan-attribute-option-list").find("li.product-attribute-list").css("cursor","default").each((function(t){e(this).find(".attribute_position").val(t)}))},addNewExtraAttr:async function(t){t.preventDefault();var a=e(this).closest("li.product-attribute-list"),n=a.data("taxonomy"),o=(await dokan_sweetalert(dokan.new_attribute_prompt,{action:"prompt",input:"text"})).value;if(o){var i={action:"dokan_add_new_attribute",taxonomy:n,term:o,_wpnonce:dokan.nonce};e.post(dokan.ajaxurl,i,(function(e){e.error?dokan_sweetalert(e.error,{action:"alert",icon:"warning"}):e.slug&&(a.find("select.dokan_attribute_values").append('"),a.find("select.dokan_attribute_values").trigger("change"))}))}},addNewAttribute:function(t){t.preventDefault();var a=e(this),o=a.closest(".dokan-attribute-type").find("select#predefined_attribute"),i=o.val(),r=e("ul.dokan-attribute-option-list .product-attribute-list").length,d={action:"dokan_get_pre_attribute",taxonomy:i,i:r,_wpnonce:dokan.nonce};a.closest(".dokan-attribute-type").find("span.dokan-attribute-spinner").removeClass("dokan-hide"),e.post(dokan.ajaxurl,d,(function(t){if(t.success){var r=e(".dokan-product-attribute-wrapper").find("ul.dokan-attribute-option-list");if($html=e.parseHTML(t.data),e($html).find(".dokan-product-attribute-item").removeClass("dokan-hide"),e($html).find("i.fa.fa-sort-desc").removeClass("fa-flip-horizointal").addClass("fa-flip-vertical"),e($html).find("a.dokan-product-toggle-attribute").css("top","12px"),e($html).find(".dokan-product-attribute-heading").css({borderBottom:"1px solid #e3e3e3"}),r.append($html),n.loadSelect2(),n.bindProductTagDropdown(),n.attribute.reArrangeAttribute(),"variable"!==e("select#product_type").val()){let t=e("div.dokan-product-attribute-wrapper label.show_if_variable");for(let a of t){let t=e(a).find('input[type="checkbox"]');t.length>0&&t[0].getAttribute("name")?.startsWith("attribute_variation[")&&e(a).hide()}}}a.closest(".dokan-attribute-type").find("span.dokan-attribute-spinner").addClass("dokan-hide"),i&&(o.find('option[value="'+i+'"]').attr("disabled","disabled"),o.val(""))})).done((function(){e("select#product_type").trigger("change")}))},removeAttribute:async function(t){t.stopPropagation(),t.preventDefault();const a=await dokan_sweetalert(dokan.remove_attribute,{action:"confirm",icon:"warning"});if("undefined"!==a&&a.isConfirmed){var o=e(this).closest("li.product-attribute-list");o.fadeOut(300,(function(){o.is(".taxonomy")?(o.find("select, input[type=text]").val(""),e("select.dokan_attribute_taxonomy").find('option[value="'+o.data("taxonomy")+'"]').removeAttr("disabled")):(o.find("select, input[type=text]").val(""),o.hide()),n.attribute.reArrangeAttribute()}))}return!1},saveAttribute:function(t){t.preventDefault(),e(this);var a={post_id:e("#dokan-edit-product-id").val(),data:e("ul.dokan-attribute-option-list").find("input, select, textarea").serialize(),action:"dokan_save_attributes"};e(".dokan-product-attribute-wrapper").block({message:null,fadeIn:50,fadeOut:1e3,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,a,(function(t){e("#dokan-variable-product-options").load(window.location.toString()+" #dokan-variable-product-options-inner",(function(){e("#dokan-variable-product-options").trigger("reload"),e("select#product_type").trigger("change"),e(".dokan-product-attribute-wrapper").unblock()}))}))},disbalePredefinedAttribute:function(){e("ul.dokan-attribute-option-list li.product-attribute-list").each((function(t,a){"none"!==e(a).css("display")&&e(a).is(".taxonomy")&&e("select#predefined_attribute").find('option[value="'+e(a).data("taxonomy")+'"]').attr("disabled","disabled")}))}},inputValidate:function(t){return t.preventDefault(),""==e("#post_title").val().trim()?(e("#post_title").focus(),void e("div.dokan-product-title-alert").removeClass("dokan-hide")):(e("div.dokan-product-title-alert").hide(),-1==e("select.product_cat").val()?(e("select.product_cat").focus(),void e("div.dokan-product-cat-alert").removeClass("dokan-hide")):(e("div.dokan-product-cat-alert").hide(),e("input[type=submit]").attr("disabled","disabled"),void this.submit()))},downloadable:function(){e(this).prop("checked")?e(this).closest("aside").find(".dokan-side-body").removeClass("dokan-hide"):e(this).closest("aside").find(".dokan-side-body").addClass("dokan-hide")},showDiscountSchedule:function(t){t.preventDefault(),e(".sale-schedule-container").slideToggle("fast")},showManageStock:function(t){const a=e("#product_type").val();e(this).is(":checked")&&"external"!==a?e(".show_if_stock").slideDown("fast"):e(".show_if_stock").slideUp("fast"),"simple"===a&&(e(this).is(":checked")?e(".hide_if_stock_global").slideUp("fast"):e(".hide_if_stock_global").slideDown("fast"))},gallery:{addImages:function(a){a.preventDefault();var n=e(this),o=n.closest(".dokan-product-gallery").find("#product_images_container ul.product_images"),i=n.closest(".dokan-product-gallery").find("#product_image_gallery");t||(t=wp.media({title:dokan.i18n_choose_gallery,library:{type:"image"},button:{text:dokan.i18n_choose_gallery_btn_text},multiple:!0})).on("select",(function(){t.state().get("selection").map((function(t){t=t.toJSON(),attachment_ids=[],t.id&&"image"===t.type&&(e('
  • ×
  • ').insertBefore(o.find("li.add-image")),e("#product_images_container ul li.image").css("cursor","default").each((function(){var e=jQuery(this).attr("data-attachment_id");attachment_ids.push(e)})),i.val(attachment_ids.join(",")))}))})),t.open()},deleteImage:function(t){t.preventDefault();var a=e(this),n=(a.closest(".dokan-product-gallery").find("#product_images_container ul.product_images"),a.closest(".dokan-product-gallery").find("#product_image_gallery"));a.closest("li.image").remove();var o=[];return e("#product_images_container ul li.image").css("cursor","default").each((function(){var t=e(this).attr("data-attachment_id");o.push(t)})),n.val(o.join(",")),!1},sortable:function(){e("body").find("#product_images_container ul.product_images").sortable({items:"li.image",cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,helper:"clone",opacity:.65,placeholder:"dokan-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")},update:function(t,a){var n=[];e("body").find("#product_images_container ul li.image").css("cursor","default").each((function(){var e=jQuery(this).attr("data-attachment_id");n.push(e)})),e("body").find("#product_image_gallery").val(n.join(","))}})}},featuredImage:{addImage:function(t){t.preventDefault();var n=e(this);a||(a=wp.media({title:dokan.i18n_choose_featured_img,library:{type:"image"},button:{text:dokan.i18n_choose_featured_img_btn_text}})).on("select",(function(){a.state().get("selection").map((function(e){if("image"===(e=e.toJSON()).type){n.siblings("input.dokan-feat-image-id").val(e.id);var t=n.closest(".instruction-inside"),a=t.siblings(".image-wrap");a.find("img").attr("src",e.url),a.find("img").removeAttr("srcset"),t.addClass("dokan-hide"),a.removeClass("dokan-hide")}}))})),a.open()},removeImage:function(t){t.preventDefault();var a=e(this).closest(".image-wrap"),n=a.siblings(".instruction-inside");n.find("input.dokan-feat-image-id").val("0"),a.addClass("dokan-hide"),n.removeClass("dokan-hide")}},fileDownloadable:function(t){t.preventDefault();var a,n=e(this);a||((a=wp.media({title:dokan.i18n_choose_file,button:{text:dokan.i18n_choose_file_btn_text},multiple:!0})).on("select",(function(){a.state().get("selection").map((function(e){e=e.toJSON(),n.closest("tr").find("input.wc_file_url, input.wc_variation_file_url").val(e.url)}))})),a.on("ready",(function(){a.uploader.options.uploader.params={type:"downloadable_product"}}))),a.open()}};e((function(){function t(){var t=e("#product_type").val(),a=e("input#_virtual:checked").length,n=e("input#_downloadable:checked").length;let o=e(".dokan-product-shipping-tax");var i=".hide_if_downloadable, .hide_if_virtual",r=".show_if_downloadable, .show_if_virtual";e.each(Object.keys(dokan.product_types),(function(e,t){i=i+", .hide_if_"+t,r=r+", .show_if_"+t})),e(i).show(),e(r).hide(),n&&e(".show_if_downloadable").show(),a&&e(".show_if_virtual").show(),e(".show_if_"+t).show(),n&&e(".hide_if_downloadable").hide(),a?(e(".hide_if_virtual").hide(),1===e(".dokan-product-shipping-tax .dokan-section-content").first().children().length?o.hide():(o.hasClass("hide_if_virtual")&&o.removeClass("hide_if_virtual"),o.show())):o.show(),e(".hide_if_"+t).hide(),e("input#_manage_stock").trigger("change")}n.init(),e("select#product_type").on("change",(function(){var a=e(this).val();"variable"===a&&(e("input#_manage_stock").trigger("change"),e("input#_downloadable").prop("checked",!1),e("input#_virtual").removeAttr("checked")),t(),e(document.body).trigger("dokan-product-type-change",a,e(this))})).trigger("change"),e(".product-edit-container").on("change","input#_downloadable, input#_virtual",(function(){t()})).trigger("change"),e("input#_downloadable").trigger("change"),e("input#_virtual").trigger("change"),e(".sale_price_dates_fields").each((function(){var t=e(this),a=!1,n=t.closest("div, table");t.find("input").each((function(){""!==e(this).val()&&(a=!0)})),a?(n.find(".sale_schedule").hide(),n.find(".sale_price_dates_fields").show()):(n.find(".sale_schedule").show(),n.find(".sale_price_dates_fields").hide())})),e(".product-edit-container").on("click",".sale_schedule",(function(){var t=e(this).closest(".product-edit-container, div.dokan-product-variation-itmes, table");return e(this).hide(),t.find(".cancel_sale_schedule").show(),t.find(".sale_price_dates_fields").show(),!1})),e(".product-edit-container").on("click",".cancel_sale_schedule",(function(){var t=e(".product-edit-container, div.dokan-product-variation-itmes, table");return e(this).hide(),t.find(".sale_schedule").show(),t.find(".sale_price_dates_fields").hide(),t.find(".sale_price_dates_fields").find("input").val(""),!1})),e("#dokan-product-title-area").on("click",".edit-slug",(function(){!function(){var t,a,n,o,i=0,r=e("#post_name"),d=r.val(),s=e("#sample-permalink"),l=s.html(),c=e("#sample-permalink a").html(),u=e("#edit-slug-buttons"),p=u.html(),m=e("#editable-post-name-full");for(m.find("img").replaceWith((function(){return this.alt})),m=m.html(),s.html(c),n=e("#editable-post-name"),o=n.html(),u.html(' "),u.children(".save").on("click",(function(){var t=n.children("input").val();t!=e("#editable-post-name-full").text()?e.post(ajaxurl,{action:"sample-permalink",post_id:e("#dokan-edit-product-id").val(),new_slug:t,new_title:e("#post_title").val(),samplepermalinknonce:e("#samplepermalinknonce").val()},(function(a){var n=e("#edit-slug-box");n.html(a),n.hasClass("hidden")&&n.fadeIn("fast",(function(){n.removeClass("hidden")})),u.html(p),s.html(l),r.val(t),e(".edit-slug").focus(),e("#editable-post-name-full-dokan").val(e("#editable-post-name-full").html())})):u.children(".cancel").trigger("click")})),u.children(".cancel").on("click",(function(){e("#view-post-btn").show(),n.html(o),u.html(p),s.html(l),r.val(d),e(".edit-slug").focus()})),t=0;tm.length/4?"":m,n.html('').children("input").on("keydown",(function(e){var t=e.which;13===t&&(e.preventDefault(),u.children(".save").trigger("click")),27===t&&u.children(".cancel").trigger("click")})).on("keyup",(function(){r.val(this.value)})).focus()}()})),e("#dokan-edit-product-id").val()&&e("#post_title").val()&&e("#samplepermalinknonce").val()&&e.post(ajaxurl,{action:"sample-permalink",post_id:e("#dokan-edit-product-id").val(),new_slug:e("#edited-post-name-dokan").val(),new_title:e("#post_title").val(),samplepermalinknonce:e("#samplepermalinknonce").val()},(function(t){e("#edit-slug-box").html(t)})),e(window).on("load",(function(){e("input#_virtual:checked").length&&t()}))}))}(jQuery),jQuery((function(e){function t(e,t,a){jQuery('
    '+a+"
    ").css({top:t-16,left:e+20}).appendTo("body").fadeIn(200)}wp.customize,e(".datepicker").datepicker({dateFormat:"yy-mm-dd"}),e(".dokan-table tbody").on("click",".toggle-row",(function(){e(this).closest("tr").toggleClass("is-expanded")})),e(".dokan-start-date").datepicker({defaultDate:"",dateFormat:"yy-mm-dd",numberOfMonths:1,onSelect:function(t){let a=new Date(t);a.setDate(a.getDate()+1),e(".dokan-end-date").datepicker("option",{minDate:a})}}),e(".dokan-end-date").datepicker({defaultDate:"",dateFormat:"yy-mm-dd",numberOfMonths:1,onSelect:function(t){let a=new Date(t);a.setDate(a.getDate()-1),e("dokan-start-date").datepicker("option",{maxDate:a})}}),e(".tips").tooltip();var a=null,n=null;jQuery(".chart-placeholder").on("plothover",(function(e,o,i){if(i){if((a!=i.dataIndex||n!=i.seriesIndex)&&(a=i.dataIndex,n=i.seriesIndex,jQuery(".chart-tooltip").remove(),i.series.points.show||i.series.enable_tooltip)){var r=i.series.data[i.dataIndex][1];tooltip_content="",i.series.prepend_label&&(tooltip_content=tooltip_content+i.series.label+": "),i.series.prepend_tooltip&&(tooltip_content+=i.series.prepend_tooltip),tooltip_content+=r,i.series.append_tooltip&&(tooltip_content+=i.series.append_tooltip),i.series.pie.show?t(o.pageX,o.pageY,tooltip_content):t(i.pageX,i.pageY,tooltip_content)}}else jQuery(".chart-tooltip").remove(),a=null}))})),function(e){e.validator.setDefaults({ignore:":hidden"});var t=function(t,a){e(a).closest(".dokan-form-group").addClass("has-error").append(t)},a=function(t,a){e(a).closest(".dokan-form-group").removeClass("has-error"),e(t).remove()},n=wp.customize,o='input[name="settings[bank][disconnect]"], input[name="settings[paypal][disconnect]"], input[name="settings[skrill][disconnect]"], input[name="settings[dokan_custom][disconnect]"]',i={init:function(){return e("a.dokan-banner-drag").on("click",this.imageUpload),e("a.dokan-remove-banner-image").on("click",this.removeBanner),e("a.dokan-pro-gravatar-drag").on("click",this.gragatarImageUpload),e("a.dokan-gravatar-drag").on("click",this.simpleImageUpload),e("a.dokan-remove-gravatar-image").on("click",this.removeGravatar),e(".dokan-update-setting-top-button").on("click",(function(){e("input[name='dokan_update_store_settings']").trigger("click")})),this.validateForm(this),e(".dokan_payment_disconnect_btn").on("click",(function(){var t=e(this).closest("form"),a=e("form#"+t.attr("id"));e(":input",t).not(":button, :submit, :reset, :hidden, :checkbox").val("").prop("selected",!1);var n=t.serializeArray().reduce((function(e,t){return e[t.name]=t.value,e}),{});n[e(this).attr("name")]="",n.form_id=t.attr("id"),n.action="dokan_settings",i.handleRequest(a,n,!0)})),!1},calculateImageSelectOptions:function(e,t){var a,o,i,r,d,s,l=parseInt(dokan.store_banner_dimension.width,10),c=parseInt(dokan.store_banner_dimension.height,10),u=!!parseInt(dokan.store_banner_dimension["flex-width"],10),p=!!parseInt(dokan.store_banner_dimension["flex-height"],10);return d=e.get("width"),r=e.get("height"),this.headerImage=new n.HeaderTool.ImageModel,this.headerImage.set({themeWidth:l,themeHeight:c,themeFlexWidth:u,themeFlexHeight:p,imageWidth:d,imageHeight:r}),t.set("canSkipCrop",!this.headerImage.shouldBeCropped()),(o=d)/(i=r)>(a=l/c)?l=(c=i)*a:c=(l=o)/a,s={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:d,imageHeight:r,x1:0,y1:0,x2:l,y2:c},!1===p&&!1===u&&(s.aspectRatio=l+":"+c),!1===p&&(s.maxHeight=c),!1===u&&(s.maxWidth=l),s},onSelect:function(){this.frame.setState("cropper")},onCropped:function(e){var t=e.url,a=e.attachment_id,n=e.width,o=e.height;this.setImageFromURL(t,a,n,o)},onSkippedCrop:function(e){var t=e.get("url"),a=e.get("width"),n=e.get("height");this.setImageFromURL(t,e.id,a,n)},setImageFromURL:function(t,a,n,o){var i=!1;if(e(this.uploadBtn).hasClass("dokan-banner-drag"))(r=e(this.uploadBtn).closest(".dokan-banner")).find("input.dokan-file-field").val(a),r.find("img.dokan-banner-img").attr("src",t),e(this.uploadBtn).parent().siblings(".image-wrap",r).removeClass("dokan-hide"),e(this.uploadBtn).parent(".button-area").addClass("dokan-hide"),i=!0;else if(e(this.uploadBtn).hasClass("dokan-pro-gravatar-drag")){var r;(r=e(this.uploadBtn).closest(".dokan-gravatar")).find("input.dokan-file-field").val(a),r.find("img.dokan-gravatar-img").attr("src",t),i=!0,e(this.uploadBtn).parent().siblings(".gravatar-wrap",r).removeClass("dokan-hide"),e(this.uploadBtn).parent(".gravatar-button-area").addClass("dokan-hide")}!0===i&&(e(window).on("beforeunload",(function(){return dokan.dokan_banner_added_alert_msg})),e(document).ready((function(){e("#store-form").on("submit",(function(t){return e(window).off("beforeunload"),!0}))})))},removeImage:function(){n.HeaderTool.currentHeader.trigger("hide"),n.HeaderTool.CombinedList.trigger("control:removeImage")},imageUpload:function(e){e.preventDefault();var t=i;t.uploadBtn=this,t.frame=wp.media({multiple:!1,button:{text:dokan.selectAndCrop,close:!1},states:[new wp.media.controller.Library({title:dokan.chooseImage,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:dokan.store_banner_dimension.width,suggestedHeight:dokan.store_banner_dimension.height}),new wp.media.controller.Cropper({suggestedWidth:5e3,imgSelectOptions:t.calculateImageSelectOptions})]}),t.frame.on("select",t.onSelect,t),t.frame.on("cropped",t.onCropped,t),t.frame.on("skippedcrop",t.onSkippedCrop,t),t.frame.open()},calculateImageSelectOptionsProfile:function(e,t){var a,o,i,r,d,s,l=150,c=150,u=!!parseInt(dokan.store_banner_dimension["flex-width"],10),p=!!parseInt(dokan.store_banner_dimension["flex-height"],10);return d=e.get("width"),r=e.get("height"),this.headerImage=new n.HeaderTool.ImageModel,this.headerImage.set({themeWidth:l,themeHeight:c,themeFlexWidth:u,themeFlexHeight:p,imageWidth:d,imageHeight:r}),t.set("canSkipCrop",!this.headerImage.shouldBeCropped()),(o=d)/(i=r)>(a=l/c)?l=(c=i)*a:c=(l=o)/a,s={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:d,imageHeight:r,x1:0,y1:0,x2:l,y2:c},!1===p&&!1===u&&(s.aspectRatio=l+":"+c),!1===p&&(s.maxHeight=c),!1===u&&(s.maxWidth=l),s},simpleImageUpload:function(t){t.preventDefault();var a,n=e(this);a||(a=wp.media.frames.file_frame=wp.media({title:jQuery(this).data("uploader_title"),button:{text:jQuery(this).data("uploader_button_text")},multiple:!1})).on("select",(function(){var e=a.state().get("selection").first().toJSON(),t=n.closest(".dokan-gravatar");t.find("input.dokan-file-field").val(e.id),t.find("img.dokan-gravatar-img").attr("src",e.url),n.parent().siblings(".gravatar-wrap",t).removeClass("dokan-hide"),n.parent(".gravatar-button-area").addClass("dokan-hide")})),a.open()},gragatarImageUpload:function(e){e.preventDefault();var t=i;t.uploadBtn=this,t.frame=wp.media({multiple:!1,button:{text:dokan.selectAndCrop,close:!1},states:[new wp.media.controller.Library({title:dokan.chooseImage,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:150,suggestedHeight:150}),new wp.media.controller.Cropper({imgSelectOptions:t.calculateImageSelectOptionsProfile})]}),t.frame.on("select",t.onSelect,t),t.frame.on("cropped",t.onCropped,t),t.frame.on("skippedcrop",t.onSkippedCrop,t),t.frame.open()},submitSettings:function(t){"undefined"!=typeof tinyMCE&&tinyMCE.triggerSave();var a=e("form#"+t),n=a.serialize()+"&action=dokan_settings&form_id="+t;i.handleRequest(a,n,!1)},handleRequest:function(t,a,n){n?t.find(".ajax_prev.disconnect").append(' '):t.find(".ajax_prev.save").append(' '),e(".dokan-update-setting-top-button span.dokan-loading").remove(),e(".dokan-update-setting-top-button").append(' '),e.post(dokan.ajaxurl,a,(function(a){t.find("span.dokan-loading").remove(),e(".dokan-update-setting-top-button span.dokan-loading").remove(),e("html,body").animate({scrollTop:e(".dokan-dashboard-header").offset().top}),a.success?(e(".dokan-ajax-response").html(e("
    ",{class:"dokan-alert dokan-alert-success",html:"

    "+a.data.msg+"

    "})),e(".dokan-ajax-response").append(a.data.progress),dokan&&dokan.storeProgressBar&&dokan.storeProgressBar.init(),o=o.replaceAll("input","button"),n?t.find(o).addClass("dokan-hide"):t.find(o).removeClass("dokan-hide")):e(".dokan-ajax-response").html(e("
    ",{class:"dokan-alert dokan-alert-danger",html:"

    "+a.data+"

    "}))}))},validateForm:function(n){e("form#settings-form, form#profile-form, form#store-form, form#payment-form").validate({submitHandler:function(e){n.submitSettings(e.getAttribute("id"))},errorElement:"span",errorClass:"error",errorPlacement:t,success:a,ignore:".select2-search__field, :hidden, .mapboxgl-ctrl-geocoder--input"})},removeBanner:function(t){t.preventDefault();var a=e(this).closest(".image-wrap"),n=a.siblings(".button-area");a.find("input.dokan-file-field").val("0"),a.addClass("dokan-hide"),n.removeClass("dokan-hide")},removeGravatar:function(t){t.preventDefault();var a=e(this).closest(".gravatar-wrap"),n=a.siblings(".gravatar-button-area");a.find("input.dokan-file-field").val("0"),a.addClass("dokan-hide"),n.removeClass("dokan-hide")}},r={init:function(){this.withdrawValidate(this)},withdrawValidate:function(n){e("form.withdraw").validate({errorElement:"span",errorClass:"error",errorPlacement:t,success:a})}},d={init:function(){this.validate(this)},validate:function(a){e("form#dokan-form-contact-seller").validate({errorPlacement:t,errorElement:"span",success:function(e,t){e.removeClass("error"),e.remove()},submitHandler:async function(t,a){a.preventDefault(),e(t).block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}}),await dokan_execute_recaptcha("form#dokan-form-contact-seller .dokan_recaptcha_token","dokan_contact_seller_recaptcha");var n=e(t).serialize();e.post(dokan.ajaxurl,n,(function(a){e(t).unblock(),void 0!==a.data&&e(t).find(".ajax-response").html(a.data),e(t).find("input[type=text], input[type=email], textarea, input[name=dokan_recaptcha_token]").val("").removeClass("valid")}))}})}};e((function(){i.init(),r.init(),d.init(),e(".dokan-form-horizontal").on("change","input[type=checkbox]#lbl_setting_minimum_quantity",(function(){var t=e(".show_if_needs_sw_discount");e(this).is(":checked")?(t.find('input[type="number"]').val(""),t.slideDown("slow")):t.slideUp("slow")}))}))}(jQuery),function(e){var t=DokanValidateMsg;t.maxlength=e.validator.format(t.maxlength_msg),t.minlength=e.validator.format(t.minlength_msg),t.rangelength=e.validator.format(t.rangelength_msg),t.range=e.validator.format(t.range_msg),t.max=e.validator.format(t.max_msg),t.min=e.validator.format(t.min_msg),e.validator.messages=t,e(document).on("click","#dokan_store_tnc_enable",(function(t){e(this).is(":checked")?e("#dokan_tnc_text").show():e("#dokan_tnc_text").hide()})).ready((function(t){e("#dokan_store_tnc_enable").is(":checked")?e("#dokan_tnc_text").show():e("#dokan_tnc_text").hide()}))}(jQuery),function(e){var t="undefined"!=typeof wp&&wp.customize&&wp.customize.selectiveRefresh;function a(){dokan.store_banner_dimension.width;var t=dokan.store_banner_dimension.height/dokan.store_banner_dimension.width*e("#dokan-content").width();e(".dokan-profile-frame-wrapper .profile-info-img.dummy-image").css({height:t})}a(),e(window).on("resize",(function(e){a()})),t&&wp.customize.selectiveRefresh.bind("partial-content-rendered",(function(e){console.log("placement",e),"store_header_template"===e.partial.id&&a()})),e(":input.dokan-product-search").filter(":not(.enhanced)").each((function(){var t={allowClear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"3",escapeMarkup:function(e){return e},language:{errorLoading:function(){return dokan.i18n_searching},inputTooLong:function(e){var t=e.input.length-e.maximum;return 1===t?dokan.i18n_input_too_long_1:dokan.i18n_input_too_long_n.replace("%qty%",t)},inputTooShort:function(e){var t=e.minimum-e.input.length;return 1===t?dokan.i18n_input_too_short_1:dokan.i18n_input_too_short_n.replace("%qty%",t)},loadingMore:function(){return dokan.i18n_load_more},maximumSelected:function(e){return 1===e.maximum?dokan.i18n_selection_too_long_1:dokan.i18n_selection_too_long_n.replace("%qty%",e.maximum)},noResults:function(){return dokan.i18n_no_matches},searching:function(){return dokan.i18n_searching}},ajax:{url:dokan.ajaxurl,dataType:"json",delay:250,data:function(t){return{term:t.term,action:e(this).data("action")||"dokan_json_search_products_and_variations",security:dokan.search_products_nonce,exclude:e(this).data("exclude"),user_ids:e(this).data("user_ids"),include:e(this).data("include"),limit:e(this).data("limit")}},processResults:function(t){var a=[];return t&&e.each(t,(function(e,t){a.push({id:e,text:t})})),{results:a}},cache:!0}};if(e(this).select2(t).addClass("enhanced"),e(this).data("sortable")){var a=e(this),n=e(this).next(".select2-container").find("ul.select2-selection__rendered");n.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:!0,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){e(n.find(".select2-selection__choice").get().reverse()).each((function(){var t=e(this).data("data").id,n=a.find('option[value="'+t+'"]')[0];a.prepend(n)}))}})}})),selected_items=[],e("#cb-select-all").on("change",(function(t){var a=e(this),n=e(".cb-select-items");a.is(":checked")?n.each((function(t,a){e(a).prop("checked","checked")})):n.each((function(t,a){e(a).prop("checked",""),selected_items.pop()}))}))}(jQuery),function(e){function t(t,a){const n=e(t.target).closest("li.has-submenu");n.find(".navigation-submenu").each(((t,o)=>{if(a)n.removeClass("submenu-hovered"),e(".dokan-dashboard-wrap").css("height",""),e(o).css("bottom",0),e(o).removeAttr("style");else{n.addClass("submenu-hovered");let t=n[0].getBoundingClientRect(),a=o.getBoundingClientRect(),i=e(".dokan-dashboard-wrap"),r=i[0].getBoundingClientRect(),d=Math.min(r.bottom,r.height);if(d0)e(o).css("bottom",0),a=o.getBoundingClientRect(),a.top<0&&(e(o).css("bottom","unset"),e(o).css("top",0));else{e(o).css("bottom",n);let t=e(".dokan-dash-sidebar")[0].getBoundingClientRect(),i=e(".entry-header")[0].getBoundingClientRect();a=o.getBoundingClientRect(),a.bottom>t.bottom?n+=a.bottom-t.bottom:a.bottom-i.bottom'+dokan[n]+"
    "),a.parent().find(".wc_error_tip").css("left",o.left+a.width()-a.width()/2-e(".wc_error_tip").width()/2).css("top",o.top+a.height()).fadeIn("100"))})).on("wc_remove_error_tip",(function(t,a,n){a.parent().find(".wc_error_tip."+n).fadeOut("100",(function(){e(this).remove()}))})).on("click",(function(){e(".wc_error_tip").fadeOut("100",(function(){e(this).remove()}))})).on("blur",".wc_input_decimal[type=text], .wc_input_price[type=text], .wc_input_country_iso[type=text]",(function(){e(".wc_error_tip").fadeOut("100",(function(){e(this).remove()}))})).on("change",".wc_input_price[type=text], .wc_input_decimal[type=text], .wc-order-totals #refund_amount[type=text]",(function(){var t,a,n=dokan.decimal_point;(e(this).is(".wc_input_price")||e(this).is("#refund_amount"))&&(n=dokan.mon_decimal_point),t=new RegExp("[^-0-9%\\"+n+"]+","gi"),a=new RegExp("\\"+n+"+","gi");var o=e(this).val(),i=o.replace(t,"").replace(a,n);o!==i&&e(this).val(i)})).on("keyup",".wc_input_price[type=text], .wc_input_decimal[type=text], .wc_input_country_iso[type=text], .wc-order-totals #refund_amount[type=text]",(function(){var t,a,n,o=!1;e(this).is(".wc_input_price")||e(this).is("#refund_amount")?(o=!0,t=new RegExp("[^-0-9%\\"+dokan.mon_decimal_point+"]+","gi"),n=new RegExp("[^\\"+dokan.mon_decimal_point+"]","gi"),a="i18n_mon_decimal_error"):e(this).is(".wc_input_country_iso")?(t=new RegExp("([^A-Z])+|(.){3,}","im"),a="i18n_country_iso_error"):(o=!0,t=new RegExp("[^-0-9%\\"+dokan.decimal_point+"]+","gi"),n=new RegExp("[^\\"+dokan.decimal_point+"]","gi"),a="i18n_decimal_error");var i=e(this).val(),r=i.replace(t,"");o&&1=parseFloat(window.accounting.unformat(t.val(),dokan.mon_decimal_point))&&e(this).val("")})).on("keyup","#_sale_price.wc_input_price[type=text], .wc_input_price[name^=variable_sale_price], #_subscription_sale_price.wc_input_price[type=text]",(function(){var t,a=e(this),n=e("#product_type");t=-1!==a.attr("name").indexOf("variable")?a.parents(".variable_pricing").find(".wc_input_price[name^=variable_regular_price]"):n.length&&"subscription"===n.find(":selected").val()?e("#_subscription_price"):e("#_regular_price"),parseFloat(window.accounting.unformat(a.val(),dokan.mon_decimal_point))>=parseFloat(window.accounting.unformat(t.val(),dokan.mon_decimal_point))?e(document.body).triggerHandler("wc_add_error_tip",[e(this),"i18n_sale_less_than_regular_error"]):e(document.body).triggerHandler("wc_remove_error_tip",[e(this),"i18n_sale_less_than_regular_error"])})).on("init_tooltips",(function(){e(".tips, .help_tip, .woocommerce-help-tip").tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200}),e(".column-wc_actions .wc-action-button").tipTip({fadeIn:50,fadeOut:50,delay:200}),e(".parent-tips").each((function(){e(this).closest("a, th").attr("data-tip",e(this).data("tip")).tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200}).css("cursor","help")}))})),e("#dokan-navigation .dokan-dashboard-menu li.has-submenu:not(.active)").on("mouseover",(e=>{t(e)})).on("mouseout",(e=>{t(e,!0)}))}(jQuery),window.dokan_show_delete_prompt=async function(e,t){e.preventDefault();let a=await dokan_sweetalert(t,{action:"confirm",icon:"warning"});if(a.isConfirmed&&void 0!==e.target.href)window.location.href=e.target.href;else{if(!a.isConfirmed||void 0===e.target.dataset.url)return!1;window.location.href=e.target.dataset.url}},window.dokan_bulk_delete_prompt=async function(e,t,a,n){"delete"===jQuery(a).val()&&(e.preventDefault(),(await dokan_sweetalert(t,{action:"confirm",icon:"warning"})).isConfirmed&&jQuery(n).submit())},function(e){var t={query:{},form:null,cateItemStringArray:[],init:function(){e("#dokan-store-listing-filter-wrap .sort-by #stores_orderby").on("change",this.buildSortByQuery),e("#dokan-store-listing-filter-wrap .toggle-view span").on("click",this.toggleView),e("#dokan-store-listing-filter-wrap .dokan-store-list-filter-button, #dokan-store-listing-filter-wrap .dokan-icons, #dokan-store-listing-filter-form-wrap .apply-filter #cancel-filter-btn ").on("click",this.toggleForm),e("#dokan-store-listing-filter-form-wrap .store-search-input").on("change",this.buildSearchQuery),e("#dokan-store-listing-filter-form-wrap .apply-filter #apply-filter-btn").on("click",this.submitForm),this.maybeHideListView();const a=t;a.form=document.forms.dokan_store_lists_filter_form;const n=a.getLocal("dokan-layout");if(n){const t=e(".toggle-view span");a.setView(n,t)}const o=a.getParams();if(o.length){let t=!1;o.forEach((function(e){const n=Object.keys(e),i=Object.values(e);(!n.includes("stores_orderby")||o.length>1)&&(t=!0),a.setParams(n,i)})),t&&e("#dokan-store-listing-filter-form-wrap").slideToggle()}var i,r;e("#dokan-store-listing-filter-form-wrap").length&&e(".store-search-input").on("keypress",(function(t){if(13==t.which)return e("#dokan-store-listing-filter-form-wrap").submit(),!1})),e("body").on("click",(function(t){e(t.target).is("div#dokan-store-products-search-result li")||(e("#dokan-store-products-search-result").html(""),e("#dokan-store-products-search-result").removeClass("dokan-store-products-search-has-results"))})),e("body").on("keyup",".dokan-store-products-filter-search",(i=function(t){t.preventDefault();var a=e(this),n=a.val(),o=a.data("store_id");n&&(e(".dokan-store-products-filter-search").addClass("dokan-ajax-search-loader"),e("#dokan-store-products-search-result").removeClass("dokan-store-products-search-has-results"),e("#dokan-store-products-search-result").hide(),e("#dokan-store-products-search-result").html(""),jQuery.ajax({type:"post",dataType:"json",url:dokan.ajaxurl,data:{search_term:n,store_id:o,_wpnonce:dokan.store_product_search_nonce,action:"dokan_store_product_search_action"},success:function(t){e(".dokan-store-products-filter-search").removeClass("dokan-ajax-search-loader"),e("#dokan-store-products-search-result").show(),e("#dokan-store-products-search-result").addClass("dokan-store-products-search-has-results"),"success"==t.type?e("#dokan-store-products-search-result").html("
      "+t.data_list+"
    "):e("#dokan-store-products-search-result").html('
      '+t.data_list+"
    ")}}))},500,r=0,function(){var e=this,t=arguments;clearTimeout(r),r=setTimeout((function(){i.apply(e,t)}),500)}))},buildSortByQuery:function(e){const a=t;a.query.stores_orderby=e.target.value,a.submitForm(e)},toggleView:function(a){const n=t,o=e(a.target),i=o.parent().find("span"),r=o.data("view");n.setView(r,i),n.setLocal("dokan-layout",r)},setView:function(t,a){if(void 0===t||t.length<1||void 0===a||a.length<1)return;const n=e("#dokan-seller-listing-wrap");[...a].forEach((function(a){const o=e(a);t===o.data("view")?(o.addClass("active"),n.addClass(t)):(o.removeClass("active"),n.removeClass(o.data("view")))}))},toggleForm:function(t){t.preventDefault(),e("#dokan-store-listing-filter-form-wrap").slideToggle()},buildSearchQuery:function(e){e.target.value?t.query.dokan_seller_search=e.target.value:delete t.query.dokan_seller_search},submitForm:function(a){a.preventDefault(),t.query._store_filter_nonce&&delete t.query._store_filter_nonce,t.query._store_filter_nonce=e('input[name="_store_filter_nonce"]').first().val();const n=decodeURIComponent(e.param(t.query)),o="/page",i=window.location.pathname,r=i.includes(o)?i.substr(0,i.indexOf(o)):"";window.history.pushState(null,null,`${r}?${n}`),window.location.reload()},setLocal:function(e,t){window.localStorage.setItem(e,t)},getLocal:function(e){return window.localStorage.getItem(e)},setParams:function(a,n){const o=t,i=o.form?o.form.elements:"",r=document.forms.stores_sorting,d=r?r.elements:"";Object.values(d).forEach((function(t){t.name===a[0]&&e(t).val(n[0])})),Object.values(i).forEach((function(t){if(a.includes(t.name)&&("checkbox"===t.type?t.checked=!!["yes","true","1"].includes(n[0]):["text","search"].includes(t.type)&&(t.value=n[0])),a[0].includes("store_categories[")||a[0].includes("store_category[")){const t=n[0].split(" ").join("-"),a=e(`[data-slug=${t}]`);o.cateItemStringArray.includes(a.text().trim())||o.cateItemStringArray.push(a.text().trim()),a.addClass("dokan-btn-theme")}else if("rating"===a[0]){const t=n[0].split(" ").join("-");e(`[data-${a[0]}=${t}]`).addClass("active"),e(`[data-rating=${t}]`).parent().addClass("selected")}})),a.forEach((function(e,t){e.includes("[")||(o.query[e]=n[t])}))},getParams:function(){const e=new URLSearchParams(location.search),t=[];return e.forEach((function(e,a){t.push({[a]:e})})),t},maybeHideListView:function(){const a=t;window.matchMedia("(max-width: 767px)").matches&&"list-view"===a.getLocal("dokan-layout")&&a.setLocal("dokan-layout","grid-view"),e(window).on("resize",(function(){e(this).width()<767?(e("#dokan-seller-listing-wrap").removeClass("list-view"),e("#dokan-seller-listing-wrap").addClass("grid-view")):(e(".toggle-view.item span").last().removeClass("active"),e(".toggle-view.item span").first().addClass("active"))}))}};window.dokan&&(window.dokan.storeLists=t,window.dokan.storeLists.init())}(jQuery),(e=>{const t={init:()=>{e("#dokan-request-withdraw-button").on("click",(e=>{e.preventDefault(),t.openRequestWithdrawWindow()})),e(".dokan-withdraw-make-default-button").on("click",(e=>{e.preventDefault(),t.makeDefault(e)})),e("#dokan-withdraw-request-submit").on("click",(e=>{t.handleWithdrawRequest(e)})),e("#dokan-withdraw-display-schedule-popup").on("click",(e=>{t.opensScheduleWindow(e)})),e("#dokan-withdraw-schedule-request-submit").on("click",(e=>{t.handleScheduleChangeRequest(e)})),e("input[name='withdraw-schedule']").on("change",(e=>{t.handleScheduleChange(e)}))},openRequestWithdrawWindow:()=>{const a=wp.template("withdraw-request-popup"),n=e("#dokan-withdraw-request-popup").iziModal({width:690,overlayColor:"rgba(0, 0, 0, 0.8)",headerColor:dokan.modal_header_color});n.iziModal("setContent",a().trim()),n.iziModal("open"),t.init()},opensScheduleWindow:()=>{const a=wp.template("withdraw-schedule-popup"),n=e("#dokan-withdraw-schedule-popup").iziModal({width:690,overlayColor:"rgba(0, 0, 0, 0.8)",headerColor:dokan.modal_header_color});n.iziModal("setContent",a().trim()),n.iziModal("open"),t.init()},makeDefault:t=>{const a=e(t.target),n=e("#dokan-withdraw-payment-method-list");n.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,{action:"dokan_withdraw_handle_make_default_method",nonce:n.data("security"),method:a.data("method")},(e=>{e.success?(dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"success",showConfirmButton:!1,timer:2e3,timerProgressBar:!0}),n.unblock(),window.location.reload()):(dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"error",showConfirmButton:!1,timer:2e3,timerProgressBar:!0}),n.unblock())}))},handleWithdrawRequest:t=>{t.preventDefault();const a=e("input#withdraw-amount").val(),n=e("input#dokan_withdraw_nonce").val(),o=e("#withdraw-request-popup"),i=e("#withdraw-method").val();o.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,{action:"dokan_handle_withdraw_request",_handle_withdraw_request:n,amount:a,method:i},(async e=>{e.success?await dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"success",showConfirmButton:!1,timer:2e3,timerProgressBar:!0,didOpen:e=>{setTimeout((function(){o.unblock(),window.location.reload()}),2e3)}}):(dokan_sweetalert("",{icon:"error",html:e.data}),o.unblock())}))},handleScheduleChangeRequest:t=>{t.preventDefault();const a=e("input[name='withdraw-schedule']:checked").val(),n=e("#dokan-withdraw-schedule-request-submit").data("security"),o=e("#withdraw-schedule-popup"),i=e("#withdraw-remaining-amount").val(),r=e("#minimum-withdraw-amount").val(),d=e("#preferred-payment-method").val();o.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,{action:"dokan_handle_withdraw_schedule_change_request",nonce:n,schedule:a,reserve:i,minimum:r,method:d},(e=>{e.success?(dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"success",showConfirmButton:!1,timer:2e3,timerProgressBar:!0}),o.unblock(),window.location.reload()):(dokan_sweetalert("",{icon:"error",html:e.data}),o.unblock())}))},handleScheduleChange:t=>{const a=e(t.target).data("next-schedule");e("#dokan-withdraw-next-scheduled-date").html(a)}};e(document).ready((function(){t.init()}))})(jQuery)})(); \ No newline at end of file diff --git a/assets/js/vue-admin.js b/assets/js/vue-admin.js index 794724f998..9a7962366d 100644 --- a/assets/js/vue-admin.js +++ b/assets/js/vue-admin.js @@ -1,2 +1,2 @@ /*! For license information please see vue-admin.js.LICENSE.txt */ -(()=>{var e={302:e=>{e.exports=function(e,t,a){return ta?a:e:et?t:e}},850:e=>{function t(e,t,a){var i,s,n,o,r;function l(){var d=Date.now()-o;d=0?i=setTimeout(l,t-d):(i=null,a||(r=e.apply(n,s),n=s=null))}null==t&&(t=100);var d=function(){n=this,s=arguments,o=Date.now();var d=a&&!i;return i||(i=setTimeout(l,t)),d&&(r=e.apply(n,s),n=s=null),r};return d.clear=function(){i&&(clearTimeout(i),i=null)},d.flush=function(){i&&(r=e.apply(n,s),n=s=null,clearTimeout(i),i=null)},d}t.debounce=t,e.exports=t},882:(e,t,a)=>{var i="Expected a function",s=NaN,n="[object Symbol]",o=/^\s+|\s+$/g,r=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,d=/^0o[0-7]+$/i,c=parseInt,u="object"==typeof a.g&&a.g&&a.g.Object===Object&&a.g,p="object"==typeof self&&self&&self.Object===Object&&self,h=u||p||Function("return this")(),f=Object.prototype.toString,m=Math.max,v=Math.min,_=function(){return h.Date.now()};function g(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function k(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&f.call(e)==n}(e))return s;if(g(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=g(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(o,"");var a=l.test(e);return a||d.test(e)?c(e.slice(2),a?2:8):r.test(e)?s:+e}e.exports=function(e,t,a){var s=!0,n=!0;if("function"!=typeof e)throw new TypeError(i);return g(a)&&(s="leading"in a?!!a.leading:s,n="trailing"in a?!!a.trailing:n),function(e,t,a){var s,n,o,r,l,d,c=0,u=!1,p=!1,h=!0;if("function"!=typeof e)throw new TypeError(i);function f(t){var a=s,i=n;return s=n=void 0,c=t,r=e.apply(i,a)}function b(e){var a=e-d;return void 0===d||a>=t||a<0||p&&e-c>=o}function C(){var e=_();if(b(e))return y(e);l=setTimeout(C,function(e){var a=t-(e-d);return p?v(a,o-(e-c)):a}(e))}function y(e){return l=void 0,h&&s?f(e):(s=n=void 0,r)}function w(){var e=_(),a=b(e);if(s=arguments,n=this,d=e,a){if(void 0===l)return function(e){return c=e,l=setTimeout(C,t),u?f(e):r}(d);if(p)return l=setTimeout(C,t),f(d)}return void 0===l&&(l=setTimeout(C,t)),r}return t=k(t)||0,g(a)&&(u=!!a.leading,o=(p="maxWait"in a)?m(k(a.maxWait)||0,t):o,h="trailing"in a?!!a.trailing:h),w.cancel=function(){void 0!==l&&clearTimeout(l),c=0,s=d=n=l=void 0},w.flush=function(){return void 0===l?r:y(_())},w}(e,t,{leading:s,maxWait:t,trailing:n})}},490:function(e,t){var a,i;a=function e(){"use strict";var t="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==t?t:{},a=!t.document&&!!t.postMessage,i=t.IS_PAPA_WORKER||!1,s={},n=0,o={parse:function(a,i){var r=(i=i||{}).dynamicTyping||!1;if(C(r)&&(i.dynamicTypingFunction=r,r={}),i.dynamicTyping=r,i.transform=!!C(i.transform)&&i.transform,i.worker&&o.WORKERS_SUPPORTED){var l=function(){if(!o.WORKERS_SUPPORTED)return!1;var a,i,r=(a=t.URL||t.webkitURL||null,i=e.toString(),o.BLOB_URL||(o.BLOB_URL=a.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",i,")();"],{type:"text/javascript"})))),l=new t.Worker(r);return l.onmessage=v,l.id=n++,s[l.id]=l}();return l.userStep=i.step,l.userChunk=i.chunk,l.userComplete=i.complete,l.userError=i.error,i.step=C(i.step),i.chunk=C(i.chunk),i.complete=C(i.complete),i.error=C(i.error),delete i.worker,void l.postMessage({input:a,config:i,workerId:l.id})}var h=null;return o.NODE_STREAM_INPUT,"string"==typeof a?(a=function(e){return 65279===e.charCodeAt(0)?e.slice(1):e}(a),h=i.download?new d(i):new u(i)):!0===a.readable&&C(a.read)&&C(a.on)?h=new p(i):(t.File&&a instanceof File||a instanceof Object)&&(h=new c(i)),h.stream(a)},unparse:function(e,t){var a=!1,i=!0,s=",",n="\r\n",r='"',l=r+r,d=!1,c=null,u=!1;!function(){if("object"==typeof t){if("string"!=typeof t.delimiter||o.BAD_DELIMITERS.filter((function(e){return-1!==t.delimiter.indexOf(e)})).length||(s=t.delimiter),("boolean"==typeof t.quotes||"function"==typeof t.quotes||Array.isArray(t.quotes))&&(a=t.quotes),"boolean"!=typeof t.skipEmptyLines&&"string"!=typeof t.skipEmptyLines||(d=t.skipEmptyLines),"string"==typeof t.newline&&(n=t.newline),"string"==typeof t.quoteChar&&(r=t.quoteChar),"boolean"==typeof t.header&&(i=t.header),Array.isArray(t.columns)){if(0===t.columns.length)throw new Error("Option columns is empty");c=t.columns}void 0!==t.escapeChar&&(l=t.escapeChar+r),("boolean"==typeof t.escapeFormulae||t.escapeFormulae instanceof RegExp)&&(u=t.escapeFormulae instanceof RegExp?t.escapeFormulae:/^[=+\-@\t\r].*$/)}}();var p=new RegExp(f(r),"g");if("string"==typeof e&&(e=JSON.parse(e)),Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return h(null,e,d);if("object"==typeof e[0])return h(c||Object.keys(e[0]),e,d)}else if("object"==typeof e)return"string"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields||c),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:"object"==typeof e.data[0]?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||"object"==typeof e.data[0]||(e.data=[e.data])),h(e.fields||[],e.data||[],d);throw new Error("Unable to serialize unrecognized input");function h(e,t,a){var o="";"string"==typeof e&&(e=JSON.parse(e)),"string"==typeof t&&(t=JSON.parse(t));var r=Array.isArray(e)&&0=this._config.preview;if(i)t.postMessage({results:r,workerId:o.WORKER_ID,finished:d});else if(C(this._config.chunk)&&!a){if(this._config.chunk(r,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);r=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(r.data),this._completeResults.errors=this._completeResults.errors.concat(r.errors),this._completeResults.meta=r.meta),this._completed||!d||!C(this._config.complete)||r&&r.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),d||r&&r.meta.paused||this._nextChunk(),r}this._halted=!0},this._sendError=function(e){C(this._config.error)?this._config.error(e):i&&this._config.error&&t.postMessage({workerId:o.WORKER_ID,error:e,finished:!1})}}function d(e){var t;(e=e||{}).chunkSize||(e.chunkSize=o.RemoteChunkSize),l.call(this,e),this._nextChunk=a?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(t=new XMLHttpRequest,this._config.withCredentials&&(t.withCredentials=this._config.withCredentials),a||(t.onload=b(this._chunkLoaded,this),t.onerror=b(this._chunkError,this)),t.open(this._config.downloadRequestBody?"POST":"GET",this._input,!a),this._config.downloadRequestHeaders){var e=this._config.downloadRequestHeaders;for(var i in e)t.setRequestHeader(i,e[i])}if(this._config.chunkSize){var s=this._start+this._config.chunkSize-1;t.setRequestHeader("Range","bytes="+this._start+"-"+s)}try{t.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}a&&0===t.status&&this._chunkError()}},this._chunkLoaded=function(){4===t.readyState&&(t.status<200||400<=t.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:t.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(e){var t=e.getResponseHeader("Content-Range");return null===t?-1:parseInt(t.substring(t.lastIndexOf("/")+1))}(t),this.parseChunk(t.responseText)))},this._chunkError=function(e){var a=t.statusText||e;this._sendError(new Error(a))}}function c(e){var t,a;(e=e||{}).chunkSize||(e.chunkSize=o.LocalChunkSize),l.call(this,e);var i="undefined"!=typeof FileReader;this.stream=function(e){this._input=e,a=e.slice||e.webkitSlice||e.mozSlice,i?((t=new FileReader).onload=b(this._chunkLoaded,this),t.onerror=b(this._chunkError,this)):t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(t.error)}}function u(e){var t;l.call(this,e=e||{}),this.stream=function(e){return t=e,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var e,a=this._config.chunkSize;return a?(e=t.substring(0,a),t=t.substring(a)):(e=t,t=""),this._finished=!t,this.parseChunk(e)}}}function p(e){l.call(this,e=e||{});var t=[],a=!0,i=!1;this.pause=function(){l.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){l.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){i&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):a=!0},this._streamData=b((function(e){try{t.push("string"==typeof e?e:e.toString(this._config.encoding)),a&&(a=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}}),this),this._streamError=b((function(e){this._streamCleanUp(),this._sendError(e)}),this),this._streamEnd=b((function(){this._streamCleanUp(),i=!0,this._streamData("")}),this),this._streamCleanUp=b((function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)}),this)}function h(e){var t,a,i,s=Math.pow(2,53),n=-s,r=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,l=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,d=this,c=0,u=0,p=!1,h=!1,v=[],_={data:[],errors:[],meta:{}};if(C(e.step)){var g=e.step;e.step=function(t){if(_=t,w())y();else{if(y(),0===_.data.length)return;c+=t.data.length,e.preview&&c>e.preview?a.abort():(_.data=_.data[0],g(_,d))}}}function b(t){return"greedy"===e.skipEmptyLines?""===t.join("").trim():1===t.length&&0===t[0].length}function y(){return _&&i&&(S("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+o.DefaultDelimiter+"'"),i=!1),e.skipEmptyLines&&(_.data=_.data.filter((function(e){return!b(e)}))),w()&&function(){if(_)if(Array.isArray(_.data[0])){for(var t=0;w()&&t<_.data.length;t++)_.data[t].forEach(a);_.data.splice(0,1)}else _.data.forEach(a);function a(t,a){C(e.transformHeader)&&(t=e.transformHeader(t,a)),v.push(t)}}(),function(){if(!_||!e.header&&!e.dynamicTyping&&!e.transform)return _;function t(t,a){var i,s=e.header?{}:[];for(i=0;i=v.length?"__parsed_extra":v[i]),e.transform&&(o=e.transform(o,n)),o=x(n,o),"__parsed_extra"===n?(s[n]=s[n]||[],s[n].push(o)):s[n]=o}return e.header&&(i>v.length?S("FieldMismatch","TooManyFields","Too many fields: expected "+v.length+" fields but parsed "+i,u+a):i=i.length/2?"\r\n":"\r"}(s,l)),i=!1,e.delimiter)C(e.delimiter)&&(e.delimiter=e.delimiter(s),_.meta.delimiter=e.delimiter);else{var d=function(t,a,i,s,n){var r,l,d,c;n=n||[",","\t","|",";",o.RECORD_SEP,o.UNIT_SEP];for(var u=0;u=r)return z(!0)}else for(U=c,c++;;){if(-1===(U=o.indexOf(t,U+1)))return h||y.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:b.length,index:c}),q();if(U===m-1)return q(o.substring(c,U).replace(F,t));if(t!==d||o[U+1]!==d){if(t===d||0===U||o[U-1]!==d){-1!==O&&O=r)return z(!0);break}y.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:b.length,index:c}),U++}}else U++}return q();function B(e){b.push(e),x=c}function j(e){var t=0;if(-1!==e){var a=o.substring(U+1,e);a&&""===a.trim()&&(t=a.length)}return t}function q(e){return h||(void 0===e&&(e=o.substring(c)),w.push(e),c=m,B(w),k&&W()),z()}function Z(e){c=e,B(w),w=[],E=o.indexOf(i,c)}function z(e){return{data:b,errors:y,meta:{delimiter:a,linebreak:i,aborted:u,truncated:!!e,cursor:x+(p||0)}}}function W(){n(z()),b=[],y=[]}},this.abort=function(){u=!0},this.getCharIndex=function(){return c}}function v(e){var t=e.data,a=s[t.workerId],i=!1;if(t.error)a.userError(t.error,t.file);else if(t.results&&t.results.data){var n={abort:function(){i=!0,_(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:g,resume:g};if(C(a.userStep)){for(var o=0;o{var i,s,n;!function(o){"use strict";s=[a(311)],i=function(e){var t,a=window.Slick||{};(t=0,a=function(a,i){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:e(a),appendDots:e(a),arrows:!0,asNavFor:null,prevArrow:'',nextArrow:'',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(t,a){return e(' "),u.children(".save").on("click",(function(){var t=n.children("input").val();t!=e("#editable-post-name-full").text()?e.post(ajaxurl,{action:"sample-permalink",post_id:e("#dokan-edit-product-id").val(),new_slug:t,new_title:e("#post_title").val(),samplepermalinknonce:e("#samplepermalinknonce").val()},(function(a){var n=e("#edit-slug-box");n.html(a),n.hasClass("hidden")&&n.fadeIn("fast",(function(){n.removeClass("hidden")})),u.html(p),s.html(l),r.val(t),e(".edit-slug").focus(),e("#editable-post-name-full-dokan").val(e("#editable-post-name-full").html())})):u.children(".cancel").trigger("click")})),u.children(".cancel").on("click",(function(){e("#view-post-btn").show(),n.html(o),u.html(p),s.html(l),r.val(d),e(".edit-slug").focus()})),t=0;tm.length/4?"":m,n.html('').children("input").on("keydown",(function(e){var t=e.which;13===t&&(e.preventDefault(),u.children(".save").trigger("click")),27===t&&u.children(".cancel").trigger("click")})).on("keyup",(function(){r.val(this.value)})).focus()}()})),e("#dokan-edit-product-id").val()&&e("#post_title").val()&&e("#samplepermalinknonce").val()&&e.post(ajaxurl,{action:"sample-permalink",post_id:e("#dokan-edit-product-id").val(),new_slug:e("#edited-post-name-dokan").val(),new_title:e("#post_title").val(),samplepermalinknonce:e("#samplepermalinknonce").val()},(function(t){e("#edit-slug-box").html(t)})),e(window).on("load",(function(){e("input#_virtual:checked").length&&t()}))}))}(jQuery),jQuery((function(e){function t(e,t,a){jQuery('
    '+a+"
    ").css({top:t-16,left:e+20}).appendTo("body").fadeIn(200)}wp.customize,e(".datepicker").datepicker({dateFormat:"yy-mm-dd"}),e(".dokan-table tbody").on("click",".toggle-row",(function(){e(this).closest("tr").toggleClass("is-expanded")})),e(".dokan-start-date").datepicker({defaultDate:"",dateFormat:"yy-mm-dd",numberOfMonths:1,onSelect:function(t){let a=new Date(t);a.setDate(a.getDate()+1),e(".dokan-end-date").datepicker("option",{minDate:a})}}),e(".dokan-end-date").datepicker({defaultDate:"",dateFormat:"yy-mm-dd",numberOfMonths:1,onSelect:function(t){let a=new Date(t);a.setDate(a.getDate()-1),e("dokan-start-date").datepicker("option",{maxDate:a})}}),e(".tips").tooltip();var a=null,n=null;jQuery(".chart-placeholder").on("plothover",(function(e,o,i){if(i){if((a!=i.dataIndex||n!=i.seriesIndex)&&(a=i.dataIndex,n=i.seriesIndex,jQuery(".chart-tooltip").remove(),i.series.points.show||i.series.enable_tooltip)){var r=i.series.data[i.dataIndex][1];tooltip_content="",i.series.prepend_label&&(tooltip_content=tooltip_content+i.series.label+": "),i.series.prepend_tooltip&&(tooltip_content+=i.series.prepend_tooltip),tooltip_content+=r,i.series.append_tooltip&&(tooltip_content+=i.series.append_tooltip),i.series.pie.show?t(o.pageX,o.pageY,tooltip_content):t(i.pageX,i.pageY,tooltip_content)}}else jQuery(".chart-tooltip").remove(),a=null}))})),function(e){e.validator.setDefaults({ignore:":hidden"});var t=function(t,a){e(a).closest(".dokan-form-group").addClass("has-error").append(t)},a=function(t,a){e(a).closest(".dokan-form-group").removeClass("has-error"),e(t).remove()},n=wp.customize,o='input[name="settings[bank][disconnect]"], input[name="settings[paypal][disconnect]"], input[name="settings[skrill][disconnect]"], input[name="settings[dokan_custom][disconnect]"]',i={init:function(){return e("a.dokan-banner-drag").on("click",this.imageUpload),e("a.dokan-remove-banner-image").on("click",this.removeBanner),e("a.dokan-pro-gravatar-drag").on("click",this.gragatarImageUpload),e("a.dokan-gravatar-drag").on("click",this.simpleImageUpload),e("a.dokan-remove-gravatar-image").on("click",this.removeGravatar),e(".dokan-update-setting-top-button").on("click",(function(){e("input[name='dokan_update_store_settings']").trigger("click")})),this.validateForm(this),e(".dokan_payment_disconnect_btn").on("click",(function(){var t=e(this).closest("form"),a=e("form#"+t.attr("id"));e(":input",t).not(":button, :submit, :reset, :hidden, :checkbox").val("").prop("selected",!1);var n=t.serializeArray().reduce((function(e,t){return e[t.name]=t.value,e}),{});n[e(this).attr("name")]="",n.form_id=t.attr("id"),n.action="dokan_settings",i.handleRequest(a,n,!0)})),!1},calculateImageSelectOptions:function(e,t){var a,o,i,r,d,s,l=parseInt(dokan.store_banner_dimension.width,10),c=parseInt(dokan.store_banner_dimension.height,10),u=!!parseInt(dokan.store_banner_dimension["flex-width"],10),p=!!parseInt(dokan.store_banner_dimension["flex-height"],10);return d=e.get("width"),r=e.get("height"),this.headerImage=new n.HeaderTool.ImageModel,this.headerImage.set({themeWidth:l,themeHeight:c,themeFlexWidth:u,themeFlexHeight:p,imageWidth:d,imageHeight:r}),t.set("canSkipCrop",!this.headerImage.shouldBeCropped()),(o=d)/(i=r)>(a=l/c)?l=(c=i)*a:c=(l=o)/a,s={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:d,imageHeight:r,x1:0,y1:0,x2:l,y2:c},!1===p&&!1===u&&(s.aspectRatio=l+":"+c),!1===p&&(s.maxHeight=c),!1===u&&(s.maxWidth=l),s},onSelect:function(){this.frame.setState("cropper")},onCropped:function(e){var t=e.url,a=e.attachment_id,n=e.width,o=e.height;this.setImageFromURL(t,a,n,o)},onSkippedCrop:function(e){var t=e.get("url"),a=e.get("width"),n=e.get("height");this.setImageFromURL(t,e.id,a,n)},setImageFromURL:function(t,a,n,o){var i=!1;if(e(this.uploadBtn).hasClass("dokan-banner-drag"))(r=e(this.uploadBtn).closest(".dokan-banner")).find("input.dokan-file-field").val(a),r.find("img.dokan-banner-img").attr("src",t),e(this.uploadBtn).parent().siblings(".image-wrap",r).removeClass("dokan-hide"),e(this.uploadBtn).parent(".button-area").addClass("dokan-hide"),i=!0;else if(e(this.uploadBtn).hasClass("dokan-pro-gravatar-drag")){var r;(r=e(this.uploadBtn).closest(".dokan-gravatar")).find("input.dokan-file-field").val(a),r.find("img.dokan-gravatar-img").attr("src",t),i=!0,e(this.uploadBtn).parent().siblings(".gravatar-wrap",r).removeClass("dokan-hide"),e(this.uploadBtn).parent(".gravatar-button-area").addClass("dokan-hide")}!0===i&&(e(window).on("beforeunload",(function(){return dokan.dokan_banner_added_alert_msg})),e(document).ready((function(){e("#store-form").on("submit",(function(t){return e(window).off("beforeunload"),!0}))})))},removeImage:function(){n.HeaderTool.currentHeader.trigger("hide"),n.HeaderTool.CombinedList.trigger("control:removeImage")},imageUpload:function(e){e.preventDefault();var t=i;t.uploadBtn=this,t.frame=wp.media({multiple:!1,button:{text:dokan.selectAndCrop,close:!1},states:[new wp.media.controller.Library({title:dokan.chooseImage,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:dokan.store_banner_dimension.width,suggestedHeight:dokan.store_banner_dimension.height}),new wp.media.controller.Cropper({suggestedWidth:5e3,imgSelectOptions:t.calculateImageSelectOptions})]}),t.frame.on("select",t.onSelect,t),t.frame.on("cropped",t.onCropped,t),t.frame.on("skippedcrop",t.onSkippedCrop,t),t.frame.open()},calculateImageSelectOptionsProfile:function(e,t){var a,o,i,r,d,s,l=150,c=150,u=!!parseInt(dokan.store_banner_dimension["flex-width"],10),p=!!parseInt(dokan.store_banner_dimension["flex-height"],10);return d=e.get("width"),r=e.get("height"),this.headerImage=new n.HeaderTool.ImageModel,this.headerImage.set({themeWidth:l,themeHeight:c,themeFlexWidth:u,themeFlexHeight:p,imageWidth:d,imageHeight:r}),t.set("canSkipCrop",!this.headerImage.shouldBeCropped()),(o=d)/(i=r)>(a=l/c)?l=(c=i)*a:c=(l=o)/a,s={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:d,imageHeight:r,x1:0,y1:0,x2:l,y2:c},!1===p&&!1===u&&(s.aspectRatio=l+":"+c),!1===p&&(s.maxHeight=c),!1===u&&(s.maxWidth=l),s},simpleImageUpload:function(t){t.preventDefault();var a,n=e(this);a||(a=wp.media.frames.file_frame=wp.media({title:jQuery(this).data("uploader_title"),button:{text:jQuery(this).data("uploader_button_text")},multiple:!1})).on("select",(function(){var e=a.state().get("selection").first().toJSON(),t=n.closest(".dokan-gravatar");t.find("input.dokan-file-field").val(e.id),t.find("img.dokan-gravatar-img").attr("src",e.url),n.parent().siblings(".gravatar-wrap",t).removeClass("dokan-hide"),n.parent(".gravatar-button-area").addClass("dokan-hide")})),a.open()},gragatarImageUpload:function(e){e.preventDefault();var t=i;t.uploadBtn=this,t.frame=wp.media({multiple:!1,button:{text:dokan.selectAndCrop,close:!1},states:[new wp.media.controller.Library({title:dokan.chooseImage,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:150,suggestedHeight:150}),new wp.media.controller.Cropper({imgSelectOptions:t.calculateImageSelectOptionsProfile})]}),t.frame.on("select",t.onSelect,t),t.frame.on("cropped",t.onCropped,t),t.frame.on("skippedcrop",t.onSkippedCrop,t),t.frame.open()},submitSettings:function(t){"undefined"!=typeof tinyMCE&&tinyMCE.triggerSave();var a=e("form#"+t),n=a.serialize()+"&action=dokan_settings&form_id="+t;i.handleRequest(a,n,!1)},handleRequest:function(t,a,n){n?t.find(".ajax_prev.disconnect").append(' '):t.find(".ajax_prev.save").append(' '),e(".dokan-update-setting-top-button span.dokan-loading").remove(),e(".dokan-update-setting-top-button").append(' '),e.post(dokan.ajaxurl,a,(function(a){t.find("span.dokan-loading").remove(),e(".dokan-update-setting-top-button span.dokan-loading").remove(),e("html,body").animate({scrollTop:e(".dokan-dashboard-header").offset().top}),a.success?(e(".dokan-ajax-response").html(e("
    ",{class:"dokan-alert dokan-alert-success",html:"

    "+a.data.msg+"

    "})),e(".dokan-ajax-response").append(a.data.progress),dokan&&dokan.storeProgressBar&&dokan.storeProgressBar.init(),o=o.replaceAll("input","button"),n?t.find(o).addClass("dokan-hide"):t.find(o).removeClass("dokan-hide")):e(".dokan-ajax-response").html(e("
    ",{class:"dokan-alert dokan-alert-danger",html:"

    "+a.data+"

    "}))}))},validateForm:function(n){e("form#settings-form, form#profile-form, form#store-form, form#payment-form").validate({submitHandler:function(e){n.submitSettings(e.getAttribute("id"))},errorElement:"span",errorClass:"error",errorPlacement:t,success:a,ignore:".select2-search__field, :hidden, .mapboxgl-ctrl-geocoder--input"})},removeBanner:function(t){t.preventDefault();var a=e(this).closest(".image-wrap"),n=a.siblings(".button-area");a.find("input.dokan-file-field").val("0"),a.addClass("dokan-hide"),n.removeClass("dokan-hide")},removeGravatar:function(t){t.preventDefault();var a=e(this).closest(".gravatar-wrap"),n=a.siblings(".gravatar-button-area");a.find("input.dokan-file-field").val("0"),a.addClass("dokan-hide"),n.removeClass("dokan-hide")}},r={init:function(){this.withdrawValidate(this)},withdrawValidate:function(n){e("form.withdraw").validate({errorElement:"span",errorClass:"error",errorPlacement:t,success:a})}},d={init:function(){this.validate(this)},validate:function(a){e("form#dokan-form-contact-seller").validate({errorPlacement:t,errorElement:"span",success:function(e,t){e.removeClass("error"),e.remove()},submitHandler:async function(t,a){a.preventDefault(),e(t).block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}}),await dokan_execute_recaptcha("form#dokan-form-contact-seller .dokan_recaptcha_token","dokan_contact_seller_recaptcha");var n=e(t).serialize();e.post(dokan.ajaxurl,n,(function(a){e(t).unblock(),void 0!==a.data&&e(t).find(".ajax-response").html(a.data),e(t).find("input[type=text], input[type=email], textarea, input[name=dokan_recaptcha_token]").val("").removeClass("valid")}))}})}};e((function(){i.init(),r.init(),d.init(),e(".dokan-form-horizontal").on("change","input[type=checkbox]#lbl_setting_minimum_quantity",(function(){var t=e(".show_if_needs_sw_discount");e(this).is(":checked")?(t.find('input[type="number"]').val(""),t.slideDown("slow")):t.slideUp("slow")}))}))}(jQuery),function(e){var t=DokanValidateMsg;t.maxlength=e.validator.format(t.maxlength_msg),t.minlength=e.validator.format(t.minlength_msg),t.rangelength=e.validator.format(t.rangelength_msg),t.range=e.validator.format(t.range_msg),t.max=e.validator.format(t.max_msg),t.min=e.validator.format(t.min_msg),e.validator.messages=t,e(document).on("click","#dokan_store_tnc_enable",(function(t){e(this).is(":checked")?e("#dokan_tnc_text").show():e("#dokan_tnc_text").hide()})).ready((function(t){e("#dokan_store_tnc_enable").is(":checked")?e("#dokan_tnc_text").show():e("#dokan_tnc_text").hide()}))}(jQuery),function(e){var t="undefined"!=typeof wp&&wp.customize&&wp.customize.selectiveRefresh;function a(){dokan.store_banner_dimension.width;var t=dokan.store_banner_dimension.height/dokan.store_banner_dimension.width*e("#dokan-content").width();e(".dokan-profile-frame-wrapper .profile-info-img.dummy-image").css({height:t})}a(),e(window).on("resize",(function(e){a()})),t&&wp.customize.selectiveRefresh.bind("partial-content-rendered",(function(e){console.log("placement",e),"store_header_template"===e.partial.id&&a()})),e(":input.dokan-product-search").filter(":not(.enhanced)").each((function(){var t={allowClear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"3",escapeMarkup:function(e){return e},language:{errorLoading:function(){return dokan.i18n_searching},inputTooLong:function(e){var t=e.input.length-e.maximum;return 1===t?dokan.i18n_input_too_long_1:dokan.i18n_input_too_long_n.replace("%qty%",t)},inputTooShort:function(e){var t=e.minimum-e.input.length;return 1===t?dokan.i18n_input_too_short_1:dokan.i18n_input_too_short_n.replace("%qty%",t)},loadingMore:function(){return dokan.i18n_load_more},maximumSelected:function(e){return 1===e.maximum?dokan.i18n_selection_too_long_1:dokan.i18n_selection_too_long_n.replace("%qty%",e.maximum)},noResults:function(){return dokan.i18n_no_matches},searching:function(){return dokan.i18n_searching}},ajax:{url:dokan.ajaxurl,dataType:"json",delay:250,data:function(t){return{term:t.term,action:e(this).data("action")||"dokan_json_search_products_and_variations",security:dokan.search_products_nonce,exclude:e(this).data("exclude"),user_ids:e(this).data("user_ids"),include:e(this).data("include"),limit:e(this).data("limit")}},processResults:function(t){var a=[];return t&&e.each(t,(function(e,t){a.push({id:e,text:t})})),{results:a}},cache:!0}};if(e(this).select2(t).addClass("enhanced"),e(this).data("sortable")){var a=e(this),n=e(this).next(".select2-container").find("ul.select2-selection__rendered");n.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:!0,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){e(n.find(".select2-selection__choice").get().reverse()).each((function(){var t=e(this).data("data").id,n=a.find('option[value="'+t+'"]')[0];a.prepend(n)}))}})}})),selected_items=[],e("#cb-select-all").on("change",(function(t){var a=e(this),n=e(".cb-select-items");a.is(":checked")?n.each((function(t,a){e(a).prop("checked","checked")})):n.each((function(t,a){e(a).prop("checked",""),selected_items.pop()}))}))}(jQuery),function(e){function t(t,a){const n=e(t.target).closest("li.has-submenu");n.find(".navigation-submenu").each(((t,o)=>{if(a)n.removeClass("submenu-hovered"),e(".dokan-dashboard-wrap").css("height",""),e(o).css("bottom",0),e(o).removeAttr("style");else{n.addClass("submenu-hovered");let t=n[0].getBoundingClientRect(),a=o.getBoundingClientRect(),i=e(".dokan-dashboard-wrap"),r=i[0].getBoundingClientRect(),d=Math.min(r.bottom,r.height);if(d0)e(o).css("bottom",0),a=o.getBoundingClientRect(),a.top<0&&(e(o).css("bottom","unset"),e(o).css("top",0));else{e(o).css("bottom",n);let t=e(".dokan-dash-sidebar")[0].getBoundingClientRect(),i=e(".entry-header")[0].getBoundingClientRect();a=o.getBoundingClientRect(),a.bottom>t.bottom?n+=a.bottom-t.bottom:a.bottom-i.bottom'+dokan[n]+"
    "),a.parent().find(".wc_error_tip").css("left",o.left+a.width()-a.width()/2-e(".wc_error_tip").width()/2).css("top",o.top+a.height()).fadeIn("100"))})).on("wc_remove_error_tip",(function(t,a,n){a.parent().find(".wc_error_tip."+n).fadeOut("100",(function(){e(this).remove()}))})).on("click",(function(){e(".wc_error_tip").fadeOut("100",(function(){e(this).remove()}))})).on("blur",".wc_input_decimal[type=text], .wc_input_price[type=text], .wc_input_country_iso[type=text]",(function(){e(".wc_error_tip").fadeOut("100",(function(){e(this).remove()}))})).on("change",".wc_input_price[type=text], .wc_input_decimal[type=text], .wc-order-totals #refund_amount[type=text]",(function(){var t,a,n=dokan.decimal_point;(e(this).is(".wc_input_price")||e(this).is("#refund_amount"))&&(n=dokan.mon_decimal_point),t=new RegExp("[^-0-9%\\"+n+"]+","gi"),a=new RegExp("\\"+n+"+","gi");var o=e(this).val(),i=o.replace(t,"").replace(a,n);o!==i&&e(this).val(i)})).on("keyup",".wc_input_price[type=text], .wc_input_decimal[type=text], .wc_input_country_iso[type=text], .wc-order-totals #refund_amount[type=text]",(function(){var t,a,n,o=!1;e(this).is(".wc_input_price")||e(this).is("#refund_amount")?(o=!0,t=new RegExp("[^-0-9%\\"+dokan.mon_decimal_point+"]+","gi"),n=new RegExp("[^\\"+dokan.mon_decimal_point+"]","gi"),a="i18n_mon_decimal_error"):e(this).is(".wc_input_country_iso")?(t=new RegExp("([^A-Z])+|(.){3,}","im"),a="i18n_country_iso_error"):(o=!0,t=new RegExp("[^-0-9%\\"+dokan.decimal_point+"]+","gi"),n=new RegExp("[^\\"+dokan.decimal_point+"]","gi"),a="i18n_decimal_error");var i=e(this).val(),r=i.replace(t,"");o&&1=parseFloat(window.accounting.unformat(t.val(),dokan.mon_decimal_point))&&e(this).val("")})).on("keyup","#_sale_price.wc_input_price[type=text], .wc_input_price[name^=variable_sale_price], #_subscription_sale_price.wc_input_price[type=text]",(function(){var t,a=e(this),n=e("#product_type");t=-1!==a.attr("name").indexOf("variable")?a.parents(".variable_pricing").find(".wc_input_price[name^=variable_regular_price]"):n.length&&"subscription"===n.find(":selected").val()?e("#_subscription_price"):e("#_regular_price"),parseFloat(window.accounting.unformat(a.val(),dokan.mon_decimal_point))>=parseFloat(window.accounting.unformat(t.val(),dokan.mon_decimal_point))?e(document.body).triggerHandler("wc_add_error_tip",[e(this),"i18n_sale_less_than_regular_error"]):e(document.body).triggerHandler("wc_remove_error_tip",[e(this),"i18n_sale_less_than_regular_error"])})).on("init_tooltips",(function(){e(".tips, .help_tip, .woocommerce-help-tip").tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200}),e(".column-wc_actions .wc-action-button").tipTip({fadeIn:50,fadeOut:50,delay:200}),e(".parent-tips").each((function(){e(this).closest("a, th").attr("data-tip",e(this).data("tip")).tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200}).css("cursor","help")}))})),e("#dokan-navigation .dokan-dashboard-menu li.has-submenu:not(.active)").on("mouseover",(e=>{t(e)})).on("mouseout",(e=>{t(e,!0)}))}(jQuery),window.dokan_show_delete_prompt=async function(e,t){e.preventDefault();let a=await dokan_sweetalert(t,{action:"confirm",icon:"warning"});if(a.isConfirmed&&void 0!==e.target.href)window.location.href=e.target.href;else{if(!a.isConfirmed||void 0===e.target.dataset.url)return!1;window.location.href=e.target.dataset.url}},window.dokan_bulk_delete_prompt=async function(e,t,a,n){"delete"===jQuery(a).val()&&(e.preventDefault(),(await dokan_sweetalert(t,{action:"confirm",icon:"warning"})).isConfirmed&&jQuery(n).submit())},function(e){var t={query:{},form:null,cateItemStringArray:[],init:function(){e("#dokan-store-listing-filter-wrap .sort-by #stores_orderby").on("change",this.buildSortByQuery),e("#dokan-store-listing-filter-wrap .toggle-view span").on("click",this.toggleView),e("#dokan-store-listing-filter-wrap .dokan-store-list-filter-button, #dokan-store-listing-filter-wrap .dokan-icons, #dokan-store-listing-filter-form-wrap .apply-filter #cancel-filter-btn ").on("click",this.toggleForm),e("#dokan-store-listing-filter-form-wrap .store-search-input").on("change",this.buildSearchQuery),e("#dokan-store-listing-filter-form-wrap .apply-filter #apply-filter-btn").on("click",this.submitForm),this.maybeHideListView();const a=t;a.form=document.forms.dokan_store_lists_filter_form;const n=a.getLocal("dokan-layout");if(n){const t=e(".toggle-view span");a.setView(n,t)}const o=a.getParams();if(o.length){let t=!1;o.forEach((function(e){const n=Object.keys(e),i=Object.values(e);(!n.includes("stores_orderby")||o.length>1)&&(t=!0),a.setParams(n,i)})),t&&e("#dokan-store-listing-filter-form-wrap").slideToggle()}var i,r;e("#dokan-store-listing-filter-form-wrap").length&&e(".store-search-input").on("keypress",(function(t){if(13==t.which)return e("#dokan-store-listing-filter-form-wrap").submit(),!1})),e("body").on("click",(function(t){e(t.target).is("div#dokan-store-products-search-result li")||(e("#dokan-store-products-search-result").html(""),e("#dokan-store-products-search-result").removeClass("dokan-store-products-search-has-results"))})),e("body").on("keyup",".dokan-store-products-filter-search",(i=function(t){t.preventDefault();var a=e(this),n=a.val(),o=a.data("store_id");n&&(e(".dokan-store-products-filter-search").addClass("dokan-ajax-search-loader"),e("#dokan-store-products-search-result").removeClass("dokan-store-products-search-has-results"),e("#dokan-store-products-search-result").hide(),e("#dokan-store-products-search-result").html(""),jQuery.ajax({type:"post",dataType:"json",url:dokan.ajaxurl,data:{search_term:n,store_id:o,_wpnonce:dokan.store_product_search_nonce,action:"dokan_store_product_search_action"},success:function(t){e(".dokan-store-products-filter-search").removeClass("dokan-ajax-search-loader"),e("#dokan-store-products-search-result").show(),e("#dokan-store-products-search-result").addClass("dokan-store-products-search-has-results"),"success"==t.type?e("#dokan-store-products-search-result").html("
      "+t.data_list+"
    "):e("#dokan-store-products-search-result").html('
      '+t.data_list+"
    ")}}))},500,r=0,function(){var e=this,t=arguments;clearTimeout(r),r=setTimeout((function(){i.apply(e,t)}),500)}))},buildSortByQuery:function(e){const a=t;a.query.stores_orderby=e.target.value,a.submitForm(e)},toggleView:function(a){const n=t,o=e(a.target),i=o.parent().find("span"),r=o.data("view");n.setView(r,i),n.setLocal("dokan-layout",r)},setView:function(t,a){if(void 0===t||t.length<1||void 0===a||a.length<1)return;const n=e("#dokan-seller-listing-wrap");[...a].forEach((function(a){const o=e(a);t===o.data("view")?(o.addClass("active"),n.addClass(t)):(o.removeClass("active"),n.removeClass(o.data("view")))}))},toggleForm:function(t){t.preventDefault(),e("#dokan-store-listing-filter-form-wrap").slideToggle()},buildSearchQuery:function(e){e.target.value?t.query.dokan_seller_search=e.target.value:delete t.query.dokan_seller_search},submitForm:function(a){a.preventDefault(),t.query._store_filter_nonce&&delete t.query._store_filter_nonce,t.query._store_filter_nonce=e('input[name="_store_filter_nonce"]').first().val();const n=decodeURIComponent(e.param(t.query)),o="/page",i=window.location.pathname,r=i.includes(o)?i.substr(0,i.indexOf(o)):"";window.history.pushState(null,null,`${r}?${n}`),window.location.reload()},setLocal:function(e,t){window.localStorage.setItem(e,t)},getLocal:function(e){return window.localStorage.getItem(e)},setParams:function(a,n){const o=t,i=o.form?o.form.elements:"",r=document.forms.stores_sorting,d=r?r.elements:"";Object.values(d).forEach((function(t){t.name===a[0]&&e(t).val(n[0])})),Object.values(i).forEach((function(t){if(a.includes(t.name)&&("checkbox"===t.type?t.checked=!!["yes","true","1"].includes(n[0]):["text","search"].includes(t.type)&&(t.value=n[0])),a[0].includes("store_categories[")||a[0].includes("store_category[")){const t=n[0].split(" ").join("-"),a=e(`[data-slug=${t}]`);o.cateItemStringArray.includes(a.text().trim())||o.cateItemStringArray.push(a.text().trim()),a.addClass("dokan-btn-theme")}else if("rating"===a[0]){const t=n[0].split(" ").join("-");e(`[data-${a[0]}=${t}]`).addClass("active"),e(`[data-rating=${t}]`).parent().addClass("selected")}})),a.forEach((function(e,t){e.includes("[")||(o.query[e]=n[t])}))},getParams:function(){const e=new URLSearchParams(location.search),t=[];return e.forEach((function(e,a){t.push({[a]:e})})),t},maybeHideListView:function(){const a=t;window.matchMedia("(max-width: 767px)").matches&&"list-view"===a.getLocal("dokan-layout")&&a.setLocal("dokan-layout","grid-view"),e(window).on("resize",(function(){e(this).width()<767?(e("#dokan-seller-listing-wrap").removeClass("list-view"),e("#dokan-seller-listing-wrap").addClass("grid-view")):(e(".toggle-view.item span").last().removeClass("active"),e(".toggle-view.item span").first().addClass("active"))}))}};window.dokan&&(window.dokan.storeLists=t,window.dokan.storeLists.init())}(jQuery),(e=>{const t={init:()=>{e("#dokan-request-withdraw-button").on("click",(e=>{e.preventDefault(),t.openRequestWithdrawWindow()})),e(".dokan-withdraw-make-default-button").on("click",(e=>{e.preventDefault(),t.makeDefault(e)})),e("#dokan-withdraw-request-submit").on("click",(e=>{t.handleWithdrawRequest(e)})),e("#dokan-withdraw-display-schedule-popup").on("click",(e=>{t.opensScheduleWindow(e)})),e("#dokan-withdraw-schedule-request-submit").on("click",(e=>{t.handleScheduleChangeRequest(e)})),e("input[name='withdraw-schedule']").on("change",(e=>{t.handleScheduleChange(e)}))},openRequestWithdrawWindow:()=>{const a=wp.template("withdraw-request-popup"),n=e("#dokan-withdraw-request-popup").iziModal({width:690,overlayColor:"rgba(0, 0, 0, 0.8)",headerColor:dokan.modal_header_color});n.iziModal("setContent",a().trim()),n.iziModal("open"),t.init()},opensScheduleWindow:()=>{const a=wp.template("withdraw-schedule-popup"),n=e("#dokan-withdraw-schedule-popup").iziModal({width:690,overlayColor:"rgba(0, 0, 0, 0.8)",headerColor:dokan.modal_header_color});n.iziModal("setContent",a().trim()),n.iziModal("open"),t.init()},makeDefault:t=>{const a=e(t.target),n=e("#dokan-withdraw-payment-method-list");n.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,{action:"dokan_withdraw_handle_make_default_method",nonce:n.data("security"),method:a.data("method")},(e=>{e.success?(dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"success",showConfirmButton:!1,timer:2e3,timerProgressBar:!0}),n.unblock(),window.location.reload()):(dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"error",showConfirmButton:!1,timer:2e3,timerProgressBar:!0}),n.unblock())}))},handleWithdrawRequest:t=>{t.preventDefault();const a=e("input#withdraw-amount").val(),n=e("input#dokan_withdraw_nonce").val(),o=e("#withdraw-request-popup"),i=e("#withdraw-method").val();o.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,{action:"dokan_handle_withdraw_request",_handle_withdraw_request:n,amount:a,method:i},(async e=>{e.success?await dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"success",showConfirmButton:!1,timer:2e3,timerProgressBar:!0,didOpen:e=>{setTimeout((function(){o.unblock(),window.location.reload()}),2e3)}}):(dokan_sweetalert("",{icon:"error",html:e.data}),o.unblock())}))},handleScheduleChangeRequest:t=>{t.preventDefault();const a=e("input[name='withdraw-schedule']:checked").val(),n=e("#dokan-withdraw-schedule-request-submit").data("security"),o=e("#withdraw-schedule-popup"),i=e("#withdraw-remaining-amount").val(),r=e("#minimum-withdraw-amount").val(),d=e("#preferred-payment-method").val();o.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,{action:"dokan_handle_withdraw_schedule_change_request",nonce:n,schedule:a,reserve:i,minimum:r,method:d},(e=>{e.success?(dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"success",showConfirmButton:!1,timer:2e3,timerProgressBar:!0}),o.unblock(),window.location.reload()):(dokan_sweetalert("",{icon:"error",html:e.data}),o.unblock())}))},handleScheduleChange:t=>{const a=e(t.target).data("next-schedule");e("#dokan-withdraw-next-scheduled-date").html(a)}};e(document).ready((function(){t.init()}))})(jQuery)})(); \ No newline at end of file +(()=>{var e,t;jQuery((function(e){e(".tips").tooltip(),e("ul.order-status").on("click","a.dokan-edit-status",(function(t){return e(this).addClass("dokan-hide").closest("li").next("li").removeClass("dokan-hide"),!1})),e("ul.order-status").on("click","a.dokan-cancel-status",(function(t){return e(this).closest("li").addClass("dokan-hide").prev("li").find("a.dokan-edit-status").removeClass("dokan-hide"),!1})),e("form#dokan-order-status-form").on("submit",(function(t){t.preventDefault();var a=e(this),n=a.closest("li");n.block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}}),e.post(dokan.ajaxurl,a.serialize(),(function(e){if(n.unblock(),e.success){var t=n.prev();n.addClass("dokan-hide"),t.find("label").replaceWith(e.data),t.find("a.dokan-edit-status").removeClass("dokan-hide")}else dokan_sweetalert(e.data,{icon:"success"})}))})),e("form#add-order-note").on("submit",(function(t){if(t.preventDefault(),e("textarea#add-note-content").val())return e("#dokan-order-notes").block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}}),e.post(dokan.ajaxurl,e(this).serialize(),(function(t){e("ul.order_notes").prepend(t),e("#dokan-order-notes").unblock(),e("#add-note-content").val("")})),!1})),e("#dokan-order-notes").on("click","a.delete_note",(function(){var t=e(this).closest("li.note");e("#dokan-order-notes").block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}});var a={action:"dokan_delete_order_note",note_id:e(t).attr("rel"),security:e("#delete-note-security").val()};return e.post(dokan.ajaxurl,a,(function(a){e(t).remove(),e("#dokan-order-notes").unblock()})),!1})),e(".order_download_permissions").on("click","button.grant_access",(function(){var t=e(this),a=e("select.grant_access_id").val();if(a){e(".order_download_permissions").block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}});var n={action:"dokan_grant_access_to_download",product_ids:a,loop:e(".order_download_permissions .panel").length,order_id:t.data("order-id"),security:t.data("nonce")};return e.post(dokan.ajaxurl,n,(function(t){t?e("#accordion").append(t):dokan_sweetalert(dokan.i18n_download_access,{icon:"warning"}),e(".datepicker").datepicker(),e(".order_download_permissions").unblock()})),!1}})),e(".order_download_permissions").on("click","button.revoke_access",(async function(t){t.preventDefault();const a=await dokan_sweetalert(dokan.i18n_download_permission,{action:"confirm",icon:"warning"});if("undefined"!==a&&a.isConfirmed){var n=e(this),o=n.closest(".dokan-panel"),i=n.attr("rel").split(",")[0],r=n.attr("rel").split(",")[1];if(i>0){e(o).block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}});var d={action:"dokan_revoke_access_to_download",product_id:i,download_id:r,order_id:n.data("order-id"),permission_id:n.data("permission-id"),security:n.data("nonce")};e.post(dokan.ajaxurl,d,(function(t){e(o).fadeOut("300",(function(){e(o).remove()}))}))}else e(o).fadeOut("300",(function(){e(o).remove()}))}return!1}))})),e=jQuery,(t={init:function(){let t={d:"dd",D:"D",j:"d",l:"DD",F:"MM",m:"mm",M:"M",n:"m",o:"yy",Y:"yy",y:"y"},a=0,n="",o="";for(a=0;a0?e("#restock_refunded_items").closest("tr").show():(e("#restock_refunded_items").closest("tr").hide(),e(".woocommerce_order_items input.refund_order_item_qty").each((function(){e(this).val()>0&&e("#restock_refunded_items").closest("tr").show()}))),e(this).trigger("refund_quantity_changed")}}}).init(),e("#dokan-filter-customer").filter(":not(.enhanced)").each((function(){var t={allowClear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"1",escapeMarkup:function(e){return e},language:{errorLoading:function(){return dokan.i18n_searching},inputTooLong:function(e){var t=e.input.length-e.maximum;return 1===t?dokan.i18n_input_too_long_1:dokan.i18n_input_too_long_n.replace("%qty%",t)},inputTooShort:function(e){var t=e.minimum-e.input.length;return 1===t?dokan.i18n_input_too_short_1:dokan.i18n_input_too_short_n.replace("%qty%",t)},loadingMore:function(){return dokan.i18n_load_more},maximumSelected:function(e){return 1===e.maximum?dokan.i18n_selection_too_long_1:dokan.i18n_selection_too_long_n.replace("%qty%",e.maximum)},noResults:function(){return dokan.i18n_no_matches},searching:function(){return dokan.i18n_searching}},ajax:{url:dokan.ajaxurl,dataType:"json",delay:1e3,data:function(t){return{term:t.term,action:"dokan_json_search_vendor_customers",security:dokan.search_customer_nonce,exclude:e(this).data("exclude")}},processResults:function(t){var a=[];return t&&e.each(t,(function(e,t){a.push({id:e,text:t})})),{results:a}},cache:!0}};if(e(this).select2(t).addClass("enhanced"),e(this).data("sortable")){var a=e(this),n=e(this).next(".select2-container").find("ul.select2-selection__rendered");n.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:!0,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){e(n.find(".select2-selection__choice").get().reverse()).each((function(){var t=e(this).data("data").id,n=a.find('option[value="'+t+'"]')[0];a.prepend(n)}))}})}})),function(e){e("#variants-holder"),e("#product_image_gallery"),e("#product_images_container ul.product_images");var t,a,n={modal:!1,init:function(){product_type="simple",e(".product-edit-container").on("click",".dokan-section-heading",this.toggleProductSection),e(".product-edit-container").on("click","input[type=checkbox]#_downloadable",this.downloadable),e(".product-edit-container").on("click","a.sale-schedule",this.showDiscountSchedule),e("body, #dokan-product-images").on("click","a.add-product-images",this.gallery.addImages),e("body, #dokan-product-images").on("click","a.action-delete",this.gallery.deleteImage),this.gallery.sortable(),e("body, .product-edit-container").on("click","a.dokan-feat-image-btn",this.featuredImage.addImage),e("body, .product-edit-container").on("click","a.dokan-remove-feat-image",this.featuredImage.removeImage),e("body, #variable_product_options").on("click",".sale_schedule",this.saleSchedule),e("body, #variable_product_options").on("click",".cancel_sale_schedule",this.cancelSchedule),e(".product-edit-container").on("change","input[type=checkbox]#_manage_stock",this.showManageStock),e(".product-edit-container").on("click","a.upload_file_button",this.fileDownloadable),e("body").on("click","a.insert-file-row",(function(){return e(this).closest("table").find("tbody").append(e(this).data("row")),!1})),e("body").on("click","a.dokan-product-delete",(function(){return e(this).closest("tr").remove(),!1})),e("body").on("submit","form.dokan-product-edit-form",this.inputValidate),e(".dokan-product-listing").on("click","a.dokan-add-new-product",this.addProductPopup),this.loadSelect2(),this.bindProductTagDropdown(),this.attribute.sortable(),this.checkProductPostboxToggle(),e(".product-edit-container .dokan-product-attribute-wrapper").on("click","a.dokan-product-toggle-attribute, .dokan-product-attribute-heading",this.attribute.toggleAttribute),e(".product-edit-container .dokan-product-attribute-wrapper").on("click","a.add_new_attribute",this.attribute.addNewAttribute),e(".product-edit-container .dokan-product-attribute-wrapper").on("keyup","input.dokan-product-attribute-name",this.attribute.dynamicAttrNameChange),e(".dokan-product-attribute-wrapper ul.dokan-attribute-option-list").on("click","button.dokan-select-all-attributes",this.attribute.selectAllAttr),e(".dokan-product-attribute-wrapper ul.dokan-attribute-option-list").on("click","button.dokan-select-no-attributes",this.attribute.selectNoneAttr),e(".dokan-product-attribute-wrapper ul.dokan-attribute-option-list").on("click","button.dokan-add-new-attribute",this.attribute.addNewExtraAttr),e(".product-edit-container .dokan-product-attribute-wrapper").on("click","a.dokan-product-remove-attribute",this.attribute.removeAttribute),e(".product-edit-container .dokan-product-attribute-wrapper").on("click","a.dokan-save-attribute",this.attribute.saveAttribute),e("body").on("click",'.product-container-footer input[type="submit"]',this.createNewProduct),this.attribute.disbalePredefinedAttribute(),this.setCorrectProductId(),e("body").trigger("dokan-product-editor-loaded",this)},setCorrectProductId:function(){if(!e(".dokan-product-edit-form"))return;let t=e("#dokan_product_id").val();if(window.history.replaceState){let e=new URL(document.location),a=e.searchParams,n=a.get("product_id");if(""!==n&&"0"!==n)return;if(a.set("product_id",t),"edit"!==a.get("action"))return;e.search=a.toString();let o=e.toString(),i={product_id:t};window.history.replaceState(i,document.title,o)}},saleSchedule:function(){var t=e(this).closest(".dokan-product-field-content","div, table");return e(this).hide(),t.find(".cancel_sale_schedule").show(),t.find(".sale_price_dates_fields").show(),!1},cancelSchedule:function(){var t=e(this).closest(".dokan-product-field-content","div, table");return e(this).hide(),t.find(".sale_schedule").show(),t.find(".sale_price_dates_fields").hide(),t.find(".sale_price_dates_fields").find("input").val(""),!1},checkProductPostboxToggle:function(){var t=JSON.parse(localStorage.getItem("toggleClasses"));e.each(t,(function(t,a){var n=e("."+t.replace(/_/g,"-")),o=n.find(".dokan-section-content"),i=n.find("i.fa-sort-desc");a?(o.show(),i.removeClass("fa-flip-horizointal").addClass("fa-flip-vertical"),i.css("marginTop","9px")):(o.hide(),i.removeClass("fa-flip-vertical").addClass("fa-flip-horizointal"),i.css("marginTop","0px"))}))},toggleProductSection:function(t){t.preventDefault();var a=e(this);if(null!=JSON.parse(localStorage.getItem("toggleClasses")))var n=JSON.parse(localStorage.getItem("toggleClasses"));else n={};a.closest(".dokan-edit-row").find(".dokan-section-content").slideToggle(300,(function(){var t;e(this).is(":visible")?((t=a.find("i.fa-sort-desc")).removeClass("fa-flip-horizointal").addClass("fa-flip-vertical"),t.css("marginTop","9px"),n[a.data("togglehandler")]=!0):((t=a.find("i.fa-sort-desc")).removeClass("fa-flip-vertical").addClass("fa-flip-horizointal"),t.css("marginTop","0px"),n[a.data("togglehandler")]=!1),localStorage.setItem("toggleClasses",JSON.stringify(n))}))},loadSelect2:function(){e(".dokan-select2").select2({language:{noResults:function(){return dokan.i18n_no_result_found}}})},bindProductTagDropdown:function(){e(".product_tag_search").select2({allowClear:!1,tags:dokan.product_vendors_can_create_tags&&"on"===dokan.product_vendors_can_create_tags,createTag:function(t){var a=e.trim(t.term);return""===a?null:{id:a,text:a,newTag:!0}},insertTag:function(t,a){var n=!1;e.each(t,(function(t,o){e.trim(a.text).toUpperCase()==e.trim(o.text).toUpperCase()&&(n=!0)})),n||t.unshift(a)},minimumInputLength:2,maximumSelectionLength:void 0!==dokan.maximum_tags_select_length?dokan.maximum_tags_select_length:-1,ajax:{url:dokan.ajaxurl,dataType:"json",delay:250,data:function(e){return{q:e.term,action:"dokan_json_search_products_tags",security:dokan.search_products_tags_nonce,page:e.page||1}},processResults:function(t){var a=[];return t&&e.each(t,(function(e,t){a.push({id:t[0],text:t[1]})})),{results:a,pagination:{more:0!=a.length}}},cache:!0},language:{errorLoading:function(){return dokan.i18n_searching},inputTooLong:function(e){var t=e.input.length-e.maximum;return 1===t?dokan.i18n_input_too_long_1:dokan.i18n_input_too_long_n.replace("%qty%",t)},inputTooShort:function(e){var t=e.minimum-e.input.length;return 1===t?dokan.i18n_input_too_short_1:dokan.i18n_input_too_short_n.replace("%qty%",t)},loadingMore:function(){return dokan.i18n_load_more},maximumSelected:function(e){return 1===e.maximum?dokan.i18n_selection_too_long_1:dokan.i18n_selection_too_long_n.replace("%qty%",e.maximum)},noResults:function(){return dokan.i18n_no_matches},searching:function(){return dokan.i18n_searching}}})},addProductPopup:function(e){e.preventDefault(),n.openProductPopup()},openProductPopup:function(){const o=wp.template("dokan-add-new-product"),i=e("#dokan-add-product-popup");n.modal=i.iziModal({headerColor:dokan.modal_header_color,overlayColor:"rgba(0, 0, 0, 0.8)",width:690,top:32,onOpening:()=>{n.reRenderPopupElements()},onClosed:()=>{t=void 0,a=void 0,e('#dokan-add-new-product-popup input[name="_sale_price_dates_from"], #dokan-add-new-product-popup input[name="_sale_price_dates_to"]').datepicker("destroy")}}),n.modal.iziModal("setContent",o().trim()),n.modal.iziModal("open")},reRenderPopupElements:function(){n.loadSelect2(),n.bindProductTagDropdown(),e("#dokan-add-new-product-popup .sale_price_dates_fields input").daterangepicker({singleDatePicker:!0,showDropdowns:!1,autoApply:!0,parentEl:"#dokan-add-new-product-popup",opens:"left",autoUpdateInput:!1}).on("apply.daterangepicker",(function(t,a){e(this).val(a.startDate.format("YYYY-MM-DD"))})),e(".tips").tooltip(),n.gallery.sortable(),e("body").trigger("dokan-product-editor-popup-opened",n)},createNewProduct:function(t){t.preventDefault();var o=e(this),i=o.closest("form#dokan-add-new-product-form"),r=o.attr("data-btn_id");if(i.find("span.dokan-show-add-product-success").html(""),i.find("span.dokan-show-add-product-error").html(""),i.find("span.dokan-add-new-product-spinner").css("display","inline-block"),o.attr("disabled","disabled"),""==i.find('input[name="post_title"]').val())return e("span.dokan-show-add-product-error").html(dokan.product_title_required),o.removeAttr("disabled"),void i.find("span.dokan-add-new-product-spinner").css("display","none");if("-1"==i.find('select[name="product_cat"]').val())return e("span.dokan-show-add-product-error").html(dokan.product_category_required),o.removeAttr("disabled"),void i.find("span.dokan-add-new-product-spinner").css("display","none");var d={action:"dokan_create_new_product",postdata:i.serialize(),_wpnonce:dokan.nonce};n.modal.iziModal("startLoading"),e.post(dokan.ajaxurl,d,(function(t){t.success?(o.removeAttr("disabled"),"create_new"===r?(e("#dokan-add-product-popup").iziModal("close"),window.location.href=t.data):(a=void 0,e(".dokan-dashboard-product-listing-wrapper").load(window.location.href+" table.product-listing-table"),n.modal.iziModal("resetContent"),n.openProductPopup(),n.reRenderPopupElements(),e("span.dokan-show-add-product-success").html(dokan.product_created_response),setTimeout((function(){e("span.dokan-show-add-product-success").html("")}),3e3))):(o.removeAttr("disabled"),e("span.dokan-show-add-product-error").html(t.data)),i.find("span.dokan-add-new-product-spinner").css("display","none")})).always((function(){n.modal.iziModal("stopLoading")}))},attribute:{toggleAttribute:function(t){t.preventDefault();var a=e(this),n=a.closest("li").find(".dokan-product-attribute-item");return e(n).hasClass("dokan-hide")?(a.closest(".dokan-product-attribute-heading").css({borderBottom:"1px solid #e3e3e3"}),e(n).slideDown(200,(function(){a.find("i.fa").removeClass("fa-flip-horizointal").addClass("fa-flip-vertical"),e(this).removeClass("dokan-hide"),e(t.target).hasClass("dokan-product-attribute-heading")?e(t.target).hasClass("dokan-product-attribute-heading")&&a.find("a.dokan-product-toggle-attribute").css("top","12px"):e(t.target).closest("a").css("top","12px")}))):e(n).slideUp(200,(function(){e(this).addClass("dokan-hide"),a.find("i.fa").removeClass("fa-flip-vertical").addClass("fa-flip-horizointal"),e(t.target).hasClass("dokan-product-attribute-heading")?e(t.target).hasClass("dokan-product-attribute-heading")&&a.find("a.dokan-product-toggle-attribute").css("top","7px"):e(t.target).closest("a").css("top","7px"),a.closest(".dokan-product-attribute-heading").css({borderBottom:"none"})})),!1},sortable:function(){e(".dokan-product-attribute-wrapper ul").sortable({items:"li.product-attribute-list",cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,helper:"clone",opacity:.65,placeholder:"dokan-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")},update:function(e,t){n.attribute.reArrangeAttribute()}})},dynamicAttrNameChange:function(t){t.preventDefault();var a=e(this),n=a.val();""==n?a.closest("li").find("strong").html(dokan.i18n_attribute_label):a.closest("li").find("strong").html(n)},selectAllAttr:function(t){return t.preventDefault(),e(this).closest("li.product-attribute-list").find("select.dokan_attribute_values option").attr("selected","selected"),e(this).closest("li.product-attribute-list").find("select.dokan_attribute_values").trigger("change"),!1},selectNoneAttr:function(t){return t.preventDefault(),e(this).closest("li.product-attribute-list").find("select.dokan_attribute_values option").removeAttr("selected"),e(this).closest("li.product-attribute-list").find("select.dokan_attribute_values").trigger("change"),!1},reArrangeAttribute:function(){e(".dokan-product-attribute-wrapper").find("ul.dokan-attribute-option-list").find("li.product-attribute-list").css("cursor","default").each((function(t){e(this).find(".attribute_position").val(t)}))},addNewExtraAttr:async function(t){t.preventDefault();var a=e(this).closest("li.product-attribute-list"),n=a.data("taxonomy"),o=(await dokan_sweetalert(dokan.new_attribute_prompt,{action:"prompt",input:"text"})).value;if(o){var i={action:"dokan_add_new_attribute",taxonomy:n,term:o,_wpnonce:dokan.nonce};e.post(dokan.ajaxurl,i,(function(e){e.error?dokan_sweetalert(e.error,{action:"alert",icon:"warning"}):e.slug&&(a.find("select.dokan_attribute_values").append('"),a.find("select.dokan_attribute_values").trigger("change"))}))}},addNewAttribute:function(t){t.preventDefault();var a=e(this),o=a.closest(".dokan-attribute-type").find("select#predefined_attribute"),i=o.val(),r=e("ul.dokan-attribute-option-list .product-attribute-list").length,d={action:"dokan_get_pre_attribute",taxonomy:i,i:r,_wpnonce:dokan.nonce};a.closest(".dokan-attribute-type").find("span.dokan-attribute-spinner").removeClass("dokan-hide"),e.post(dokan.ajaxurl,d,(function(t){if(t.success){var r=e(".dokan-product-attribute-wrapper").find("ul.dokan-attribute-option-list");if($html=e.parseHTML(t.data),e($html).find(".dokan-product-attribute-item").removeClass("dokan-hide"),e($html).find("i.fa.fa-sort-desc").removeClass("fa-flip-horizointal").addClass("fa-flip-vertical"),e($html).find("a.dokan-product-toggle-attribute").css("top","12px"),e($html).find(".dokan-product-attribute-heading").css({borderBottom:"1px solid #e3e3e3"}),r.append($html),n.loadSelect2(),n.bindProductTagDropdown(),n.attribute.reArrangeAttribute(),"variable"!==e("select#product_type").val()){let t=e("div.dokan-product-attribute-wrapper label.show_if_variable");for(let a of t){let t=e(a).find('input[type="checkbox"]');t.length>0&&t[0].getAttribute("name")?.startsWith("attribute_variation[")&&e(a).hide()}}}a.closest(".dokan-attribute-type").find("span.dokan-attribute-spinner").addClass("dokan-hide"),i&&(o.find('option[value="'+i+'"]').attr("disabled","disabled"),o.val(""))})).done((function(){e("select#product_type").trigger("change")}))},removeAttribute:async function(t){t.stopPropagation(),t.preventDefault();const a=await dokan_sweetalert(dokan.remove_attribute,{action:"confirm",icon:"warning"});if("undefined"!==a&&a.isConfirmed){var o=e(this).closest("li.product-attribute-list");o.fadeOut(300,(function(){o.is(".taxonomy")?(o.find("select, input[type=text]").val(""),e("select.dokan_attribute_taxonomy").find('option[value="'+o.data("taxonomy")+'"]').removeAttr("disabled")):(o.find("select, input[type=text]").val(""),o.hide()),n.attribute.reArrangeAttribute()}))}return!1},saveAttribute:function(t){t.preventDefault(),e(this);var a={post_id:e("#dokan-edit-product-id").val(),data:e("ul.dokan-attribute-option-list").find("input, select, textarea").serialize(),action:"dokan_save_attributes"};e(".dokan-product-attribute-wrapper").block({message:null,fadeIn:50,fadeOut:1e3,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,a,(function(t){e("#dokan-variable-product-options").load(window.location.toString()+" #dokan-variable-product-options-inner",(function(){e("#dokan-variable-product-options").trigger("reload"),e("select#product_type").trigger("change"),e(".dokan-product-attribute-wrapper").unblock()}))}))},disbalePredefinedAttribute:function(){e("ul.dokan-attribute-option-list li.product-attribute-list").each((function(t,a){"none"!==e(a).css("display")&&e(a).is(".taxonomy")&&e("select#predefined_attribute").find('option[value="'+e(a).data("taxonomy")+'"]').attr("disabled","disabled")}))}},inputValidate:function(t){return t.preventDefault(),""==e("#post_title").val().trim()?(e("#post_title").focus(),void e("div.dokan-product-title-alert").removeClass("dokan-hide")):(e("div.dokan-product-title-alert").hide(),-1==e("select.product_cat").val()?(e("select.product_cat").focus(),void e("div.dokan-product-cat-alert").removeClass("dokan-hide")):(e("div.dokan-product-cat-alert").hide(),e("input[type=submit]").attr("disabled","disabled"),void this.submit()))},downloadable:function(){e(this).prop("checked")?e(this).closest("aside").find(".dokan-side-body").removeClass("dokan-hide"):e(this).closest("aside").find(".dokan-side-body").addClass("dokan-hide")},showDiscountSchedule:function(t){t.preventDefault(),e(".sale-schedule-container").slideToggle("fast")},showManageStock:function(t){const a=e("#product_type").val();e(this).is(":checked")&&"external"!==a?e(".show_if_stock").slideDown("fast"):e(".show_if_stock").slideUp("fast"),"simple"===a&&(e(this).is(":checked")?e(".hide_if_stock_global").slideUp("fast"):e(".hide_if_stock_global").slideDown("fast"))},gallery:{addImages:function(a){a.preventDefault();var n=e(this),o=n.closest(".dokan-product-gallery").find("#product_images_container ul.product_images"),i=n.closest(".dokan-product-gallery").find("#product_image_gallery");t||(t=wp.media({title:dokan.i18n_choose_gallery,library:{type:"image"},button:{text:dokan.i18n_choose_gallery_btn_text},multiple:!0})).on("select",(function(){t.state().get("selection").map((function(t){t=t.toJSON(),attachment_ids=[],t.id&&"image"===t.type&&(e('
  • ×
  • ').insertBefore(o.find("li.add-image")),e("#product_images_container ul li.image").css("cursor","default").each((function(){var e=jQuery(this).attr("data-attachment_id");attachment_ids.push(e)})),i.val(attachment_ids.join(",")))}))})),t.open()},deleteImage:function(t){t.preventDefault();var a=e(this),n=(a.closest(".dokan-product-gallery").find("#product_images_container ul.product_images"),a.closest(".dokan-product-gallery").find("#product_image_gallery"));a.closest("li.image").remove();var o=[];return e("#product_images_container ul li.image").css("cursor","default").each((function(){var t=e(this).attr("data-attachment_id");o.push(t)})),n.val(o.join(",")),!1},sortable:function(){e("body").find("#product_images_container ul.product_images").sortable({items:"li.image",cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,helper:"clone",opacity:.65,placeholder:"dokan-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")},update:function(t,a){var n=[];e("body").find("#product_images_container ul li.image").css("cursor","default").each((function(){var e=jQuery(this).attr("data-attachment_id");n.push(e)})),e("body").find("#product_image_gallery").val(n.join(","))}})}},featuredImage:{addImage:function(t){t.preventDefault();var n=e(this);a||(a=wp.media({title:dokan.i18n_choose_featured_img,library:{type:"image"},button:{text:dokan.i18n_choose_featured_img_btn_text}})).on("select",(function(){a.state().get("selection").map((function(e){if("image"===(e=e.toJSON()).type){n.siblings("input.dokan-feat-image-id").val(e.id);var t=n.closest(".instruction-inside"),a=t.siblings(".image-wrap");a.find("img").attr("src",e.url),a.find("img").removeAttr("srcset"),t.addClass("dokan-hide"),a.removeClass("dokan-hide")}}))})),a.open()},removeImage:function(t){t.preventDefault();var a=e(this).closest(".image-wrap"),n=a.siblings(".instruction-inside");n.find("input.dokan-feat-image-id").val("0"),a.addClass("dokan-hide"),n.removeClass("dokan-hide")}},fileDownloadable:function(t){t.preventDefault();var a,n=e(this);a||((a=wp.media({title:dokan.i18n_choose_file,button:{text:dokan.i18n_choose_file_btn_text},multiple:!0})).on("select",(function(){a.state().get("selection").map((function(e){e=e.toJSON(),n.closest("tr").find("input.wc_file_url, input.wc_variation_file_url").val(e.url)}))})),a.on("ready",(function(){a.uploader.options.uploader.params={type:"downloadable_product"}}))),a.open()}};e((function(){function t(){var t=e("#product_type").val(),a=e("input#_virtual:checked").length,n=e("input#_downloadable:checked").length;let o=e(".dokan-product-shipping-tax");var i=".hide_if_downloadable, .hide_if_virtual",r=".show_if_downloadable, .show_if_virtual";e.each(Object.keys(dokan.product_types),(function(e,t){i=i+", .hide_if_"+t,r=r+", .show_if_"+t})),e(i).show(),e(r).hide(),n&&e(".show_if_downloadable").show(),a&&e(".show_if_virtual").show(),e(".show_if_"+t).show(),n&&e(".hide_if_downloadable").hide(),a?(e(".hide_if_virtual").hide(),1===e(".dokan-product-shipping-tax .dokan-section-content").first().children().length?o.hide():(o.hasClass("hide_if_virtual")&&o.removeClass("hide_if_virtual"),o.show())):o.show(),e(".hide_if_"+t).hide(),e("input#_manage_stock").trigger("change")}n.init(),e("select#product_type").on("change",(function(){var a=e(this).val();"variable"===a&&(e("input#_manage_stock").trigger("change"),e("input#_downloadable").prop("checked",!1),e("input#_virtual").removeAttr("checked")),t(),e(document.body).trigger("dokan-product-type-change",a,e(this))})).trigger("change"),e(".product-edit-container").on("change","input#_downloadable, input#_virtual",(function(){t()})).trigger("change"),e("input#_downloadable").trigger("change"),e("input#_virtual").trigger("change"),e(".sale_price_dates_fields").each((function(){var t=e(this),a=!1,n=t.closest("div, table");t.find("input").each((function(){""!==e(this).val()&&(a=!0)})),a?(n.find(".sale_schedule").hide(),n.find(".sale_price_dates_fields").show()):(n.find(".sale_schedule").show(),n.find(".sale_price_dates_fields").hide())})),e(".product-edit-container").on("click",".sale_schedule",(function(){var t=e(this).closest(".product-edit-container, div.dokan-product-variation-itmes, table");return e(this).hide(),t.find(".cancel_sale_schedule").show(),t.find(".sale_price_dates_fields").show(),!1})),e(".product-edit-container").on("click",".cancel_sale_schedule",(function(){var t=e(".product-edit-container, div.dokan-product-variation-itmes, table");return e(this).hide(),t.find(".sale_schedule").show(),t.find(".sale_price_dates_fields").hide(),t.find(".sale_price_dates_fields").find("input").val(""),!1})),e("#dokan-product-title-area").on("click",".edit-slug",(function(){!function(){var t,a,n,o,i=0,r=e("#post_name"),d=r.val(),s=e("#sample-permalink"),l=s.html(),c=e("#sample-permalink a").html(),u=e("#edit-slug-buttons"),p=u.html(),m=e("#editable-post-name-full");for(m.find("img").replaceWith((function(){return this.alt})),m=m.html(),s.html(c),n=e("#editable-post-name"),o=n.html(),u.html(' "),u.children(".save").on("click",(function(){var t=n.children("input").val();t!=e("#editable-post-name-full").text()?e.post(ajaxurl,{action:"sample-permalink",post_id:e("#dokan-edit-product-id").val(),new_slug:t,new_title:e("#post_title").val(),samplepermalinknonce:e("#samplepermalinknonce").val()},(function(a){var n=e("#edit-slug-box");n.html(a),n.hasClass("hidden")&&n.fadeIn("fast",(function(){n.removeClass("hidden")})),u.html(p),s.html(l),r.val(t),e(".edit-slug").focus(),e("#editable-post-name-full-dokan").val(e("#editable-post-name-full").html())})):u.children(".cancel").trigger("click")})),u.children(".cancel").on("click",(function(){e("#view-post-btn").show(),n.html(o),u.html(p),s.html(l),r.val(d),e(".edit-slug").focus()})),t=0;tm.length/4?"":m,n.html('').children("input").on("keydown",(function(e){var t=e.which;13===t&&(e.preventDefault(),u.children(".save").trigger("click")),27===t&&u.children(".cancel").trigger("click")})).on("keyup",(function(){r.val(this.value)})).focus()}()})),e("#dokan-edit-product-id").val()&&e("#post_title").val()&&e("#samplepermalinknonce").val()&&e.post(ajaxurl,{action:"sample-permalink",post_id:e("#dokan-edit-product-id").val(),new_slug:e("#edited-post-name-dokan").val(),new_title:e("#post_title").val(),samplepermalinknonce:e("#samplepermalinknonce").val()},(function(t){e("#edit-slug-box").html(t)})),e(window).on("load",(function(){e("input#_virtual:checked").length&&t()}))}))}(jQuery),jQuery((function(e){function t(e,t,a){jQuery('
    '+a+"
    ").css({top:t-16,left:e+20}).appendTo("body").fadeIn(200)}wp.customize,e(".datepicker").datepicker({dateFormat:"yy-mm-dd"}),e(".dokan-table tbody").on("click",".toggle-row",(function(){e(this).closest("tr").toggleClass("is-expanded")})),e(".dokan-start-date").datepicker({defaultDate:"",dateFormat:"yy-mm-dd",numberOfMonths:1,onSelect:function(t){let a=new Date(t);a.setDate(a.getDate()+1),e(".dokan-end-date").datepicker("option",{minDate:a})}}),e(".dokan-end-date").datepicker({defaultDate:"",dateFormat:"yy-mm-dd",numberOfMonths:1,onSelect:function(t){let a=new Date(t);a.setDate(a.getDate()-1),e("dokan-start-date").datepicker("option",{maxDate:a})}}),e(".tips").tooltip();var a=null,n=null;jQuery(".chart-placeholder").on("plothover",(function(e,o,i){if(i){if((a!=i.dataIndex||n!=i.seriesIndex)&&(a=i.dataIndex,n=i.seriesIndex,jQuery(".chart-tooltip").remove(),i.series.points.show||i.series.enable_tooltip)){var r=i.series.data[i.dataIndex][1];tooltip_content="",i.series.prepend_label&&(tooltip_content=tooltip_content+i.series.label+": "),i.series.prepend_tooltip&&(tooltip_content+=i.series.prepend_tooltip),tooltip_content+=r,i.series.append_tooltip&&(tooltip_content+=i.series.append_tooltip),i.series.pie.show?t(o.pageX,o.pageY,tooltip_content):t(i.pageX,i.pageY,tooltip_content)}}else jQuery(".chart-tooltip").remove(),a=null}))})),function(e){e.validator.setDefaults({ignore:":hidden"});var t=function(t,a){e(a).closest(".dokan-form-group").addClass("has-error").append(t)},a=function(t,a){e(a).closest(".dokan-form-group").removeClass("has-error"),e(t).remove()},n=wp.customize,o='input[name="settings[bank][disconnect]"], input[name="settings[paypal][disconnect]"], input[name="settings[skrill][disconnect]"], input[name="settings[dokan_custom][disconnect]"]',i={init:function(){return e("a.dokan-banner-drag").on("click",this.imageUpload),e("a.dokan-remove-banner-image").on("click",this.removeBanner),e("a.dokan-pro-gravatar-drag").on("click",this.gragatarImageUpload),e("a.dokan-gravatar-drag").on("click",this.simpleImageUpload),e("a.dokan-remove-gravatar-image").on("click",this.removeGravatar),e(".dokan-update-setting-top-button").on("click",(function(){e("input[name='dokan_update_store_settings']").trigger("click")})),this.validateForm(this),e(".dokan_payment_disconnect_btn").on("click",(function(){var t=e(this).closest("form"),a=e("form#"+t.attr("id"));e(":input",t).not(":button, :submit, :reset, :hidden, :checkbox").val("").prop("selected",!1);var n=t.serializeArray().reduce((function(e,t){return e[t.name]=t.value,e}),{});n[e(this).attr("name")]="",n.form_id=t.attr("id"),n.action="dokan_settings",i.handleRequest(a,n,!0)})),!1},calculateImageSelectOptions:function(e,t){var a,o,i,r,d,s,l=parseInt(dokan.store_banner_dimension.width,10),c=parseInt(dokan.store_banner_dimension.height,10),u=!!parseInt(dokan.store_banner_dimension["flex-width"],10),p=!!parseInt(dokan.store_banner_dimension["flex-height"],10);return d=e.get("width"),r=e.get("height"),this.headerImage=new n.HeaderTool.ImageModel,this.headerImage.set({themeWidth:l,themeHeight:c,themeFlexWidth:u,themeFlexHeight:p,imageWidth:d,imageHeight:r}),t.set("canSkipCrop",!this.headerImage.shouldBeCropped()),(o=d)/(i=r)>(a=l/c)?l=(c=i)*a:c=(l=o)/a,s={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:d,imageHeight:r,x1:0,y1:0,x2:l,y2:c},!1===p&&!1===u&&(s.aspectRatio=l+":"+c),!1===p&&(s.maxHeight=c),!1===u&&(s.maxWidth=l),s},onSelect:function(){this.frame.setState("cropper")},onCropped:function(e){var t=e.url,a=e.attachment_id,n=e.width,o=e.height;this.setImageFromURL(t,a,n,o)},onSkippedCrop:function(e){var t=e.get("url"),a=e.get("width"),n=e.get("height");this.setImageFromURL(t,e.id,a,n)},setImageFromURL:function(t,a,n,o){var i=!1;if(e(this.uploadBtn).hasClass("dokan-banner-drag"))(r=e(this.uploadBtn).closest(".dokan-banner")).find("input.dokan-file-field").val(a),r.find("img.dokan-banner-img").attr("src",t),e(this.uploadBtn).parent().siblings(".image-wrap",r).removeClass("dokan-hide"),e(this.uploadBtn).parent(".button-area").addClass("dokan-hide"),i=!0;else if(e(this.uploadBtn).hasClass("dokan-pro-gravatar-drag")){var r;(r=e(this.uploadBtn).closest(".dokan-gravatar")).find("input.dokan-file-field").val(a),r.find("img.dokan-gravatar-img").attr("src",t),i=!0,e(this.uploadBtn).parent().siblings(".gravatar-wrap",r).removeClass("dokan-hide"),e(this.uploadBtn).parent(".gravatar-button-area").addClass("dokan-hide")}!0===i&&(e(window).on("beforeunload",(function(){return dokan.dokan_banner_added_alert_msg})),e(document).ready((function(){e("#store-form").on("submit",(function(t){return e(window).off("beforeunload"),!0}))})))},removeImage:function(){n.HeaderTool.currentHeader.trigger("hide"),n.HeaderTool.CombinedList.trigger("control:removeImage")},imageUpload:function(e){e.preventDefault();var t=i;t.uploadBtn=this,t.frame=wp.media({multiple:!1,button:{text:dokan.selectAndCrop,close:!1},states:[new wp.media.controller.Library({title:dokan.chooseImage,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:dokan.store_banner_dimension.width,suggestedHeight:dokan.store_banner_dimension.height}),new wp.media.controller.Cropper({suggestedWidth:5e3,imgSelectOptions:t.calculateImageSelectOptions})]}),t.frame.on("select",t.onSelect,t),t.frame.on("cropped",t.onCropped,t),t.frame.on("skippedcrop",t.onSkippedCrop,t),t.frame.open()},calculateImageSelectOptionsProfile:function(e,t){var a,o,i,r,d,s,l=150,c=150,u=!!parseInt(dokan.store_banner_dimension["flex-width"],10),p=!!parseInt(dokan.store_banner_dimension["flex-height"],10);return d=e.get("width"),r=e.get("height"),this.headerImage=new n.HeaderTool.ImageModel,this.headerImage.set({themeWidth:l,themeHeight:c,themeFlexWidth:u,themeFlexHeight:p,imageWidth:d,imageHeight:r}),t.set("canSkipCrop",!this.headerImage.shouldBeCropped()),(o=d)/(i=r)>(a=l/c)?l=(c=i)*a:c=(l=o)/a,s={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:d,imageHeight:r,x1:0,y1:0,x2:l,y2:c},!1===p&&!1===u&&(s.aspectRatio=l+":"+c),!1===p&&(s.maxHeight=c),!1===u&&(s.maxWidth=l),s},simpleImageUpload:function(t){t.preventDefault();var a,n=e(this);a||(a=wp.media.frames.file_frame=wp.media({title:jQuery(this).data("uploader_title"),button:{text:jQuery(this).data("uploader_button_text")},multiple:!1})).on("select",(function(){var e=a.state().get("selection").first().toJSON(),t=n.closest(".dokan-gravatar");t.find("input.dokan-file-field").val(e.id),t.find("img.dokan-gravatar-img").attr("src",e.url),n.parent().siblings(".gravatar-wrap",t).removeClass("dokan-hide"),n.parent(".gravatar-button-area").addClass("dokan-hide")})),a.open()},gragatarImageUpload:function(e){e.preventDefault();var t=i;t.uploadBtn=this,t.frame=wp.media({multiple:!1,button:{text:dokan.selectAndCrop,close:!1},states:[new wp.media.controller.Library({title:dokan.chooseImage,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:150,suggestedHeight:150}),new wp.media.controller.Cropper({imgSelectOptions:t.calculateImageSelectOptionsProfile})]}),t.frame.on("select",t.onSelect,t),t.frame.on("cropped",t.onCropped,t),t.frame.on("skippedcrop",t.onSkippedCrop,t),t.frame.open()},submitSettings:function(t){"undefined"!=typeof tinyMCE&&tinyMCE.triggerSave();var a=e("form#"+t),n=a.serialize()+"&action=dokan_settings&form_id="+t;i.handleRequest(a,n,!1)},handleRequest:function(t,a,n){n?t.find(".ajax_prev.disconnect").append(' '):t.find(".ajax_prev.save").append(' '),e(".dokan-update-setting-top-button span.dokan-loading").remove(),e(".dokan-update-setting-top-button").append(' '),e.post(dokan.ajaxurl,a,(function(a){t.find("span.dokan-loading").remove(),e(".dokan-update-setting-top-button span.dokan-loading").remove(),e("html,body").animate({scrollTop:e(".dokan-dashboard-header").offset().top}),a.success?(e(".dokan-ajax-response").html(e("
    ",{class:"dokan-alert dokan-alert-success",html:"

    "+a.data.msg+"

    "})),e(".dokan-ajax-response").append(a.data.progress),dokan&&dokan.storeProgressBar&&dokan.storeProgressBar.init(),o=o.replaceAll("input","button"),n?t.find(o).addClass("dokan-hide"):t.find(o).removeClass("dokan-hide")):e(".dokan-ajax-response").html(e("
    ",{class:"dokan-alert dokan-alert-danger",html:"

    "+a.data+"

    "}))}))},validateForm:function(n){e("form#settings-form, form#profile-form, form#store-form, form#payment-form").validate({submitHandler:function(e){n.submitSettings(e.getAttribute("id"))},errorElement:"span",errorClass:"error",errorPlacement:t,success:a,ignore:".select2-search__field, :hidden, .mapboxgl-ctrl-geocoder--input"})},removeBanner:function(t){t.preventDefault();var a=e(this).closest(".image-wrap"),n=a.siblings(".button-area");a.find("input.dokan-file-field").val("0"),a.addClass("dokan-hide"),n.removeClass("dokan-hide")},removeGravatar:function(t){t.preventDefault();var a=e(this).closest(".gravatar-wrap"),n=a.siblings(".gravatar-button-area");a.find("input.dokan-file-field").val("0"),a.addClass("dokan-hide"),n.removeClass("dokan-hide")}},r={init:function(){this.withdrawValidate(this)},withdrawValidate:function(n){e("form.withdraw").validate({errorElement:"span",errorClass:"error",errorPlacement:t,success:a})}},d={init:function(){this.validate(this)},validate:function(a){e("form#dokan-form-contact-seller").validate({errorPlacement:t,errorElement:"span",success:function(e,t){e.removeClass("error"),e.remove()},submitHandler:async function(t,a){a.preventDefault(),e(t).block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}}),await dokan_execute_recaptcha("form#dokan-form-contact-seller .dokan_recaptcha_token","dokan_contact_seller_recaptcha");var n=e(t).serialize();e.post(dokan.ajaxurl,n,(function(a){e(t).unblock(),void 0!==a.data&&e(t).find(".ajax-response").html(a.data),e(t).find("input[type=text], input[type=email], textarea, input[name=dokan_recaptcha_token]").val("").removeClass("valid")}))}})}};e((function(){i.init(),r.init(),d.init(),e(".dokan-form-horizontal").on("change","input[type=checkbox]#lbl_setting_minimum_quantity",(function(){var t=e(".show_if_needs_sw_discount");e(this).is(":checked")?(t.find('input[type="number"]').val(""),t.slideDown("slow")):t.slideUp("slow")}))}))}(jQuery),function(e){var t=DokanValidateMsg;t.maxlength=e.validator.format(t.maxlength_msg),t.minlength=e.validator.format(t.minlength_msg),t.rangelength=e.validator.format(t.rangelength_msg),t.range=e.validator.format(t.range_msg),t.max=e.validator.format(t.max_msg),t.min=e.validator.format(t.min_msg),e.validator.messages=t,e(document).on("click","#dokan_store_tnc_enable",(function(t){e(this).is(":checked")?e("#dokan_tnc_text").show():e("#dokan_tnc_text").hide()})).ready((function(t){e("#dokan_store_tnc_enable").is(":checked")?e("#dokan_tnc_text").show():e("#dokan_tnc_text").hide()}))}(jQuery),function(e){var t="undefined"!=typeof wp&&wp.customize&&wp.customize.selectiveRefresh;function a(){dokan.store_banner_dimension.width;var t=dokan.store_banner_dimension.height/dokan.store_banner_dimension.width*e("#dokan-content").width();e(".dokan-profile-frame-wrapper .profile-info-img.dummy-image").css({height:t})}a(),e(window).on("resize",(function(e){a()})),t&&wp.customize.selectiveRefresh.bind("partial-content-rendered",(function(e){console.log("placement",e),"store_header_template"===e.partial.id&&a()})),e(":input.dokan-product-search").filter(":not(.enhanced)").each((function(){var t={allowClear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"3",escapeMarkup:function(e){return e},language:{errorLoading:function(){return dokan.i18n_searching},inputTooLong:function(e){var t=e.input.length-e.maximum;return 1===t?dokan.i18n_input_too_long_1:dokan.i18n_input_too_long_n.replace("%qty%",t)},inputTooShort:function(e){var t=e.minimum-e.input.length;return 1===t?dokan.i18n_input_too_short_1:dokan.i18n_input_too_short_n.replace("%qty%",t)},loadingMore:function(){return dokan.i18n_load_more},maximumSelected:function(e){return 1===e.maximum?dokan.i18n_selection_too_long_1:dokan.i18n_selection_too_long_n.replace("%qty%",e.maximum)},noResults:function(){return dokan.i18n_no_matches},searching:function(){return dokan.i18n_searching}},ajax:{url:dokan.ajaxurl,dataType:"json",delay:250,data:function(t){return{term:t.term,action:e(this).data("action")||"dokan_json_search_products_and_variations",security:dokan.search_products_nonce,exclude:e(this).data("exclude"),user_ids:e(this).data("user_ids"),include:e(this).data("include"),limit:e(this).data("limit")}},processResults:function(t){var a=[];return t&&e.each(t,(function(e,t){a.push({id:e,text:t})})),{results:a}},cache:!0}};if(e(this).select2(t).addClass("enhanced"),e(this).data("sortable")){var a=e(this),n=e(this).next(".select2-container").find("ul.select2-selection__rendered");n.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:!0,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){e(n.find(".select2-selection__choice").get().reverse()).each((function(){var t=e(this).data("data").id,n=a.find('option[value="'+t+'"]')[0];a.prepend(n)}))}})}})),selected_items=[],e("#cb-select-all").on("change",(function(t){var a=e(this),n=e(".cb-select-items");a.is(":checked")?n.each((function(t,a){e(a).prop("checked","checked")})):n.each((function(t,a){e(a).prop("checked",""),selected_items.pop()}))}))}(jQuery),function(e){function t(t,a){const n=e(t.target).closest("li.has-submenu");n.find(".navigation-submenu").each(((t,o)=>{if(a)n.removeClass("submenu-hovered"),e(".dokan-dashboard-wrap").css("height",""),e(o).css("bottom",0),e(o).removeAttr("style");else{n.addClass("submenu-hovered");let t=n[0].getBoundingClientRect(),a=o.getBoundingClientRect(),i=e(".dokan-dashboard-wrap"),r=i[0].getBoundingClientRect(),d=Math.min(r.bottom,r.height);if(d0)e(o).css("bottom",0),a=o.getBoundingClientRect(),a.top<0&&(e(o).css("bottom","unset"),e(o).css("top",0));else{e(o).css("bottom",n);let t=e(".dokan-dash-sidebar")[0].getBoundingClientRect(),i=e(".entry-header")[0].getBoundingClientRect();a=o.getBoundingClientRect(),a.bottom>t.bottom?n+=a.bottom-t.bottom:a.bottom-i.bottom'+dokan[n]+"
    "),a.parent().find(".wc_error_tip").css("left",o.left+a.width()-a.width()/2-e(".wc_error_tip").width()/2).css("top",o.top+a.height()).fadeIn("100"))})).on("wc_remove_error_tip",(function(t,a,n){a.parent().find(".wc_error_tip."+n).fadeOut("100",(function(){e(this).remove()}))})).on("click",(function(){e(".wc_error_tip").fadeOut("100",(function(){e(this).remove()}))})).on("blur",".wc_input_decimal[type=text], .wc_input_price[type=text], .wc_input_country_iso[type=text]",(function(){e(".wc_error_tip").fadeOut("100",(function(){e(this).remove()}))})).on("change",".wc_input_price[type=text], .wc_input_decimal[type=text], .wc-order-totals #refund_amount[type=text]",(function(){var t,a,n=dokan.decimal_point;(e(this).is(".wc_input_price")||e(this).is("#refund_amount"))&&(n=dokan.mon_decimal_point),t=new RegExp("[^-0-9%\\"+n+"]+","gi"),a=new RegExp("\\"+n+"+","gi");var o=e(this).val(),i=o.replace(t,"").replace(a,n);o!==i&&e(this).val(i)})).on("keyup",".wc_input_price[type=text], .wc_input_decimal[type=text], .wc_input_country_iso[type=text], .wc-order-totals #refund_amount[type=text]",(function(){var t,a,n,o=!1;e(this).is(".wc_input_price")||e(this).is("#refund_amount")?(o=!0,t=new RegExp("[^-0-9%\\"+dokan.mon_decimal_point+"]+","gi"),n=new RegExp("[^\\"+dokan.mon_decimal_point+"]","gi"),a="i18n_mon_decimal_error"):e(this).is(".wc_input_country_iso")?(t=new RegExp("([^A-Z])+|(.){3,}","im"),a="i18n_country_iso_error"):(o=!0,t=new RegExp("[^-0-9%\\"+dokan.decimal_point+"]+","gi"),n=new RegExp("[^\\"+dokan.decimal_point+"]","gi"),a="i18n_decimal_error");var i=e(this).val(),r=i.replace(t,"");o&&1=parseFloat(window.accounting.unformat(t.val(),dokan.mon_decimal_point))&&e(this).val("")})).on("keyup","#_sale_price.wc_input_price[type=text], .wc_input_price[name^=variable_sale_price], #_subscription_sale_price.wc_input_price[type=text]",(function(){var t,a=e(this),n=e("#product_type");t=-1!==a.attr("name").indexOf("variable")?a.parents(".variable_pricing").find(".wc_input_price[name^=variable_regular_price]"):n.length&&"subscription"===n.find(":selected").val()?e("#_subscription_price"):e("#_regular_price"),parseFloat(window.accounting.unformat(a.val(),dokan.mon_decimal_point))>=parseFloat(window.accounting.unformat(t.val(),dokan.mon_decimal_point))?e(document.body).triggerHandler("wc_add_error_tip",[e(this),"i18n_sale_less_than_regular_error"]):e(document.body).triggerHandler("wc_remove_error_tip",[e(this),"i18n_sale_less_than_regular_error"])})).on("init_tooltips",(function(){e(".tips, .help_tip, .woocommerce-help-tip").tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200}),e(".column-wc_actions .wc-action-button").tipTip({fadeIn:50,fadeOut:50,delay:200}),e(".parent-tips").each((function(){e(this).closest("a, th").attr("data-tip",e(this).data("tip")).tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200}).css("cursor","help")}))})),e("#dokan-navigation .dokan-dashboard-menu li.has-submenu:not(.active)").on("mouseover",(e=>{t(e)})).on("mouseout",(e=>{t(e,!0)}))}(jQuery),window.dokan_show_delete_prompt=async function(e,t){e.preventDefault();let a=await dokan_sweetalert(t,{action:"confirm",icon:"warning"});if(a.isConfirmed&&void 0!==e.target.href)window.location.href=e.target.href;else{if(!a.isConfirmed||void 0===e.target.dataset.url)return!1;window.location.href=e.target.dataset.url}},window.dokan_bulk_delete_prompt=async function(e,t,a,n){"delete"===jQuery(a).val()&&(e.preventDefault(),(await dokan_sweetalert(t,{action:"confirm",icon:"warning"})).isConfirmed&&jQuery(n).submit())},function(e){var t={query:{},form:null,cateItemStringArray:[],init:function(){e("#dokan-store-listing-filter-wrap .sort-by #stores_orderby").on("change",this.buildSortByQuery),e("#dokan-store-listing-filter-wrap .toggle-view span").on("click",this.toggleView),e("#dokan-store-listing-filter-wrap .dokan-store-list-filter-button, #dokan-store-listing-filter-wrap .dokan-icons, #dokan-store-listing-filter-form-wrap .apply-filter #cancel-filter-btn ").on("click",this.toggleForm),e("#dokan-store-listing-filter-form-wrap .store-search-input").on("change",this.buildSearchQuery),e("#dokan-store-listing-filter-form-wrap .apply-filter #apply-filter-btn").on("click",this.submitForm),this.maybeHideListView();const a=t;a.form=document.forms.dokan_store_lists_filter_form;const n=a.getLocal("dokan-layout");if(n){const t=e(".toggle-view span");a.setView(n,t)}const o=a.getParams();if(o.length){let t=!1;o.forEach((function(e){const n=Object.keys(e),i=Object.values(e);(!n.includes("stores_orderby")||o.length>1)&&(t=!0),a.setParams(n,i)})),t&&e("#dokan-store-listing-filter-form-wrap").slideToggle()}var i,r;e("#dokan-store-listing-filter-form-wrap").length&&e(".store-search-input").on("keypress",(function(t){if(13==t.which)return e("#dokan-store-listing-filter-form-wrap").submit(),!1})),e("body").on("click",(function(t){e(t.target).is("div#dokan-store-products-search-result li")||(e("#dokan-store-products-search-result").html(""),e("#dokan-store-products-search-result").removeClass("dokan-store-products-search-has-results"))})),e("body").on("keyup",".dokan-store-products-filter-search",(i=function(t){t.preventDefault();var a=e(this),n=a.val(),o=a.data("store_id");n&&(e(".dokan-store-products-filter-search").addClass("dokan-ajax-search-loader"),e("#dokan-store-products-search-result").removeClass("dokan-store-products-search-has-results"),e("#dokan-store-products-search-result").hide(),e("#dokan-store-products-search-result").html(""),jQuery.ajax({type:"post",dataType:"json",url:dokan.ajaxurl,data:{search_term:n,store_id:o,_wpnonce:dokan.store_product_search_nonce,action:"dokan_store_product_search_action"},success:function(t){e(".dokan-store-products-filter-search").removeClass("dokan-ajax-search-loader"),e("#dokan-store-products-search-result").show(),e("#dokan-store-products-search-result").addClass("dokan-store-products-search-has-results"),"success"==t.type?e("#dokan-store-products-search-result").html("
      "+t.data_list+"
    "):e("#dokan-store-products-search-result").html('
      '+t.data_list+"
    ")}}))},500,r=0,function(){var e=this,t=arguments;clearTimeout(r),r=setTimeout((function(){i.apply(e,t)}),500)}))},buildSortByQuery:function(e){const a=t;a.query.stores_orderby=e.target.value,a.submitForm(e)},toggleView:function(a){const n=t,o=e(a.target),i=o.parent().find("span"),r=o.data("view");n.setView(r,i),n.setLocal("dokan-layout",r)},setView:function(t,a){if(void 0===t||t.length<1||void 0===a||a.length<1)return;const n=e("#dokan-seller-listing-wrap");[...a].forEach((function(a){const o=e(a);t===o.data("view")?(o.addClass("active"),n.addClass(t)):(o.removeClass("active"),n.removeClass(o.data("view")))}))},toggleForm:function(t){t.preventDefault(),e("#dokan-store-listing-filter-form-wrap").slideToggle()},buildSearchQuery:function(e){e.target.value?t.query.dokan_seller_search=e.target.value:delete t.query.dokan_seller_search},submitForm:function(a){a.preventDefault(),t.query._store_filter_nonce&&delete t.query._store_filter_nonce,t.query._store_filter_nonce=e('input[name="_store_filter_nonce"]').first().val();const n=decodeURIComponent(e.param(t.query)),o="/page",i=window.location.pathname,r=i.includes(o)?i.substr(0,i.indexOf(o)):"";window.history.pushState(null,null,`${r}?${n}`),window.location.reload()},setLocal:function(e,t){window.localStorage.setItem(e,t)},getLocal:function(e){return window.localStorage.getItem(e)},setParams:function(a,n){const o=t,i=o.form?o.form.elements:"",r=document.forms.stores_sorting,d=r?r.elements:"";Object.values(d).forEach((function(t){t.name===a[0]&&e(t).val(n[0])})),Object.values(i).forEach((function(t){if(a.includes(t.name)&&("checkbox"===t.type?t.checked=!!["yes","true","1"].includes(n[0]):["text","search"].includes(t.type)&&(t.value=n[0])),a[0].includes("store_categories[")||a[0].includes("store_category[")){const t=n[0].split(" ").join("-"),a=e(`[data-slug=${t}]`);o.cateItemStringArray.includes(a.text().trim())||o.cateItemStringArray.push(a.text().trim()),a.addClass("dokan-btn-theme")}else if("rating"===a[0]){const t=n[0].split(" ").join("-");e(`[data-${a[0]}=${t}]`).addClass("active"),e(`[data-rating=${t}]`).parent().addClass("selected")}})),a.forEach((function(e,t){e.includes("[")||(o.query[e]=n[t])}))},getParams:function(){const e=new URLSearchParams(location.search),t=[];return e.forEach((function(e,a){t.push({[a]:e})})),t},maybeHideListView:function(){const a=t;window.matchMedia("(max-width: 767px)").matches&&"list-view"===a.getLocal("dokan-layout")&&a.setLocal("dokan-layout","grid-view"),e(window).on("resize",(function(){e(this).width()<767?(e("#dokan-seller-listing-wrap").removeClass("list-view"),e("#dokan-seller-listing-wrap").addClass("grid-view")):(e(".toggle-view.item span").last().removeClass("active"),e(".toggle-view.item span").first().addClass("active"))}))}};window.dokan&&(window.dokan.storeLists=t,window.dokan.storeLists.init())}(jQuery),(e=>{const t={init:()=>{e("#dokan-request-withdraw-button").on("click",(e=>{e.preventDefault(),t.openRequestWithdrawWindow()})),e(".dokan-withdraw-make-default-button").on("click",(e=>{e.preventDefault(),t.makeDefault(e)})),e("#dokan-withdraw-request-submit").on("click",(e=>{t.handleWithdrawRequest(e)})),e("#dokan-withdraw-display-schedule-popup").on("click",(e=>{t.opensScheduleWindow(e)})),e("#dokan-withdraw-schedule-request-submit").on("click",(e=>{t.handleScheduleChangeRequest(e)})),e("input[name='withdraw-schedule']").on("change",(e=>{t.handleScheduleChange(e)}))},openRequestWithdrawWindow:()=>{const a=wp.template("withdraw-request-popup"),n=e("#dokan-withdraw-request-popup").iziModal({width:690,overlayColor:"rgba(0, 0, 0, 0.8)",headerColor:dokan.modal_header_color});n.iziModal("setContent",a().trim()),n.iziModal("open"),t.init()},opensScheduleWindow:()=>{const a=wp.template("withdraw-schedule-popup"),n=e("#dokan-withdraw-schedule-popup").iziModal({width:690,overlayColor:"rgba(0, 0, 0, 0.8)",headerColor:dokan.modal_header_color});n.iziModal("setContent",a().trim()),n.iziModal("open"),t.init()},makeDefault:t=>{const a=e(t.target),n=e("#dokan-withdraw-payment-method-list");n.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,{action:"dokan_withdraw_handle_make_default_method",nonce:n.data("security"),method:a.data("method")},(e=>{e.success?(dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"success",showConfirmButton:!1,timer:2e3,timerProgressBar:!0}),n.unblock(),window.location.reload()):(dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"error",showConfirmButton:!1,timer:2e3,timerProgressBar:!0}),n.unblock())}))},handleWithdrawRequest:t=>{t.preventDefault();const a=e("input#withdraw-amount").val(),n=e("input#dokan_withdraw_nonce").val(),o=e("#withdraw-request-popup"),i=e("#withdraw-method").val();o.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,{action:"dokan_handle_withdraw_request",_handle_withdraw_request:n,amount:a,method:i},(async e=>{e.success?await dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"success",showConfirmButton:!1,timer:2e3,timerProgressBar:!0,didOpen:e=>{setTimeout((function(){o.unblock(),window.location.reload()}),2e3)}}):(dokan_sweetalert("",{icon:"error",html:e.data}),o.unblock())}))},handleScheduleChangeRequest:t=>{t.preventDefault();const a=e("input[name='withdraw-schedule']:checked").val(),n=e("#dokan-withdraw-schedule-request-submit").data("security"),o=e("#withdraw-schedule-popup"),i=e("#withdraw-remaining-amount").val(),r=e("#minimum-withdraw-amount").val(),d=e("#preferred-payment-method").val();o.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,{action:"dokan_handle_withdraw_schedule_change_request",nonce:n,schedule:a,reserve:i,minimum:r,method:d},(e=>{e.success?(dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"success",showConfirmButton:!1,timer:2e3,timerProgressBar:!0}),o.unblock(),window.location.reload()):(dokan_sweetalert("",{icon:"error",html:e.data}),o.unblock())}))},handleScheduleChange:t=>{const a=e(t.target).data("next-schedule");e("#dokan-withdraw-next-scheduled-date").html(a)}};e(document).ready((function(){t.init()}))})(jQuery)})(); \ No newline at end of file diff --git a/assets/js/vue-admin.js b/assets/js/vue-admin.js index 9a7962366d..532b04d0f9 100644 --- a/assets/js/vue-admin.js +++ b/assets/js/vue-admin.js @@ -1,2 +1,2 @@ /*! For license information please see vue-admin.js.LICENSE.txt */ -(()=>{var e={302:e=>{e.exports=function(e,t,a){return ta?a:e:et?t:e}},850:e=>{function t(e,t,a){var i,s,n,o,r;function l(){var d=Date.now()-o;d=0?i=setTimeout(l,t-d):(i=null,a||(r=e.apply(n,s),n=s=null))}null==t&&(t=100);var d=function(){n=this,s=arguments,o=Date.now();var d=a&&!i;return i||(i=setTimeout(l,t)),d&&(r=e.apply(n,s),n=s=null),r};return d.clear=function(){i&&(clearTimeout(i),i=null)},d.flush=function(){i&&(r=e.apply(n,s),n=s=null,clearTimeout(i),i=null)},d}t.debounce=t,e.exports=t},882:(e,t,a)=>{var i="Expected a function",s=NaN,n="[object Symbol]",o=/^\s+|\s+$/g,r=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,d=/^0o[0-7]+$/i,c=parseInt,u="object"==typeof a.g&&a.g&&a.g.Object===Object&&a.g,p="object"==typeof self&&self&&self.Object===Object&&self,h=u||p||Function("return this")(),f=Object.prototype.toString,m=Math.max,v=Math.min,_=function(){return h.Date.now()};function g(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function k(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&f.call(e)==n}(e))return s;if(g(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=g(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(o,"");var a=l.test(e);return a||d.test(e)?c(e.slice(2),a?2:8):r.test(e)?s:+e}e.exports=function(e,t,a){var s=!0,n=!0;if("function"!=typeof e)throw new TypeError(i);return g(a)&&(s="leading"in a?!!a.leading:s,n="trailing"in a?!!a.trailing:n),function(e,t,a){var s,n,o,r,l,d,c=0,u=!1,p=!1,h=!0;if("function"!=typeof e)throw new TypeError(i);function f(t){var a=s,i=n;return s=n=void 0,c=t,r=e.apply(i,a)}function b(e){var a=e-d;return void 0===d||a>=t||a<0||p&&e-c>=o}function C(){var e=_();if(b(e))return y(e);l=setTimeout(C,function(e){var a=t-(e-d);return p?v(a,o-(e-c)):a}(e))}function y(e){return l=void 0,h&&s?f(e):(s=n=void 0,r)}function w(){var e=_(),a=b(e);if(s=arguments,n=this,d=e,a){if(void 0===l)return function(e){return c=e,l=setTimeout(C,t),u?f(e):r}(d);if(p)return l=setTimeout(C,t),f(d)}return void 0===l&&(l=setTimeout(C,t)),r}return t=k(t)||0,g(a)&&(u=!!a.leading,o=(p="maxWait"in a)?m(k(a.maxWait)||0,t):o,h="trailing"in a?!!a.trailing:h),w.cancel=function(){void 0!==l&&clearTimeout(l),c=0,s=d=n=l=void 0},w.flush=function(){return void 0===l?r:y(_())},w}(e,t,{leading:s,maxWait:t,trailing:n})}},490:function(e,t){var a,i;a=function e(){"use strict";var t="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==t?t:{},a=!t.document&&!!t.postMessage,i=t.IS_PAPA_WORKER||!1,s={},n=0,o={parse:function(a,i){var r=(i=i||{}).dynamicTyping||!1;if(C(r)&&(i.dynamicTypingFunction=r,r={}),i.dynamicTyping=r,i.transform=!!C(i.transform)&&i.transform,i.worker&&o.WORKERS_SUPPORTED){var l=function(){if(!o.WORKERS_SUPPORTED)return!1;var a,i,r=(a=t.URL||t.webkitURL||null,i=e.toString(),o.BLOB_URL||(o.BLOB_URL=a.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",i,")();"],{type:"text/javascript"})))),l=new t.Worker(r);return l.onmessage=v,l.id=n++,s[l.id]=l}();return l.userStep=i.step,l.userChunk=i.chunk,l.userComplete=i.complete,l.userError=i.error,i.step=C(i.step),i.chunk=C(i.chunk),i.complete=C(i.complete),i.error=C(i.error),delete i.worker,void l.postMessage({input:a,config:i,workerId:l.id})}var h=null;return o.NODE_STREAM_INPUT,"string"==typeof a?(a=function(e){return 65279===e.charCodeAt(0)?e.slice(1):e}(a),h=i.download?new d(i):new u(i)):!0===a.readable&&C(a.read)&&C(a.on)?h=new p(i):(t.File&&a instanceof File||a instanceof Object)&&(h=new c(i)),h.stream(a)},unparse:function(e,t){var a=!1,i=!0,s=",",n="\r\n",r='"',l=r+r,d=!1,c=null,u=!1;!function(){if("object"==typeof t){if("string"!=typeof t.delimiter||o.BAD_DELIMITERS.filter((function(e){return-1!==t.delimiter.indexOf(e)})).length||(s=t.delimiter),("boolean"==typeof t.quotes||"function"==typeof t.quotes||Array.isArray(t.quotes))&&(a=t.quotes),"boolean"!=typeof t.skipEmptyLines&&"string"!=typeof t.skipEmptyLines||(d=t.skipEmptyLines),"string"==typeof t.newline&&(n=t.newline),"string"==typeof t.quoteChar&&(r=t.quoteChar),"boolean"==typeof t.header&&(i=t.header),Array.isArray(t.columns)){if(0===t.columns.length)throw new Error("Option columns is empty");c=t.columns}void 0!==t.escapeChar&&(l=t.escapeChar+r),("boolean"==typeof t.escapeFormulae||t.escapeFormulae instanceof RegExp)&&(u=t.escapeFormulae instanceof RegExp?t.escapeFormulae:/^[=+\-@\t\r].*$/)}}();var p=new RegExp(f(r),"g");if("string"==typeof e&&(e=JSON.parse(e)),Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return h(null,e,d);if("object"==typeof e[0])return h(c||Object.keys(e[0]),e,d)}else if("object"==typeof e)return"string"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields||c),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:"object"==typeof e.data[0]?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||"object"==typeof e.data[0]||(e.data=[e.data])),h(e.fields||[],e.data||[],d);throw new Error("Unable to serialize unrecognized input");function h(e,t,a){var o="";"string"==typeof e&&(e=JSON.parse(e)),"string"==typeof t&&(t=JSON.parse(t));var r=Array.isArray(e)&&0=this._config.preview;if(i)t.postMessage({results:r,workerId:o.WORKER_ID,finished:d});else if(C(this._config.chunk)&&!a){if(this._config.chunk(r,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);r=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(r.data),this._completeResults.errors=this._completeResults.errors.concat(r.errors),this._completeResults.meta=r.meta),this._completed||!d||!C(this._config.complete)||r&&r.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),d||r&&r.meta.paused||this._nextChunk(),r}this._halted=!0},this._sendError=function(e){C(this._config.error)?this._config.error(e):i&&this._config.error&&t.postMessage({workerId:o.WORKER_ID,error:e,finished:!1})}}function d(e){var t;(e=e||{}).chunkSize||(e.chunkSize=o.RemoteChunkSize),l.call(this,e),this._nextChunk=a?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(t=new XMLHttpRequest,this._config.withCredentials&&(t.withCredentials=this._config.withCredentials),a||(t.onload=b(this._chunkLoaded,this),t.onerror=b(this._chunkError,this)),t.open(this._config.downloadRequestBody?"POST":"GET",this._input,!a),this._config.downloadRequestHeaders){var e=this._config.downloadRequestHeaders;for(var i in e)t.setRequestHeader(i,e[i])}if(this._config.chunkSize){var s=this._start+this._config.chunkSize-1;t.setRequestHeader("Range","bytes="+this._start+"-"+s)}try{t.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}a&&0===t.status&&this._chunkError()}},this._chunkLoaded=function(){4===t.readyState&&(t.status<200||400<=t.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:t.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(e){var t=e.getResponseHeader("Content-Range");return null===t?-1:parseInt(t.substring(t.lastIndexOf("/")+1))}(t),this.parseChunk(t.responseText)))},this._chunkError=function(e){var a=t.statusText||e;this._sendError(new Error(a))}}function c(e){var t,a;(e=e||{}).chunkSize||(e.chunkSize=o.LocalChunkSize),l.call(this,e);var i="undefined"!=typeof FileReader;this.stream=function(e){this._input=e,a=e.slice||e.webkitSlice||e.mozSlice,i?((t=new FileReader).onload=b(this._chunkLoaded,this),t.onerror=b(this._chunkError,this)):t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(t.error)}}function u(e){var t;l.call(this,e=e||{}),this.stream=function(e){return t=e,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var e,a=this._config.chunkSize;return a?(e=t.substring(0,a),t=t.substring(a)):(e=t,t=""),this._finished=!t,this.parseChunk(e)}}}function p(e){l.call(this,e=e||{});var t=[],a=!0,i=!1;this.pause=function(){l.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){l.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){i&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):a=!0},this._streamData=b((function(e){try{t.push("string"==typeof e?e:e.toString(this._config.encoding)),a&&(a=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}}),this),this._streamError=b((function(e){this._streamCleanUp(),this._sendError(e)}),this),this._streamEnd=b((function(){this._streamCleanUp(),i=!0,this._streamData("")}),this),this._streamCleanUp=b((function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)}),this)}function h(e){var t,a,i,s=Math.pow(2,53),n=-s,r=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,l=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,d=this,c=0,u=0,p=!1,h=!1,v=[],_={data:[],errors:[],meta:{}};if(C(e.step)){var g=e.step;e.step=function(t){if(_=t,w())y();else{if(y(),0===_.data.length)return;c+=t.data.length,e.preview&&c>e.preview?a.abort():(_.data=_.data[0],g(_,d))}}}function b(t){return"greedy"===e.skipEmptyLines?""===t.join("").trim():1===t.length&&0===t[0].length}function y(){return _&&i&&(S("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+o.DefaultDelimiter+"'"),i=!1),e.skipEmptyLines&&(_.data=_.data.filter((function(e){return!b(e)}))),w()&&function(){if(_)if(Array.isArray(_.data[0])){for(var t=0;w()&&t<_.data.length;t++)_.data[t].forEach(a);_.data.splice(0,1)}else _.data.forEach(a);function a(t,a){C(e.transformHeader)&&(t=e.transformHeader(t,a)),v.push(t)}}(),function(){if(!_||!e.header&&!e.dynamicTyping&&!e.transform)return _;function t(t,a){var i,s=e.header?{}:[];for(i=0;i=v.length?"__parsed_extra":v[i]),e.transform&&(o=e.transform(o,n)),o=x(n,o),"__parsed_extra"===n?(s[n]=s[n]||[],s[n].push(o)):s[n]=o}return e.header&&(i>v.length?S("FieldMismatch","TooManyFields","Too many fields: expected "+v.length+" fields but parsed "+i,u+a):i=i.length/2?"\r\n":"\r"}(s,l)),i=!1,e.delimiter)C(e.delimiter)&&(e.delimiter=e.delimiter(s),_.meta.delimiter=e.delimiter);else{var d=function(t,a,i,s,n){var r,l,d,c;n=n||[",","\t","|",";",o.RECORD_SEP,o.UNIT_SEP];for(var u=0;u=r)return z(!0)}else for(U=c,c++;;){if(-1===(U=o.indexOf(t,U+1)))return h||y.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:b.length,index:c}),q();if(U===m-1)return q(o.substring(c,U).replace(F,t));if(t!==d||o[U+1]!==d){if(t===d||0===U||o[U-1]!==d){-1!==O&&O=r)return z(!0);break}y.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:b.length,index:c}),U++}}else U++}return q();function B(e){b.push(e),x=c}function j(e){var t=0;if(-1!==e){var a=o.substring(U+1,e);a&&""===a.trim()&&(t=a.length)}return t}function q(e){return h||(void 0===e&&(e=o.substring(c)),w.push(e),c=m,B(w),k&&W()),z()}function Z(e){c=e,B(w),w=[],E=o.indexOf(i,c)}function z(e){return{data:b,errors:y,meta:{delimiter:a,linebreak:i,aborted:u,truncated:!!e,cursor:x+(p||0)}}}function W(){n(z()),b=[],y=[]}},this.abort=function(){u=!0},this.getCharIndex=function(){return c}}function v(e){var t=e.data,a=s[t.workerId],i=!1;if(t.error)a.userError(t.error,t.file);else if(t.results&&t.results.data){var n={abort:function(){i=!0,_(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:g,resume:g};if(C(a.userStep)){for(var o=0;o{var i,s,n;!function(o){"use strict";s=[a(311)],i=function(e){var t,a=window.Slick||{};(t=0,a=function(a,i){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:e(a),appendDots:e(a),arrows:!0,asNavFor:null,prevArrow:'',nextArrow:'',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(t,a){return e(' "),u.children(".save").on("click",(function(){var t=n.children("input").val();t!=e("#editable-post-name-full").text()?e.post(ajaxurl,{action:"sample-permalink",post_id:e("#dokan-edit-product-id").val(),new_slug:t,new_title:e("#post_title").val(),samplepermalinknonce:e("#samplepermalinknonce").val()},(function(a){var n=e("#edit-slug-box");n.html(a),n.hasClass("hidden")&&n.fadeIn("fast",(function(){n.removeClass("hidden")})),u.html(p),s.html(l),r.val(t),e(".edit-slug").focus(),e("#editable-post-name-full-dokan").val(e("#editable-post-name-full").html())})):u.children(".cancel").trigger("click")})),u.children(".cancel").on("click",(function(){e("#view-post-btn").show(),n.html(o),u.html(p),s.html(l),r.val(d),e(".edit-slug").focus()})),t=0;tm.length/4?"":m,n.html('').children("input").on("keydown",(function(e){var t=e.which;13===t&&(e.preventDefault(),u.children(".save").trigger("click")),27===t&&u.children(".cancel").trigger("click")})).on("keyup",(function(){r.val(this.value)})).focus()}()})),e("#dokan-edit-product-id").val()&&e("#post_title").val()&&e("#samplepermalinknonce").val()&&e.post(ajaxurl,{action:"sample-permalink",post_id:e("#dokan-edit-product-id").val(),new_slug:e("#edited-post-name-dokan").val(),new_title:e("#post_title").val(),samplepermalinknonce:e("#samplepermalinknonce").val()},(function(t){e("#edit-slug-box").html(t)})),e(window).on("load",(function(){e("input#_virtual:checked").length&&t()}))}))}(jQuery),jQuery((function(e){function t(e,t,a){jQuery('
    '+a+"
    ").css({top:t-16,left:e+20}).appendTo("body").fadeIn(200)}wp.customize,e(".datepicker").datepicker({dateFormat:"yy-mm-dd"}),e(".dokan-table tbody").on("click",".toggle-row",(function(){e(this).closest("tr").toggleClass("is-expanded")})),e(".dokan-start-date").datepicker({defaultDate:"",dateFormat:"yy-mm-dd",numberOfMonths:1,onSelect:function(t){let a=new Date(t);a.setDate(a.getDate()+1),e(".dokan-end-date").datepicker("option",{minDate:a})}}),e(".dokan-end-date").datepicker({defaultDate:"",dateFormat:"yy-mm-dd",numberOfMonths:1,onSelect:function(t){let a=new Date(t);a.setDate(a.getDate()-1),e("dokan-start-date").datepicker("option",{maxDate:a})}}),e(".tips").tooltip();var a=null,n=null;jQuery(".chart-placeholder").on("plothover",(function(e,o,i){if(i){if((a!=i.dataIndex||n!=i.seriesIndex)&&(a=i.dataIndex,n=i.seriesIndex,jQuery(".chart-tooltip").remove(),i.series.points.show||i.series.enable_tooltip)){var r=i.series.data[i.dataIndex][1];tooltip_content="",i.series.prepend_label&&(tooltip_content=tooltip_content+i.series.label+": "),i.series.prepend_tooltip&&(tooltip_content+=i.series.prepend_tooltip),tooltip_content+=r,i.series.append_tooltip&&(tooltip_content+=i.series.append_tooltip),i.series.pie.show?t(o.pageX,o.pageY,tooltip_content):t(i.pageX,i.pageY,tooltip_content)}}else jQuery(".chart-tooltip").remove(),a=null}))})),function(e){e.validator.setDefaults({ignore:":hidden"});var t=function(t,a){e(a).closest(".dokan-form-group").addClass("has-error").append(t)},a=function(t,a){e(a).closest(".dokan-form-group").removeClass("has-error"),e(t).remove()},n=wp.customize,o='input[name="settings[bank][disconnect]"], input[name="settings[paypal][disconnect]"], input[name="settings[skrill][disconnect]"], input[name="settings[dokan_custom][disconnect]"]',i={init:function(){return e("a.dokan-banner-drag").on("click",this.imageUpload),e("a.dokan-remove-banner-image").on("click",this.removeBanner),e("a.dokan-pro-gravatar-drag").on("click",this.gragatarImageUpload),e("a.dokan-gravatar-drag").on("click",this.simpleImageUpload),e("a.dokan-remove-gravatar-image").on("click",this.removeGravatar),e(".dokan-update-setting-top-button").on("click",(function(){e("input[name='dokan_update_store_settings']").trigger("click")})),this.validateForm(this),e(".dokan_payment_disconnect_btn").on("click",(function(){var t=e(this).closest("form"),a=e("form#"+t.attr("id"));e(":input",t).not(":button, :submit, :reset, :hidden, :checkbox").val("").prop("selected",!1);var n=t.serializeArray().reduce((function(e,t){return e[t.name]=t.value,e}),{});n[e(this).attr("name")]="",n.form_id=t.attr("id"),n.action="dokan_settings",i.handleRequest(a,n,!0)})),!1},calculateImageSelectOptions:function(e,t){var a,o,i,r,d,s,l=parseInt(dokan.store_banner_dimension.width,10),c=parseInt(dokan.store_banner_dimension.height,10),u=!!parseInt(dokan.store_banner_dimension["flex-width"],10),p=!!parseInt(dokan.store_banner_dimension["flex-height"],10);return d=e.get("width"),r=e.get("height"),this.headerImage=new n.HeaderTool.ImageModel,this.headerImage.set({themeWidth:l,themeHeight:c,themeFlexWidth:u,themeFlexHeight:p,imageWidth:d,imageHeight:r}),t.set("canSkipCrop",!this.headerImage.shouldBeCropped()),(o=d)/(i=r)>(a=l/c)?l=(c=i)*a:c=(l=o)/a,s={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:d,imageHeight:r,x1:0,y1:0,x2:l,y2:c},!1===p&&!1===u&&(s.aspectRatio=l+":"+c),!1===p&&(s.maxHeight=c),!1===u&&(s.maxWidth=l),s},onSelect:function(){this.frame.setState("cropper")},onCropped:function(e){var t=e.url,a=e.attachment_id,n=e.width,o=e.height;this.setImageFromURL(t,a,n,o)},onSkippedCrop:function(e){var t=e.get("url"),a=e.get("width"),n=e.get("height");this.setImageFromURL(t,e.id,a,n)},setImageFromURL:function(t,a,n,o){var i=!1;if(e(this.uploadBtn).hasClass("dokan-banner-drag"))(r=e(this.uploadBtn).closest(".dokan-banner")).find("input.dokan-file-field").val(a),r.find("img.dokan-banner-img").attr("src",t),e(this.uploadBtn).parent().siblings(".image-wrap",r).removeClass("dokan-hide"),e(this.uploadBtn).parent(".button-area").addClass("dokan-hide"),i=!0;else if(e(this.uploadBtn).hasClass("dokan-pro-gravatar-drag")){var r;(r=e(this.uploadBtn).closest(".dokan-gravatar")).find("input.dokan-file-field").val(a),r.find("img.dokan-gravatar-img").attr("src",t),i=!0,e(this.uploadBtn).parent().siblings(".gravatar-wrap",r).removeClass("dokan-hide"),e(this.uploadBtn).parent(".gravatar-button-area").addClass("dokan-hide")}!0===i&&(e(window).on("beforeunload",(function(){return dokan.dokan_banner_added_alert_msg})),e(document).ready((function(){e("#store-form").on("submit",(function(t){return e(window).off("beforeunload"),!0}))})))},removeImage:function(){n.HeaderTool.currentHeader.trigger("hide"),n.HeaderTool.CombinedList.trigger("control:removeImage")},imageUpload:function(e){e.preventDefault();var t=i;t.uploadBtn=this,t.frame=wp.media({multiple:!1,button:{text:dokan.selectAndCrop,close:!1},states:[new wp.media.controller.Library({title:dokan.chooseImage,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:dokan.store_banner_dimension.width,suggestedHeight:dokan.store_banner_dimension.height}),new wp.media.controller.Cropper({suggestedWidth:5e3,imgSelectOptions:t.calculateImageSelectOptions})]}),t.frame.on("select",t.onSelect,t),t.frame.on("cropped",t.onCropped,t),t.frame.on("skippedcrop",t.onSkippedCrop,t),t.frame.open()},calculateImageSelectOptionsProfile:function(e,t){var a,o,i,r,d,s,l=150,c=150,u=!!parseInt(dokan.store_banner_dimension["flex-width"],10),p=!!parseInt(dokan.store_banner_dimension["flex-height"],10);return d=e.get("width"),r=e.get("height"),this.headerImage=new n.HeaderTool.ImageModel,this.headerImage.set({themeWidth:l,themeHeight:c,themeFlexWidth:u,themeFlexHeight:p,imageWidth:d,imageHeight:r}),t.set("canSkipCrop",!this.headerImage.shouldBeCropped()),(o=d)/(i=r)>(a=l/c)?l=(c=i)*a:c=(l=o)/a,s={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:d,imageHeight:r,x1:0,y1:0,x2:l,y2:c},!1===p&&!1===u&&(s.aspectRatio=l+":"+c),!1===p&&(s.maxHeight=c),!1===u&&(s.maxWidth=l),s},simpleImageUpload:function(t){t.preventDefault();var a,n=e(this);a||(a=wp.media.frames.file_frame=wp.media({title:jQuery(this).data("uploader_title"),button:{text:jQuery(this).data("uploader_button_text")},multiple:!1})).on("select",(function(){var e=a.state().get("selection").first().toJSON(),t=n.closest(".dokan-gravatar");t.find("input.dokan-file-field").val(e.id),t.find("img.dokan-gravatar-img").attr("src",e.url),n.parent().siblings(".gravatar-wrap",t).removeClass("dokan-hide"),n.parent(".gravatar-button-area").addClass("dokan-hide")})),a.open()},gragatarImageUpload:function(e){e.preventDefault();var t=i;t.uploadBtn=this,t.frame=wp.media({multiple:!1,button:{text:dokan.selectAndCrop,close:!1},states:[new wp.media.controller.Library({title:dokan.chooseImage,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:150,suggestedHeight:150}),new wp.media.controller.Cropper({imgSelectOptions:t.calculateImageSelectOptionsProfile})]}),t.frame.on("select",t.onSelect,t),t.frame.on("cropped",t.onCropped,t),t.frame.on("skippedcrop",t.onSkippedCrop,t),t.frame.open()},submitSettings:function(t){"undefined"!=typeof tinyMCE&&tinyMCE.triggerSave();var a=e("form#"+t),n=a.serialize()+"&action=dokan_settings&form_id="+t;i.handleRequest(a,n,!1)},handleRequest:function(t,a,n){n?t.find(".ajax_prev.disconnect").append(' '):t.find(".ajax_prev.save").append(' '),e(".dokan-update-setting-top-button span.dokan-loading").remove(),e(".dokan-update-setting-top-button").append(' '),e.post(dokan.ajaxurl,a,(function(a){t.find("span.dokan-loading").remove(),e(".dokan-update-setting-top-button span.dokan-loading").remove(),e("html,body").animate({scrollTop:e(".dokan-dashboard-header").offset().top}),a.success?(e(".dokan-ajax-response").html(e("
    ",{class:"dokan-alert dokan-alert-success",html:"

    "+a.data.msg+"

    "})),e(".dokan-ajax-response").append(a.data.progress),dokan&&dokan.storeProgressBar&&dokan.storeProgressBar.init(),o=o.replaceAll("input","button"),n?t.find(o).addClass("dokan-hide"):t.find(o).removeClass("dokan-hide")):e(".dokan-ajax-response").html(e("
    ",{class:"dokan-alert dokan-alert-danger",html:"

    "+a.data+"

    "}))}))},validateForm:function(n){e("form#settings-form, form#profile-form, form#store-form, form#payment-form").validate({submitHandler:function(e){n.submitSettings(e.getAttribute("id"))},errorElement:"span",errorClass:"error",errorPlacement:t,success:a,ignore:".select2-search__field, :hidden, .mapboxgl-ctrl-geocoder--input"})},removeBanner:function(t){t.preventDefault();var a=e(this).closest(".image-wrap"),n=a.siblings(".button-area");a.find("input.dokan-file-field").val("0"),a.addClass("dokan-hide"),n.removeClass("dokan-hide")},removeGravatar:function(t){t.preventDefault();var a=e(this).closest(".gravatar-wrap"),n=a.siblings(".gravatar-button-area");a.find("input.dokan-file-field").val("0"),a.addClass("dokan-hide"),n.removeClass("dokan-hide")}},r={init:function(){this.withdrawValidate(this)},withdrawValidate:function(n){e("form.withdraw").validate({errorElement:"span",errorClass:"error",errorPlacement:t,success:a})}},d={init:function(){this.validate(this)},validate:function(a){e("form#dokan-form-contact-seller").validate({errorPlacement:t,errorElement:"span",success:function(e,t){e.removeClass("error"),e.remove()},submitHandler:async function(t,a){a.preventDefault(),e(t).block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}}),await dokan_execute_recaptcha("form#dokan-form-contact-seller .dokan_recaptcha_token","dokan_contact_seller_recaptcha");var n=e(t).serialize();e.post(dokan.ajaxurl,n,(function(a){e(t).unblock(),void 0!==a.data&&e(t).find(".ajax-response").html(a.data),e(t).find("input[type=text], input[type=email], textarea, input[name=dokan_recaptcha_token]").val("").removeClass("valid")}))}})}};e((function(){i.init(),r.init(),d.init(),e(".dokan-form-horizontal").on("change","input[type=checkbox]#lbl_setting_minimum_quantity",(function(){var t=e(".show_if_needs_sw_discount");e(this).is(":checked")?(t.find('input[type="number"]').val(""),t.slideDown("slow")):t.slideUp("slow")}))}))}(jQuery),function(e){var t=DokanValidateMsg;t.maxlength=e.validator.format(t.maxlength_msg),t.minlength=e.validator.format(t.minlength_msg),t.rangelength=e.validator.format(t.rangelength_msg),t.range=e.validator.format(t.range_msg),t.max=e.validator.format(t.max_msg),t.min=e.validator.format(t.min_msg),e.validator.messages=t,e(document).on("click","#dokan_store_tnc_enable",(function(t){e(this).is(":checked")?e("#dokan_tnc_text").show():e("#dokan_tnc_text").hide()})).ready((function(t){e("#dokan_store_tnc_enable").is(":checked")?e("#dokan_tnc_text").show():e("#dokan_tnc_text").hide()}))}(jQuery),function(e){var t="undefined"!=typeof wp&&wp.customize&&wp.customize.selectiveRefresh;function a(){dokan.store_banner_dimension.width;var t=dokan.store_banner_dimension.height/dokan.store_banner_dimension.width*e("#dokan-content").width();e(".dokan-profile-frame-wrapper .profile-info-img.dummy-image").css({height:t})}a(),e(window).on("resize",(function(e){a()})),t&&wp.customize.selectiveRefresh.bind("partial-content-rendered",(function(e){console.log("placement",e),"store_header_template"===e.partial.id&&a()})),e(":input.dokan-product-search").filter(":not(.enhanced)").each((function(){var t={allowClear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"3",escapeMarkup:function(e){return e},language:{errorLoading:function(){return dokan.i18n_searching},inputTooLong:function(e){var t=e.input.length-e.maximum;return 1===t?dokan.i18n_input_too_long_1:dokan.i18n_input_too_long_n.replace("%qty%",t)},inputTooShort:function(e){var t=e.minimum-e.input.length;return 1===t?dokan.i18n_input_too_short_1:dokan.i18n_input_too_short_n.replace("%qty%",t)},loadingMore:function(){return dokan.i18n_load_more},maximumSelected:function(e){return 1===e.maximum?dokan.i18n_selection_too_long_1:dokan.i18n_selection_too_long_n.replace("%qty%",e.maximum)},noResults:function(){return dokan.i18n_no_matches},searching:function(){return dokan.i18n_searching}},ajax:{url:dokan.ajaxurl,dataType:"json",delay:250,data:function(t){return{term:t.term,action:e(this).data("action")||"dokan_json_search_products_and_variations",security:dokan.search_products_nonce,exclude:e(this).data("exclude"),user_ids:e(this).data("user_ids"),include:e(this).data("include"),limit:e(this).data("limit")}},processResults:function(t){var a=[];return t&&e.each(t,(function(e,t){a.push({id:e,text:t})})),{results:a}},cache:!0}};if(e(this).select2(t).addClass("enhanced"),e(this).data("sortable")){var a=e(this),n=e(this).next(".select2-container").find("ul.select2-selection__rendered");n.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:!0,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){e(n.find(".select2-selection__choice").get().reverse()).each((function(){var t=e(this).data("data").id,n=a.find('option[value="'+t+'"]')[0];a.prepend(n)}))}})}})),selected_items=[],e("#cb-select-all").on("change",(function(t){var a=e(this),n=e(".cb-select-items");a.is(":checked")?n.each((function(t,a){e(a).prop("checked","checked")})):n.each((function(t,a){e(a).prop("checked",""),selected_items.pop()}))}))}(jQuery),function(e){function t(t,a){const n=e(t.target).closest("li.has-submenu");n.find(".navigation-submenu").each(((t,o)=>{if(a)n.removeClass("submenu-hovered"),e(".dokan-dashboard-wrap").css("height",""),e(o).css("bottom",0),e(o).removeAttr("style");else{n.addClass("submenu-hovered");let t=n[0].getBoundingClientRect(),a=o.getBoundingClientRect(),i=e(".dokan-dashboard-wrap"),r=i[0].getBoundingClientRect(),d=Math.min(r.bottom,r.height);if(d0)e(o).css("bottom",0),a=o.getBoundingClientRect(),a.top<0&&(e(o).css("bottom","unset"),e(o).css("top",0));else{e(o).css("bottom",n);let t=e(".dokan-dash-sidebar")[0].getBoundingClientRect(),i=e(".entry-header")[0].getBoundingClientRect();a=o.getBoundingClientRect(),a.bottom>t.bottom?n+=a.bottom-t.bottom:a.bottom-i.bottom'+dokan[n]+"
    "),a.parent().find(".wc_error_tip").css("left",o.left+a.width()-a.width()/2-e(".wc_error_tip").width()/2).css("top",o.top+a.height()).fadeIn("100"))})).on("wc_remove_error_tip",(function(t,a,n){a.parent().find(".wc_error_tip."+n).fadeOut("100",(function(){e(this).remove()}))})).on("click",(function(){e(".wc_error_tip").fadeOut("100",(function(){e(this).remove()}))})).on("blur",".wc_input_decimal[type=text], .wc_input_price[type=text], .wc_input_country_iso[type=text]",(function(){e(".wc_error_tip").fadeOut("100",(function(){e(this).remove()}))})).on("change",".wc_input_price[type=text], .wc_input_decimal[type=text], .wc-order-totals #refund_amount[type=text]",(function(){var t,a,n=dokan.decimal_point;(e(this).is(".wc_input_price")||e(this).is("#refund_amount"))&&(n=dokan.mon_decimal_point),t=new RegExp("[^-0-9%\\"+n+"]+","gi"),a=new RegExp("\\"+n+"+","gi");var o=e(this).val(),i=o.replace(t,"").replace(a,n);o!==i&&e(this).val(i)})).on("keyup",".wc_input_price[type=text], .wc_input_decimal[type=text], .wc_input_country_iso[type=text], .wc-order-totals #refund_amount[type=text]",(function(){var t,a,n,o=!1;e(this).is(".wc_input_price")||e(this).is("#refund_amount")?(o=!0,t=new RegExp("[^-0-9%\\"+dokan.mon_decimal_point+"]+","gi"),n=new RegExp("[^\\"+dokan.mon_decimal_point+"]","gi"),a="i18n_mon_decimal_error"):e(this).is(".wc_input_country_iso")?(t=new RegExp("([^A-Z])+|(.){3,}","im"),a="i18n_country_iso_error"):(o=!0,t=new RegExp("[^-0-9%\\"+dokan.decimal_point+"]+","gi"),n=new RegExp("[^\\"+dokan.decimal_point+"]","gi"),a="i18n_decimal_error");var i=e(this).val(),r=i.replace(t,"");o&&1=parseFloat(window.accounting.unformat(t.val(),dokan.mon_decimal_point))&&e(this).val("")})).on("keyup","#_sale_price.wc_input_price[type=text], .wc_input_price[name^=variable_sale_price], #_subscription_sale_price.wc_input_price[type=text]",(function(){var t,a=e(this),n=e("#product_type");t=-1!==a.attr("name").indexOf("variable")?a.parents(".variable_pricing").find(".wc_input_price[name^=variable_regular_price]"):n.length&&"subscription"===n.find(":selected").val()?e("#_subscription_price"):e("#_regular_price"),parseFloat(window.accounting.unformat(a.val(),dokan.mon_decimal_point))>=parseFloat(window.accounting.unformat(t.val(),dokan.mon_decimal_point))?e(document.body).triggerHandler("wc_add_error_tip",[e(this),"i18n_sale_less_than_regular_error"]):e(document.body).triggerHandler("wc_remove_error_tip",[e(this),"i18n_sale_less_than_regular_error"])})).on("init_tooltips",(function(){e(".tips, .help_tip, .woocommerce-help-tip").tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200}),e(".column-wc_actions .wc-action-button").tipTip({fadeIn:50,fadeOut:50,delay:200}),e(".parent-tips").each((function(){e(this).closest("a, th").attr("data-tip",e(this).data("tip")).tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200}).css("cursor","help")}))})),e("#dokan-navigation .dokan-dashboard-menu li.has-submenu:not(.active)").on("mouseover",(e=>{t(e)})).on("mouseout",(e=>{t(e,!0)}))}(jQuery),window.dokan_show_delete_prompt=async function(e,t){e.preventDefault();let a=await dokan_sweetalert(t,{action:"confirm",icon:"warning"});if(a.isConfirmed&&void 0!==e.target.href)window.location.href=e.target.href;else{if(!a.isConfirmed||void 0===e.target.dataset.url)return!1;window.location.href=e.target.dataset.url}},window.dokan_bulk_delete_prompt=async function(e,t,a,n){"delete"===jQuery(a).val()&&(e.preventDefault(),(await dokan_sweetalert(t,{action:"confirm",icon:"warning"})).isConfirmed&&jQuery(n).submit())},function(e){var t={query:{},form:null,cateItemStringArray:[],init:function(){e("#dokan-store-listing-filter-wrap .sort-by #stores_orderby").on("change",this.buildSortByQuery),e("#dokan-store-listing-filter-wrap .toggle-view span").on("click",this.toggleView),e("#dokan-store-listing-filter-wrap .dokan-store-list-filter-button, #dokan-store-listing-filter-wrap .dokan-icons, #dokan-store-listing-filter-form-wrap .apply-filter #cancel-filter-btn ").on("click",this.toggleForm),e("#dokan-store-listing-filter-form-wrap .store-search-input").on("change",this.buildSearchQuery),e("#dokan-store-listing-filter-form-wrap .apply-filter #apply-filter-btn").on("click",this.submitForm),this.maybeHideListView();const a=t;a.form=document.forms.dokan_store_lists_filter_form;const n=a.getLocal("dokan-layout");if(n){const t=e(".toggle-view span");a.setView(n,t)}const o=a.getParams();if(o.length){let t=!1;o.forEach((function(e){const n=Object.keys(e),i=Object.values(e);(!n.includes("stores_orderby")||o.length>1)&&(t=!0),a.setParams(n,i)})),t&&e("#dokan-store-listing-filter-form-wrap").slideToggle()}var i,r;e("#dokan-store-listing-filter-form-wrap").length&&e(".store-search-input").on("keypress",(function(t){if(13==t.which)return e("#dokan-store-listing-filter-form-wrap").submit(),!1})),e("body").on("click",(function(t){e(t.target).is("div#dokan-store-products-search-result li")||(e("#dokan-store-products-search-result").html(""),e("#dokan-store-products-search-result").removeClass("dokan-store-products-search-has-results"))})),e("body").on("keyup",".dokan-store-products-filter-search",(i=function(t){t.preventDefault();var a=e(this),n=a.val(),o=a.data("store_id");n&&(e(".dokan-store-products-filter-search").addClass("dokan-ajax-search-loader"),e("#dokan-store-products-search-result").removeClass("dokan-store-products-search-has-results"),e("#dokan-store-products-search-result").hide(),e("#dokan-store-products-search-result").html(""),jQuery.ajax({type:"post",dataType:"json",url:dokan.ajaxurl,data:{search_term:n,store_id:o,_wpnonce:dokan.store_product_search_nonce,action:"dokan_store_product_search_action"},success:function(t){e(".dokan-store-products-filter-search").removeClass("dokan-ajax-search-loader"),e("#dokan-store-products-search-result").show(),e("#dokan-store-products-search-result").addClass("dokan-store-products-search-has-results"),"success"==t.type?e("#dokan-store-products-search-result").html("
      "+t.data_list+"
    "):e("#dokan-store-products-search-result").html('
      '+t.data_list+"
    ")}}))},500,r=0,function(){var e=this,t=arguments;clearTimeout(r),r=setTimeout((function(){i.apply(e,t)}),500)}))},buildSortByQuery:function(e){const a=t;a.query.stores_orderby=e.target.value,a.submitForm(e)},toggleView:function(a){const n=t,o=e(a.target),i=o.parent().find("span"),r=o.data("view");n.setView(r,i),n.setLocal("dokan-layout",r)},setView:function(t,a){if(void 0===t||t.length<1||void 0===a||a.length<1)return;const n=e("#dokan-seller-listing-wrap");[...a].forEach((function(a){const o=e(a);t===o.data("view")?(o.addClass("active"),n.addClass(t)):(o.removeClass("active"),n.removeClass(o.data("view")))}))},toggleForm:function(t){t.preventDefault(),e("#dokan-store-listing-filter-form-wrap").slideToggle()},buildSearchQuery:function(e){e.target.value?t.query.dokan_seller_search=e.target.value:delete t.query.dokan_seller_search},submitForm:function(a){a.preventDefault(),t.query._store_filter_nonce&&delete t.query._store_filter_nonce,t.query._store_filter_nonce=e('input[name="_store_filter_nonce"]').first().val();const n=decodeURIComponent(e.param(t.query)),o="/page",i=window.location.pathname,r=i.includes(o)?i.substr(0,i.indexOf(o)):"";window.history.pushState(null,null,`${r}?${n}`),window.location.reload()},setLocal:function(e,t){window.localStorage.setItem(e,t)},getLocal:function(e){return window.localStorage.getItem(e)},setParams:function(a,n){const o=t,i=o.form?o.form.elements:"",r=document.forms.stores_sorting,d=r?r.elements:"";Object.values(d).forEach((function(t){t.name===a[0]&&e(t).val(n[0])})),Object.values(i).forEach((function(t){if(a.includes(t.name)&&("checkbox"===t.type?t.checked=!!["yes","true","1"].includes(n[0]):["text","search"].includes(t.type)&&(t.value=n[0])),a[0].includes("store_categories[")||a[0].includes("store_category[")){const t=n[0].split(" ").join("-"),a=e(`[data-slug=${t}]`);o.cateItemStringArray.includes(a.text().trim())||o.cateItemStringArray.push(a.text().trim()),a.addClass("dokan-btn-theme")}else if("rating"===a[0]){const t=n[0].split(" ").join("-");e(`[data-${a[0]}=${t}]`).addClass("active"),e(`[data-rating=${t}]`).parent().addClass("selected")}})),a.forEach((function(e,t){e.includes("[")||(o.query[e]=n[t])}))},getParams:function(){const e=new URLSearchParams(location.search),t=[];return e.forEach((function(e,a){t.push({[a]:e})})),t},maybeHideListView:function(){const a=t;window.matchMedia("(max-width: 767px)").matches&&"list-view"===a.getLocal("dokan-layout")&&a.setLocal("dokan-layout","grid-view"),e(window).on("resize",(function(){e(this).width()<767?(e("#dokan-seller-listing-wrap").removeClass("list-view"),e("#dokan-seller-listing-wrap").addClass("grid-view")):(e(".toggle-view.item span").last().removeClass("active"),e(".toggle-view.item span").first().addClass("active"))}))}};window.dokan&&(window.dokan.storeLists=t,window.dokan.storeLists.init())}(jQuery),(e=>{const t={init:()=>{e("#dokan-request-withdraw-button").on("click",(e=>{e.preventDefault(),t.openRequestWithdrawWindow()})),e(".dokan-withdraw-make-default-button").on("click",(e=>{e.preventDefault(),t.makeDefault(e)})),e("#dokan-withdraw-request-submit").on("click",(e=>{t.handleWithdrawRequest(e)})),e("#dokan-withdraw-display-schedule-popup").on("click",(e=>{t.opensScheduleWindow(e)})),e("#dokan-withdraw-schedule-request-submit").on("click",(e=>{t.handleScheduleChangeRequest(e)})),e("input[name='withdraw-schedule']").on("change",(e=>{t.handleScheduleChange(e)}))},openRequestWithdrawWindow:()=>{const a=wp.template("withdraw-request-popup"),n=e("#dokan-withdraw-request-popup").iziModal({width:690,overlayColor:"rgba(0, 0, 0, 0.8)",headerColor:dokan.modal_header_color});n.iziModal("setContent",a().trim()),n.iziModal("open"),t.init()},opensScheduleWindow:()=>{const a=wp.template("withdraw-schedule-popup"),n=e("#dokan-withdraw-schedule-popup").iziModal({width:690,overlayColor:"rgba(0, 0, 0, 0.8)",headerColor:dokan.modal_header_color});n.iziModal("setContent",a().trim()),n.iziModal("open"),t.init()},makeDefault:t=>{const a=e(t.target),n=e("#dokan-withdraw-payment-method-list");n.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,{action:"dokan_withdraw_handle_make_default_method",nonce:n.data("security"),method:a.data("method")},(e=>{e.success?(dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"success",showConfirmButton:!1,timer:2e3,timerProgressBar:!0}),n.unblock(),window.location.reload()):(dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"error",showConfirmButton:!1,timer:2e3,timerProgressBar:!0}),n.unblock())}))},handleWithdrawRequest:t=>{t.preventDefault();const a=e("input#withdraw-amount").val(),n=e("input#dokan_withdraw_nonce").val(),o=e("#withdraw-request-popup"),i=e("#withdraw-method").val();o.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,{action:"dokan_handle_withdraw_request",_handle_withdraw_request:n,amount:a,method:i},(async e=>{e.success?await dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"success",showConfirmButton:!1,timer:2e3,timerProgressBar:!0,didOpen:e=>{setTimeout((function(){o.unblock(),window.location.reload()}),2e3)}}):(dokan_sweetalert("",{icon:"error",html:e.data}),o.unblock())}))},handleScheduleChangeRequest:t=>{t.preventDefault();const a=e("input[name='withdraw-schedule']:checked").val(),n=e("#dokan-withdraw-schedule-request-submit").data("security"),o=e("#withdraw-schedule-popup"),i=e("#withdraw-remaining-amount").val(),r=e("#minimum-withdraw-amount").val(),d=e("#preferred-payment-method").val();o.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,{action:"dokan_handle_withdraw_schedule_change_request",nonce:n,schedule:a,reserve:i,minimum:r,method:d},(e=>{e.success?(dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"success",showConfirmButton:!1,timer:2e3,timerProgressBar:!0}),o.unblock(),window.location.reload()):(dokan_sweetalert("",{icon:"error",html:e.data}),o.unblock())}))},handleScheduleChange:t=>{const a=e(t.target).data("next-schedule");e("#dokan-withdraw-next-scheduled-date").html(a)}};e(document).ready((function(){t.init()}))})(jQuery)})(); \ No newline at end of file +(()=>{var e,t;jQuery((function(e){e(".tips").tooltip(),e("ul.order-status").on("click","a.dokan-edit-status",(function(t){return e(this).addClass("dokan-hide").closest("li").next("li").removeClass("dokan-hide"),!1})),e("ul.order-status").on("click","a.dokan-cancel-status",(function(t){return e(this).closest("li").addClass("dokan-hide").prev("li").find("a.dokan-edit-status").removeClass("dokan-hide"),!1})),e("form#dokan-order-status-form").on("submit",(function(t){t.preventDefault();var a=e(this),n=a.closest("li");n.block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}}),e.post(dokan.ajaxurl,a.serialize(),(function(e){if(n.unblock(),e.success){var t=n.prev();n.addClass("dokan-hide"),t.find("label").replaceWith(e.data),t.find("a.dokan-edit-status").removeClass("dokan-hide")}else dokan_sweetalert(e.data,{icon:"success"})}))})),e("form#add-order-note").on("submit",(function(t){if(t.preventDefault(),e("textarea#add-note-content").val())return e("#dokan-order-notes").block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}}),e.post(dokan.ajaxurl,e(this).serialize(),(function(t){e("ul.order_notes").prepend(t),e("#dokan-order-notes").unblock(),e("#add-note-content").val("")})),!1})),e("#dokan-order-notes").on("click","a.delete_note",(function(){var t=e(this).closest("li.note");e("#dokan-order-notes").block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}});var a={action:"dokan_delete_order_note",note_id:e(t).attr("rel"),security:e("#delete-note-security").val()};return e.post(dokan.ajaxurl,a,(function(a){e(t).remove(),e("#dokan-order-notes").unblock()})),!1})),e(".order_download_permissions").on("click","button.grant_access",(function(){var t=e(this),a=e("select.grant_access_id").val();if(a){e(".order_download_permissions").block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}});var n={action:"dokan_grant_access_to_download",product_ids:a,loop:e(".order_download_permissions .panel").length,order_id:t.data("order-id"),security:t.data("nonce")};return e.post(dokan.ajaxurl,n,(function(t){t?e("#accordion").append(t):dokan_sweetalert(dokan.i18n_download_access,{icon:"warning"}),e(".datepicker").datepicker(),e(".order_download_permissions").unblock()})),!1}})),e(".order_download_permissions").on("click","button.revoke_access",(async function(t){t.preventDefault();const a=await dokan_sweetalert(dokan.i18n_download_permission,{action:"confirm",icon:"warning"});if("undefined"!==a&&a.isConfirmed){var n=e(this),o=n.closest(".dokan-panel"),i=n.attr("rel").split(",")[0],r=n.attr("rel").split(",")[1];if(i>0){e(o).block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}});var d={action:"dokan_revoke_access_to_download",product_id:i,download_id:r,order_id:n.data("order-id"),permission_id:n.data("permission-id"),security:n.data("nonce")};e.post(dokan.ajaxurl,d,(function(t){e(o).fadeOut("300",(function(){e(o).remove()}))}))}else e(o).fadeOut("300",(function(){e(o).remove()}))}return!1}))})),e=jQuery,(t={init:function(){let t={d:"dd",D:"D",j:"d",l:"DD",F:"MM",m:"mm",M:"M",n:"m",o:"yy",Y:"yy",y:"y"},a=0,n="",o="";for(a=0;a0?e("#restock_refunded_items").closest("tr").show():(e("#restock_refunded_items").closest("tr").hide(),e(".woocommerce_order_items input.refund_order_item_qty").each((function(){e(this).val()>0&&e("#restock_refunded_items").closest("tr").show()}))),e(this).trigger("refund_quantity_changed")}}}).init(),e("#dokan-filter-customer").filter(":not(.enhanced)").each((function(){var t={allowClear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"1",escapeMarkup:function(e){return e},language:{errorLoading:function(){return dokan.i18n_searching},inputTooLong:function(e){var t=e.input.length-e.maximum;return 1===t?dokan.i18n_input_too_long_1:dokan.i18n_input_too_long_n.replace("%qty%",t)},inputTooShort:function(e){var t=e.minimum-e.input.length;return 1===t?dokan.i18n_input_too_short_1:dokan.i18n_input_too_short_n.replace("%qty%",t)},loadingMore:function(){return dokan.i18n_load_more},maximumSelected:function(e){return 1===e.maximum?dokan.i18n_selection_too_long_1:dokan.i18n_selection_too_long_n.replace("%qty%",e.maximum)},noResults:function(){return dokan.i18n_no_matches},searching:function(){return dokan.i18n_searching}},ajax:{url:dokan.ajaxurl,dataType:"json",delay:1e3,data:function(t){return{term:t.term,action:"dokan_json_search_vendor_customers",security:dokan.search_customer_nonce,exclude:e(this).data("exclude")}},processResults:function(t){var a=[];return t&&e.each(t,(function(e,t){a.push({id:e,text:t})})),{results:a}},cache:!0}};if(e(this).select2(t).addClass("enhanced"),e(this).data("sortable")){var a=e(this),n=e(this).next(".select2-container").find("ul.select2-selection__rendered");n.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:!0,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){e(n.find(".select2-selection__choice").get().reverse()).each((function(){var t=e(this).data("data").id,n=a.find('option[value="'+t+'"]')[0];a.prepend(n)}))}})}})),function(e){e("#variants-holder"),e("#product_image_gallery"),e("#product_images_container ul.product_images");var t,a,n={modal:!1,init:function(){product_type="simple",e(".product-edit-container").on("click",".dokan-section-heading",this.toggleProductSection),e(".product-edit-container").on("click","input[type=checkbox]#_downloadable",this.downloadable),e(".product-edit-container").on("click","a.sale-schedule",this.showDiscountSchedule),e("body, #dokan-product-images").on("click","a.add-product-images",this.gallery.addImages),e("body, #dokan-product-images").on("click","a.action-delete",this.gallery.deleteImage),this.gallery.sortable(),e("body, .product-edit-container").on("click","a.dokan-feat-image-btn",this.featuredImage.addImage),e("body, .product-edit-container").on("click","a.dokan-remove-feat-image",this.featuredImage.removeImage),e("body, #variable_product_options").on("click",".sale_schedule",this.saleSchedule),e("body, #variable_product_options").on("click",".cancel_sale_schedule",this.cancelSchedule),e(".product-edit-container").on("change","input[type=checkbox]#_manage_stock",this.showManageStock),e(".product-edit-container").on("click","a.upload_file_button",this.fileDownloadable),e("body").on("click","a.insert-file-row",(function(){return e(this).closest("table").find("tbody").append(e(this).data("row")),!1})),e("body").on("click","a.dokan-product-delete",(function(){return e(this).closest("tr").remove(),!1})),e("body").on("submit","form.dokan-product-edit-form",this.inputValidate),e(".dokan-product-listing").on("click","a.dokan-add-new-product",this.addProductPopup),this.loadSelect2(),this.bindProductTagDropdown(),this.attribute.sortable(),this.checkProductPostboxToggle(),e(".product-edit-container .dokan-product-attribute-wrapper").on("click","a.dokan-product-toggle-attribute, .dokan-product-attribute-heading",this.attribute.toggleAttribute),e(".product-edit-container .dokan-product-attribute-wrapper").on("click","a.add_new_attribute",this.attribute.addNewAttribute),e(".product-edit-container .dokan-product-attribute-wrapper").on("keyup","input.dokan-product-attribute-name",this.attribute.dynamicAttrNameChange),e(".dokan-product-attribute-wrapper ul.dokan-attribute-option-list").on("click","button.dokan-select-all-attributes",this.attribute.selectAllAttr),e(".dokan-product-attribute-wrapper ul.dokan-attribute-option-list").on("click","button.dokan-select-no-attributes",this.attribute.selectNoneAttr),e(".dokan-product-attribute-wrapper ul.dokan-attribute-option-list").on("click","button.dokan-add-new-attribute",this.attribute.addNewExtraAttr),e(".product-edit-container .dokan-product-attribute-wrapper").on("click","a.dokan-product-remove-attribute",this.attribute.removeAttribute),e(".product-edit-container .dokan-product-attribute-wrapper").on("click","a.dokan-save-attribute",this.attribute.saveAttribute),e("body").on("click",'.product-container-footer input[type="submit"]',this.createNewProduct),this.attribute.disbalePredefinedAttribute(),this.setCorrectProductId(),e("body").trigger("dokan-product-editor-loaded",this)},setCorrectProductId:function(){if(!e(".dokan-product-edit-form"))return;let t=e("#dokan_product_id").val();if(window.history.replaceState){let e=new URL(document.location),a=e.searchParams,n=a.get("product_id");if(""!==n&&"0"!==n)return;if(a.set("product_id",t),"edit"!==a.get("action"))return;e.search=a.toString();let o=e.toString(),i={product_id:t};window.history.replaceState(i,document.title,o)}},saleSchedule:function(){var t=e(this).closest(".dokan-product-field-content","div, table");return e(this).hide(),t.find(".cancel_sale_schedule").show(),t.find(".sale_price_dates_fields").show(),!1},cancelSchedule:function(){var t=e(this).closest(".dokan-product-field-content","div, table");return e(this).hide(),t.find(".sale_schedule").show(),t.find(".sale_price_dates_fields").hide(),t.find(".sale_price_dates_fields").find("input").val(""),!1},checkProductPostboxToggle:function(){var t=JSON.parse(localStorage.getItem("toggleClasses"));e.each(t,(function(t,a){var n=e("."+t.replace(/_/g,"-")),o=n.find(".dokan-section-content"),i=n.find("i.fa-sort-desc");a?(o.show(),i.removeClass("fa-flip-horizointal").addClass("fa-flip-vertical"),i.css("marginTop","9px")):(o.hide(),i.removeClass("fa-flip-vertical").addClass("fa-flip-horizointal"),i.css("marginTop","0px"))}))},toggleProductSection:function(t){t.preventDefault();var a=e(this);if(null!=JSON.parse(localStorage.getItem("toggleClasses")))var n=JSON.parse(localStorage.getItem("toggleClasses"));else n={};a.closest(".dokan-edit-row").find(".dokan-section-content").slideToggle(300,(function(){var t;e(this).is(":visible")?((t=a.find("i.fa-sort-desc")).removeClass("fa-flip-horizointal").addClass("fa-flip-vertical"),t.css("marginTop","9px"),n[a.data("togglehandler")]=!0):((t=a.find("i.fa-sort-desc")).removeClass("fa-flip-vertical").addClass("fa-flip-horizointal"),t.css("marginTop","0px"),n[a.data("togglehandler")]=!1),localStorage.setItem("toggleClasses",JSON.stringify(n))}))},loadSelect2:function(){e(".dokan-select2").select2({language:{noResults:function(){return dokan.i18n_no_result_found}}})},bindProductTagDropdown:function(){e(".product_tag_search").select2({allowClear:!1,tags:dokan.product_vendors_can_create_tags&&"on"===dokan.product_vendors_can_create_tags,createTag:function(t){var a=e.trim(t.term);return""===a?null:{id:a,text:a,newTag:!0}},insertTag:function(t,a){var n=!1;e.each(t,(function(t,o){e.trim(a.text).toUpperCase()==e.trim(o.text).toUpperCase()&&(n=!0)})),n||t.unshift(a)},minimumInputLength:2,maximumSelectionLength:void 0!==dokan.maximum_tags_select_length?dokan.maximum_tags_select_length:-1,ajax:{url:dokan.ajaxurl,dataType:"json",delay:250,data:function(e){return{q:e.term,action:"dokan_json_search_products_tags",security:dokan.search_products_tags_nonce,page:e.page||1}},processResults:function(t){var a=[];return t&&e.each(t,(function(e,t){a.push({id:t[0],text:t[1]})})),{results:a,pagination:{more:0!=a.length}}},cache:!0},language:{errorLoading:function(){return dokan.i18n_searching},inputTooLong:function(e){var t=e.input.length-e.maximum;return 1===t?dokan.i18n_input_too_long_1:dokan.i18n_input_too_long_n.replace("%qty%",t)},inputTooShort:function(e){var t=e.minimum-e.input.length;return 1===t?dokan.i18n_input_too_short_1:dokan.i18n_input_too_short_n.replace("%qty%",t)},loadingMore:function(){return dokan.i18n_load_more},maximumSelected:function(e){return 1===e.maximum?dokan.i18n_selection_too_long_1:dokan.i18n_selection_too_long_n.replace("%qty%",e.maximum)},noResults:function(){return dokan.i18n_no_matches},searching:function(){return dokan.i18n_searching}}})},addProductPopup:function(e){e.preventDefault(),n.openProductPopup()},openProductPopup:function(){const o=wp.template("dokan-add-new-product"),i=e("#dokan-add-product-popup");n.modal=i.iziModal({headerColor:dokan.modal_header_color,overlayColor:"rgba(0, 0, 0, 0.8)",width:690,top:32,onOpening:()=>{n.reRenderPopupElements()},onClosed:()=>{t=void 0,a=void 0,e('#dokan-add-new-product-popup input[name="_sale_price_dates_from"], #dokan-add-new-product-popup input[name="_sale_price_dates_to"]').datepicker("destroy")}}),n.modal.iziModal("setContent",o().trim()),n.modal.iziModal("open")},reRenderPopupElements:function(){n.loadSelect2(),n.bindProductTagDropdown(),e("#dokan-add-new-product-popup .sale_price_dates_fields input").daterangepicker({singleDatePicker:!0,showDropdowns:!1,autoApply:!0,parentEl:"#dokan-add-new-product-popup",opens:"left",autoUpdateInput:!1}).on("apply.daterangepicker",(function(t,a){e(this).val(a.startDate.format("YYYY-MM-DD"))})),e(".tips").tooltip(),n.gallery.sortable(),e("body").trigger("dokan-product-editor-popup-opened",n)},createNewProduct:function(t){t.preventDefault();var o=e(this),i=o.closest("form#dokan-add-new-product-form"),r=o.attr("data-btn_id");if(i.find("span.dokan-show-add-product-success").html(""),i.find("span.dokan-show-add-product-error").html(""),i.find("span.dokan-add-new-product-spinner").css("display","inline-block"),o.attr("disabled","disabled"),""==i.find('input[name="post_title"]').val())return e("span.dokan-show-add-product-error").html(dokan.product_title_required),o.removeAttr("disabled"),void i.find("span.dokan-add-new-product-spinner").css("display","none");if("-1"==i.find('select[name="product_cat"]').val())return e("span.dokan-show-add-product-error").html(dokan.product_category_required),o.removeAttr("disabled"),void i.find("span.dokan-add-new-product-spinner").css("display","none");var d={action:"dokan_create_new_product",postdata:i.serialize(),_wpnonce:dokan.nonce};n.modal.iziModal("startLoading"),e.post(dokan.ajaxurl,d,(function(t){t.success?(o.removeAttr("disabled"),"create_new"===r?(e("#dokan-add-product-popup").iziModal("close"),window.location.href=t.data):(a=void 0,e(".dokan-dashboard-product-listing-wrapper").load(window.location.href+" table.product-listing-table"),n.modal.iziModal("resetContent"),n.openProductPopup(),n.reRenderPopupElements(),e("span.dokan-show-add-product-success").html(dokan.product_created_response),setTimeout((function(){e("span.dokan-show-add-product-success").html("")}),3e3))):(o.removeAttr("disabled"),e("span.dokan-show-add-product-error").html(t.data)),i.find("span.dokan-add-new-product-spinner").css("display","none")})).always((function(){n.modal.iziModal("stopLoading")}))},attribute:{toggleAttribute:function(t){t.preventDefault();var a=e(this),n=a.closest("li").find(".dokan-product-attribute-item");return e(n).hasClass("dokan-hide")?(a.closest(".dokan-product-attribute-heading").css({borderBottom:"1px solid #e3e3e3"}),e(n).slideDown(200,(function(){a.find("i.fa").removeClass("fa-flip-horizointal").addClass("fa-flip-vertical"),e(this).removeClass("dokan-hide"),e(t.target).hasClass("dokan-product-attribute-heading")?e(t.target).hasClass("dokan-product-attribute-heading")&&a.find("a.dokan-product-toggle-attribute").css("top","12px"):e(t.target).closest("a").css("top","12px")}))):e(n).slideUp(200,(function(){e(this).addClass("dokan-hide"),a.find("i.fa").removeClass("fa-flip-vertical").addClass("fa-flip-horizointal"),e(t.target).hasClass("dokan-product-attribute-heading")?e(t.target).hasClass("dokan-product-attribute-heading")&&a.find("a.dokan-product-toggle-attribute").css("top","7px"):e(t.target).closest("a").css("top","7px"),a.closest(".dokan-product-attribute-heading").css({borderBottom:"none"})})),!1},sortable:function(){e(".dokan-product-attribute-wrapper ul").sortable({items:"li.product-attribute-list",cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,helper:"clone",opacity:.65,placeholder:"dokan-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")},update:function(e,t){n.attribute.reArrangeAttribute()}})},dynamicAttrNameChange:function(t){t.preventDefault();var a=e(this),n=a.val();""==n?a.closest("li").find("strong").html(dokan.i18n_attribute_label):a.closest("li").find("strong").html(n)},selectAllAttr:function(t){return t.preventDefault(),e(this).closest("li.product-attribute-list").find("select.dokan_attribute_values option").attr("selected","selected"),e(this).closest("li.product-attribute-list").find("select.dokan_attribute_values").trigger("change"),!1},selectNoneAttr:function(t){return t.preventDefault(),e(this).closest("li.product-attribute-list").find("select.dokan_attribute_values option").removeAttr("selected"),e(this).closest("li.product-attribute-list").find("select.dokan_attribute_values").trigger("change"),!1},reArrangeAttribute:function(){e(".dokan-product-attribute-wrapper").find("ul.dokan-attribute-option-list").find("li.product-attribute-list").css("cursor","default").each((function(t){e(this).find(".attribute_position").val(t)}))},addNewExtraAttr:async function(t){t.preventDefault();var a=e(this).closest("li.product-attribute-list"),n=a.data("taxonomy"),o=(await dokan_sweetalert(dokan.new_attribute_prompt,{action:"prompt",input:"text"})).value;if(o){var i={action:"dokan_add_new_attribute",taxonomy:n,term:o,_wpnonce:dokan.nonce};e.post(dokan.ajaxurl,i,(function(e){e.error?dokan_sweetalert(e.error,{action:"alert",icon:"warning"}):e.slug&&(a.find("select.dokan_attribute_values").append('"),a.find("select.dokan_attribute_values").trigger("change"))}))}},addNewAttribute:function(t){t.preventDefault();var a=e(this),o=a.closest(".dokan-attribute-type").find("select#predefined_attribute"),i=o.val(),r=e("ul.dokan-attribute-option-list .product-attribute-list").length,d={action:"dokan_get_pre_attribute",taxonomy:i,i:r,_wpnonce:dokan.nonce};a.closest(".dokan-attribute-type").find("span.dokan-attribute-spinner").removeClass("dokan-hide"),e.post(dokan.ajaxurl,d,(function(t){if(t.success){var r=e(".dokan-product-attribute-wrapper").find("ul.dokan-attribute-option-list");if($html=e.parseHTML(t.data),e($html).find(".dokan-product-attribute-item").removeClass("dokan-hide"),e($html).find("i.fa.fa-sort-desc").removeClass("fa-flip-horizointal").addClass("fa-flip-vertical"),e($html).find("a.dokan-product-toggle-attribute").css("top","12px"),e($html).find(".dokan-product-attribute-heading").css({borderBottom:"1px solid #e3e3e3"}),r.append($html),n.loadSelect2(),n.bindProductTagDropdown(),n.attribute.reArrangeAttribute(),"variable"!==e("select#product_type").val()){let t=e("div.dokan-product-attribute-wrapper label.show_if_variable");for(let a of t){let t=e(a).find('input[type="checkbox"]');t.length>0&&t[0].getAttribute("name")?.startsWith("attribute_variation[")&&e(a).hide()}}}a.closest(".dokan-attribute-type").find("span.dokan-attribute-spinner").addClass("dokan-hide"),i&&(o.find('option[value="'+i+'"]').attr("disabled","disabled"),o.val(""))})).done((function(){e("select#product_type").trigger("change")}))},removeAttribute:async function(t){t.stopPropagation(),t.preventDefault();const a=await dokan_sweetalert(dokan.remove_attribute,{action:"confirm",icon:"warning"});if("undefined"!==a&&a.isConfirmed){var o=e(this).closest("li.product-attribute-list");o.fadeOut(300,(function(){o.is(".taxonomy")?(o.find("select, input[type=text]").val(""),e("select.dokan_attribute_taxonomy").find('option[value="'+o.data("taxonomy")+'"]').removeAttr("disabled")):(o.find("select, input[type=text]").val(""),o.hide()),n.attribute.reArrangeAttribute()}))}return!1},saveAttribute:function(t){t.preventDefault(),e(this);var a={post_id:e("#dokan-edit-product-id").val(),data:e("ul.dokan-attribute-option-list").find("input, select, textarea").serialize(),action:"dokan_save_attributes"};e(".dokan-product-attribute-wrapper").block({message:null,fadeIn:50,fadeOut:1e3,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,a,(function(t){e("#dokan-variable-product-options").load(window.location.toString()+" #dokan-variable-product-options-inner",(function(){e("#dokan-variable-product-options").trigger("reload"),e("select#product_type").trigger("change"),e(".dokan-product-attribute-wrapper").unblock()}))}))},disbalePredefinedAttribute:function(){e("ul.dokan-attribute-option-list li.product-attribute-list").each((function(t,a){"none"!==e(a).css("display")&&e(a).is(".taxonomy")&&e("select#predefined_attribute").find('option[value="'+e(a).data("taxonomy")+'"]').attr("disabled","disabled")}))}},inputValidate:function(t){return t.preventDefault(),""==e("#post_title").val().trim()?(e("#post_title").focus(),void e("div.dokan-product-title-alert").removeClass("dokan-hide")):(e("div.dokan-product-title-alert").hide(),-1==e("select.product_cat").val()?(e("select.product_cat").focus(),void e("div.dokan-product-cat-alert").removeClass("dokan-hide")):(e("div.dokan-product-cat-alert").hide(),e("input[type=submit]").attr("disabled","disabled"),void this.submit()))},downloadable:function(){e(this).prop("checked")?e(this).closest("aside").find(".dokan-side-body").removeClass("dokan-hide"):e(this).closest("aside").find(".dokan-side-body").addClass("dokan-hide")},showDiscountSchedule:function(t){t.preventDefault(),e(".sale-schedule-container").slideToggle("fast")},showManageStock:function(t){const a=e("#product_type").val();e(this).is(":checked")&&"external"!==a?e(".show_if_stock").slideDown("fast"):e(".show_if_stock").slideUp("fast"),"simple"===a&&(e(this).is(":checked")?e(".hide_if_stock_global").slideUp("fast"):e(".hide_if_stock_global").slideDown("fast"))},gallery:{addImages:function(a){a.preventDefault();var n=e(this),o=n.closest(".dokan-product-gallery").find("#product_images_container ul.product_images"),i=n.closest(".dokan-product-gallery").find("#product_image_gallery");t||(t=wp.media({title:dokan.i18n_choose_gallery,library:{type:"image"},button:{text:dokan.i18n_choose_gallery_btn_text},multiple:!0})).on("select",(function(){t.state().get("selection").map((function(t){t=t.toJSON(),attachment_ids=[],t.id&&"image"===t.type&&(e('
  • ×
  • ').insertBefore(o.find("li.add-image")),e("#product_images_container ul li.image").css("cursor","default").each((function(){var e=jQuery(this).attr("data-attachment_id");attachment_ids.push(e)})),i.val(attachment_ids.join(",")))}))})),t.open()},deleteImage:function(t){t.preventDefault();var a=e(this),n=(a.closest(".dokan-product-gallery").find("#product_images_container ul.product_images"),a.closest(".dokan-product-gallery").find("#product_image_gallery"));a.closest("li.image").remove();var o=[];return e("#product_images_container ul li.image").css("cursor","default").each((function(){var t=e(this).attr("data-attachment_id");o.push(t)})),n.val(o.join(",")),!1},sortable:function(){e("body").find("#product_images_container ul.product_images").sortable({items:"li.image",cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,helper:"clone",opacity:.65,placeholder:"dokan-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")},update:function(t,a){var n=[];e("body").find("#product_images_container ul li.image").css("cursor","default").each((function(){var e=jQuery(this).attr("data-attachment_id");n.push(e)})),e("body").find("#product_image_gallery").val(n.join(","))}})}},featuredImage:{addImage:function(t){t.preventDefault();var n=e(this);a||(a=wp.media({title:dokan.i18n_choose_featured_img,library:{type:"image"},button:{text:dokan.i18n_choose_featured_img_btn_text}})).on("select",(function(){a.state().get("selection").map((function(e){if("image"===(e=e.toJSON()).type){n.siblings("input.dokan-feat-image-id").val(e.id);var t=n.closest(".instruction-inside"),a=t.siblings(".image-wrap");a.find("img").attr("src",e.url),a.find("img").removeAttr("srcset"),t.addClass("dokan-hide"),a.removeClass("dokan-hide")}}))})),a.open()},removeImage:function(t){t.preventDefault();var a=e(this).closest(".image-wrap"),n=a.siblings(".instruction-inside");n.find("input.dokan-feat-image-id").val("0"),a.addClass("dokan-hide"),n.removeClass("dokan-hide")}},fileDownloadable:function(t){t.preventDefault();var a,n=e(this);a||((a=wp.media({title:dokan.i18n_choose_file,button:{text:dokan.i18n_choose_file_btn_text},multiple:!0})).on("select",(function(){a.state().get("selection").map((function(e){e=e.toJSON(),n.closest("tr").find("input.wc_file_url, input.wc_variation_file_url").val(e.url)}))})),a.on("ready",(function(){a.uploader.options.uploader.params={type:"downloadable_product"}}))),a.open()}};e((function(){function t(){var t=e("#product_type").val(),a=e("input#_virtual:checked").length,n=e("input#_downloadable:checked").length;let o=e(".dokan-product-shipping-tax");var i=".hide_if_downloadable, .hide_if_virtual",r=".show_if_downloadable, .show_if_virtual";e.each(Object.keys(dokan.product_types),(function(e,t){i=i+", .hide_if_"+t,r=r+", .show_if_"+t})),e(i).show(),e(r).hide(),n&&e(".show_if_downloadable").show(),a&&e(".show_if_virtual").show(),e(".show_if_"+t).show(),n&&e(".hide_if_downloadable").hide(),a?(e(".hide_if_virtual").hide(),1===e(".dokan-product-shipping-tax .dokan-section-content").first().children().length?o.hide():(o.hasClass("hide_if_virtual")&&o.removeClass("hide_if_virtual"),o.show())):o.show(),e(".hide_if_"+t).hide(),e("input#_manage_stock").trigger("change")}n.init(),e("select#product_type").on("change",(function(){var a=e(this).val();"variable"===a&&(e("input#_manage_stock").trigger("change"),e("input#_downloadable").prop("checked",!1),e("input#_virtual").removeAttr("checked")),t(),e(document.body).trigger("dokan-product-type-change",a,e(this))})).trigger("change"),e(".product-edit-container").on("change","input#_downloadable, input#_virtual",(function(){t()})).trigger("change"),e("input#_downloadable").trigger("change"),e("input#_virtual").trigger("change"),e(".sale_price_dates_fields").each((function(){var t=e(this),a=!1,n=t.closest("div, table");t.find("input").each((function(){""!==e(this).val()&&(a=!0)})),a?(n.find(".sale_schedule").hide(),n.find(".sale_price_dates_fields").show()):(n.find(".sale_schedule").show(),n.find(".sale_price_dates_fields").hide())})),e(".product-edit-container").on("click",".sale_schedule",(function(){var t=e(this).closest(".product-edit-container, div.dokan-product-variation-itmes, table");return e(this).hide(),t.find(".cancel_sale_schedule").show(),t.find(".sale_price_dates_fields").show(),!1})),e(".product-edit-container").on("click",".cancel_sale_schedule",(function(){var t=e(".product-edit-container, div.dokan-product-variation-itmes, table");return e(this).hide(),t.find(".sale_schedule").show(),t.find(".sale_price_dates_fields").hide(),t.find(".sale_price_dates_fields").find("input").val(""),!1})),e("#dokan-product-title-area").on("click",".edit-slug",(function(){!function(){var t,a,n,o,i=0,r=e("#post_name"),d=r.val(),s=e("#sample-permalink"),l=s.html(),c=e("#sample-permalink a").html(),u=e("#edit-slug-buttons"),p=u.html(),m=e("#editable-post-name-full");for(m.find("img").replaceWith((function(){return this.alt})),m=m.html(),s.html(c),n=e("#editable-post-name"),o=n.html(),u.html(' "),u.children(".save").on("click",(function(){var t=n.children("input").val();t!=e("#editable-post-name-full").text()?e.post(ajaxurl,{action:"sample-permalink",post_id:e("#dokan-edit-product-id").val(),new_slug:t,new_title:e("#post_title").val(),samplepermalinknonce:e("#samplepermalinknonce").val()},(function(a){var n=e("#edit-slug-box");n.html(a),n.hasClass("hidden")&&n.fadeIn("fast",(function(){n.removeClass("hidden")})),u.html(p),s.html(l),r.val(t),e(".edit-slug").focus(),e("#editable-post-name-full-dokan").val(e("#editable-post-name-full").html())})):u.children(".cancel").trigger("click")})),u.children(".cancel").on("click",(function(){e("#view-post-btn").show(),n.html(o),u.html(p),s.html(l),r.val(d),e(".edit-slug").focus()})),t=0;tm.length/4?"":m,n.html('').children("input").on("keydown",(function(e){var t=e.which;13===t&&(e.preventDefault(),u.children(".save").trigger("click")),27===t&&u.children(".cancel").trigger("click")})).on("keyup",(function(){r.val(this.value)})).focus()}()})),e("#dokan-edit-product-id").val()&&e("#post_title").val()&&e("#samplepermalinknonce").val()&&e.post(ajaxurl,{action:"sample-permalink",post_id:e("#dokan-edit-product-id").val(),new_slug:e("#edited-post-name-dokan").val(),new_title:e("#post_title").val(),samplepermalinknonce:e("#samplepermalinknonce").val()},(function(t){e("#edit-slug-box").html(t)})),e(window).on("load",(function(){e("input#_virtual:checked").length&&t()}))}))}(jQuery),jQuery((function(e){function t(e,t,a){jQuery('
    '+a+"
    ").css({top:t-16,left:e+20}).appendTo("body").fadeIn(200)}wp.customize,e(".datepicker").datepicker({dateFormat:"yy-mm-dd"}),e(".dokan-table tbody").on("click",".toggle-row",(function(){e(this).closest("tr").toggleClass("is-expanded")})),e(".dokan-start-date").datepicker({defaultDate:"",dateFormat:"yy-mm-dd",numberOfMonths:1,onSelect:function(t){let a=new Date(t);a.setDate(a.getDate()+1),e(".dokan-end-date").datepicker("option",{minDate:a})}}),e(".dokan-end-date").datepicker({defaultDate:"",dateFormat:"yy-mm-dd",numberOfMonths:1,onSelect:function(t){let a=new Date(t);a.setDate(a.getDate()-1),e("dokan-start-date").datepicker("option",{maxDate:a})}}),e(".tips").tooltip();var a=null,n=null;jQuery(".chart-placeholder").on("plothover",(function(e,o,i){if(i){if((a!=i.dataIndex||n!=i.seriesIndex)&&(a=i.dataIndex,n=i.seriesIndex,jQuery(".chart-tooltip").remove(),i.series.points.show||i.series.enable_tooltip)){var r=i.series.data[i.dataIndex][1];tooltip_content="",i.series.prepend_label&&(tooltip_content=tooltip_content+i.series.label+": "),i.series.prepend_tooltip&&(tooltip_content+=i.series.prepend_tooltip),tooltip_content+=r,i.series.append_tooltip&&(tooltip_content+=i.series.append_tooltip),i.series.pie.show?t(o.pageX,o.pageY,tooltip_content):t(i.pageX,i.pageY,tooltip_content)}}else jQuery(".chart-tooltip").remove(),a=null}))})),function(e){e.validator.setDefaults({ignore:":hidden"});var t=function(t,a){e(a).closest(".dokan-form-group").addClass("has-error").append(t)},a=function(t,a){e(a).closest(".dokan-form-group").removeClass("has-error"),e(t).remove()},n=wp.customize,o='input[name="settings[bank][disconnect]"], input[name="settings[paypal][disconnect]"], input[name="settings[skrill][disconnect]"], input[name="settings[dokan_custom][disconnect]"]',i={init:function(){return e("a.dokan-banner-drag").on("click",this.imageUpload),e("a.dokan-remove-banner-image").on("click",this.removeBanner),e("a.dokan-pro-gravatar-drag").on("click",this.gragatarImageUpload),e("a.dokan-gravatar-drag").on("click",this.simpleImageUpload),e("a.dokan-remove-gravatar-image").on("click",this.removeGravatar),e(".dokan-update-setting-top-button").on("click",(function(){e("input[name='dokan_update_store_settings']").trigger("click")})),this.validateForm(this),e(".dokan_payment_disconnect_btn").on("click",(function(){var t=e(this).closest("form"),a=e("form#"+t.attr("id"));e(":input",t).not(":button, :submit, :reset, :hidden, :checkbox").val("").prop("selected",!1);var n=t.serializeArray().reduce((function(e,t){return e[t.name]=t.value,e}),{});n[e(this).attr("name")]="",n.form_id=t.attr("id"),n.action="dokan_settings",i.handleRequest(a,n,!0)})),!1},calculateImageSelectOptions:function(e,t){var a,o,i,r,d,s,l=parseInt(dokan.store_banner_dimension.width,10),c=parseInt(dokan.store_banner_dimension.height,10),u=!!parseInt(dokan.store_banner_dimension["flex-width"],10),p=!!parseInt(dokan.store_banner_dimension["flex-height"],10);return d=e.get("width"),r=e.get("height"),this.headerImage=new n.HeaderTool.ImageModel,this.headerImage.set({themeWidth:l,themeHeight:c,themeFlexWidth:u,themeFlexHeight:p,imageWidth:d,imageHeight:r}),t.set("canSkipCrop",!this.headerImage.shouldBeCropped()),(o=d)/(i=r)>(a=l/c)?l=(c=i)*a:c=(l=o)/a,s={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:d,imageHeight:r,x1:0,y1:0,x2:l,y2:c},!1===p&&!1===u&&(s.aspectRatio=l+":"+c),!1===p&&(s.maxHeight=c),!1===u&&(s.maxWidth=l),s},onSelect:function(){this.frame.setState("cropper")},onCropped:function(e){var t=e.url,a=e.attachment_id,n=e.width,o=e.height;this.setImageFromURL(t,a,n,o)},onSkippedCrop:function(e){var t=e.get("url"),a=e.get("width"),n=e.get("height");this.setImageFromURL(t,e.id,a,n)},setImageFromURL:function(t,a,n,o){var i=!1;if(e(this.uploadBtn).hasClass("dokan-banner-drag"))(r=e(this.uploadBtn).closest(".dokan-banner")).find("input.dokan-file-field").val(a),r.find("img.dokan-banner-img").attr("src",t),e(this.uploadBtn).parent().siblings(".image-wrap",r).removeClass("dokan-hide"),e(this.uploadBtn).parent(".button-area").addClass("dokan-hide"),i=!0;else if(e(this.uploadBtn).hasClass("dokan-pro-gravatar-drag")){var r;(r=e(this.uploadBtn).closest(".dokan-gravatar")).find("input.dokan-file-field").val(a),r.find("img.dokan-gravatar-img").attr("src",t),i=!0,e(this.uploadBtn).parent().siblings(".gravatar-wrap",r).removeClass("dokan-hide"),e(this.uploadBtn).parent(".gravatar-button-area").addClass("dokan-hide")}!0===i&&(e(window).on("beforeunload",(function(){return dokan.dokan_banner_added_alert_msg})),e(document).ready((function(){e("#store-form").on("submit",(function(t){return e(window).off("beforeunload"),!0}))})))},removeImage:function(){n.HeaderTool.currentHeader.trigger("hide"),n.HeaderTool.CombinedList.trigger("control:removeImage")},imageUpload:function(e){e.preventDefault();var t=i;t.uploadBtn=this,t.frame=wp.media({multiple:!1,button:{text:dokan.selectAndCrop,close:!1},states:[new wp.media.controller.Library({title:dokan.chooseImage,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:dokan.store_banner_dimension.width,suggestedHeight:dokan.store_banner_dimension.height}),new wp.media.controller.Cropper({suggestedWidth:5e3,imgSelectOptions:t.calculateImageSelectOptions})]}),t.frame.on("select",t.onSelect,t),t.frame.on("cropped",t.onCropped,t),t.frame.on("skippedcrop",t.onSkippedCrop,t),t.frame.open()},calculateImageSelectOptionsProfile:function(e,t){var a,o,i,r,d,s,l=150,c=150,u=!!parseInt(dokan.store_banner_dimension["flex-width"],10),p=!!parseInt(dokan.store_banner_dimension["flex-height"],10);return d=e.get("width"),r=e.get("height"),this.headerImage=new n.HeaderTool.ImageModel,this.headerImage.set({themeWidth:l,themeHeight:c,themeFlexWidth:u,themeFlexHeight:p,imageWidth:d,imageHeight:r}),t.set("canSkipCrop",!this.headerImage.shouldBeCropped()),(o=d)/(i=r)>(a=l/c)?l=(c=i)*a:c=(l=o)/a,s={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:d,imageHeight:r,x1:0,y1:0,x2:l,y2:c},!1===p&&!1===u&&(s.aspectRatio=l+":"+c),!1===p&&(s.maxHeight=c),!1===u&&(s.maxWidth=l),s},simpleImageUpload:function(t){t.preventDefault();var a,n=e(this);a||(a=wp.media.frames.file_frame=wp.media({title:jQuery(this).data("uploader_title"),button:{text:jQuery(this).data("uploader_button_text")},multiple:!1})).on("select",(function(){var e=a.state().get("selection").first().toJSON(),t=n.closest(".dokan-gravatar");t.find("input.dokan-file-field").val(e.id),t.find("img.dokan-gravatar-img").attr("src",e.url),n.parent().siblings(".gravatar-wrap",t).removeClass("dokan-hide"),n.parent(".gravatar-button-area").addClass("dokan-hide")})),a.open()},gragatarImageUpload:function(e){e.preventDefault();var t=i;t.uploadBtn=this,t.frame=wp.media({multiple:!1,button:{text:dokan.selectAndCrop,close:!1},states:[new wp.media.controller.Library({title:dokan.chooseImage,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:150,suggestedHeight:150}),new wp.media.controller.Cropper({imgSelectOptions:t.calculateImageSelectOptionsProfile})]}),t.frame.on("select",t.onSelect,t),t.frame.on("cropped",t.onCropped,t),t.frame.on("skippedcrop",t.onSkippedCrop,t),t.frame.open()},submitSettings:function(t){"undefined"!=typeof tinyMCE&&tinyMCE.triggerSave();var a=e("form#"+t),n=a.serialize()+"&action=dokan_settings&form_id="+t;i.handleRequest(a,n,!1)},handleRequest:function(t,a,n){n?t.find(".ajax_prev.disconnect").append(' '):t.find(".ajax_prev.save").append(' '),e(".dokan-update-setting-top-button span.dokan-loading").remove(),e(".dokan-update-setting-top-button").append(' '),e.post(dokan.ajaxurl,a,(function(a){t.find("span.dokan-loading").remove(),e(".dokan-update-setting-top-button span.dokan-loading").remove(),e("html,body").animate({scrollTop:e(".dokan-dashboard-header").offset().top}),a.success?(e(".dokan-ajax-response").html(e("
    ",{class:"dokan-alert dokan-alert-success",html:"

    "+a.data.msg+"

    "})),e(".dokan-ajax-response").append(a.data.progress),dokan&&dokan.storeProgressBar&&dokan.storeProgressBar.init(),o=o.replaceAll("input","button"),n?t.find(o).addClass("dokan-hide"):t.find(o).removeClass("dokan-hide")):e(".dokan-ajax-response").html(e("
    ",{class:"dokan-alert dokan-alert-danger",html:"

    "+a.data+"

    "}))}))},validateForm:function(n){e("form#settings-form, form#profile-form, form#store-form, form#payment-form").validate({submitHandler:function(e){n.submitSettings(e.getAttribute("id"))},errorElement:"span",errorClass:"error",errorPlacement:t,success:a,ignore:".select2-search__field, :hidden, .mapboxgl-ctrl-geocoder--input"})},removeBanner:function(t){t.preventDefault();var a=e(this).closest(".image-wrap"),n=a.siblings(".button-area");a.find("input.dokan-file-field").val("0"),a.addClass("dokan-hide"),n.removeClass("dokan-hide")},removeGravatar:function(t){t.preventDefault();var a=e(this).closest(".gravatar-wrap"),n=a.siblings(".gravatar-button-area");a.find("input.dokan-file-field").val("0"),a.addClass("dokan-hide"),n.removeClass("dokan-hide")}},r={init:function(){this.withdrawValidate(this)},withdrawValidate:function(n){e("form.withdraw").validate({errorElement:"span",errorClass:"error",errorPlacement:t,success:a})}},d={init:function(){this.validate(this)},validate:function(a){e("form#dokan-form-contact-seller").validate({errorPlacement:t,errorElement:"span",success:function(e,t){e.removeClass("error"),e.remove()},submitHandler:async function(t,a){a.preventDefault(),e(t).block({message:null,overlayCSS:{background:"#fff url("+dokan.ajax_loader+") no-repeat center",opacity:.6}}),await dokan_execute_recaptcha("form#dokan-form-contact-seller .dokan_recaptcha_token","dokan_contact_seller_recaptcha");var n=e(t).serialize();e.post(dokan.ajaxurl,n,(function(a){e(t).unblock(),void 0!==a.data&&e(t).find(".ajax-response").html(a.data),e(t).find("input[type=text], input[type=email], textarea, input[name=dokan_recaptcha_token]").val("").removeClass("valid")}))}})}};e((function(){i.init(),r.init(),d.init(),e(".dokan-form-horizontal").on("change","input[type=checkbox]#lbl_setting_minimum_quantity",(function(){var t=e(".show_if_needs_sw_discount");e(this).is(":checked")?(t.find('input[type="number"]').val(""),t.slideDown("slow")):t.slideUp("slow")}))}))}(jQuery),function(e){var t=DokanValidateMsg;t.maxlength=e.validator.format(t.maxlength_msg),t.minlength=e.validator.format(t.minlength_msg),t.rangelength=e.validator.format(t.rangelength_msg),t.range=e.validator.format(t.range_msg),t.max=e.validator.format(t.max_msg),t.min=e.validator.format(t.min_msg),e.validator.messages=t,e(document).on("click","#dokan_store_tnc_enable",(function(t){e(this).is(":checked")?e("#dokan_tnc_text").show():e("#dokan_tnc_text").hide()})).ready((function(t){e("#dokan_store_tnc_enable").is(":checked")?e("#dokan_tnc_text").show():e("#dokan_tnc_text").hide()}))}(jQuery),function(e){var t="undefined"!=typeof wp&&wp.customize&&wp.customize.selectiveRefresh;function a(){dokan.store_banner_dimension.width;var t=dokan.store_banner_dimension.height/dokan.store_banner_dimension.width*e("#dokan-content").width();e(".dokan-profile-frame-wrapper .profile-info-img.dummy-image").css({height:t})}a(),e(window).on("resize",(function(e){a()})),t&&wp.customize.selectiveRefresh.bind("partial-content-rendered",(function(e){console.log("placement",e),"store_header_template"===e.partial.id&&a()})),e(":input.dokan-product-search").filter(":not(.enhanced)").each((function(){var t={allowClear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"3",escapeMarkup:function(e){return e},language:{errorLoading:function(){return dokan.i18n_searching},inputTooLong:function(e){var t=e.input.length-e.maximum;return 1===t?dokan.i18n_input_too_long_1:dokan.i18n_input_too_long_n.replace("%qty%",t)},inputTooShort:function(e){var t=e.minimum-e.input.length;return 1===t?dokan.i18n_input_too_short_1:dokan.i18n_input_too_short_n.replace("%qty%",t)},loadingMore:function(){return dokan.i18n_load_more},maximumSelected:function(e){return 1===e.maximum?dokan.i18n_selection_too_long_1:dokan.i18n_selection_too_long_n.replace("%qty%",e.maximum)},noResults:function(){return dokan.i18n_no_matches},searching:function(){return dokan.i18n_searching}},ajax:{url:dokan.ajaxurl,dataType:"json",delay:250,data:function(t){return{term:t.term,action:e(this).data("action")||"dokan_json_search_products_and_variations",security:dokan.search_products_nonce,exclude:e(this).data("exclude"),user_ids:e(this).data("user_ids"),include:e(this).data("include"),limit:e(this).data("limit")}},processResults:function(t){var a=[];return t&&e.each(t,(function(e,t){a.push({id:e,text:t})})),{results:a}},cache:!0}};if(e(this).select2(t).addClass("enhanced"),e(this).data("sortable")){var a=e(this),n=e(this).next(".select2-container").find("ul.select2-selection__rendered");n.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:!0,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){e(n.find(".select2-selection__choice").get().reverse()).each((function(){var t=e(this).data("data").id,n=a.find('option[value="'+t+'"]')[0];a.prepend(n)}))}})}})),selected_items=[],e("#cb-select-all").on("change",(function(t){var a=e(this),n=e(".cb-select-items");a.is(":checked")?n.each((function(t,a){e(a).prop("checked","checked")})):n.each((function(t,a){e(a).prop("checked",""),selected_items.pop()}))}))}(jQuery),function(e){function t(t,a){const n=e(t.target).closest("li.has-submenu");n.find(".navigation-submenu").each(((t,o)=>{if(a)n.removeClass("submenu-hovered"),e(".dokan-dashboard-wrap").css("height",""),e(o).css("bottom",0),e(o).removeAttr("style");else{n.addClass("submenu-hovered");let t=n[0].getBoundingClientRect(),a=o.getBoundingClientRect(),i=e(".dokan-dashboard-wrap"),r=i[0].getBoundingClientRect(),d=Math.min(r.bottom,r.height);if(d0)e(o).css("bottom",0),a=o.getBoundingClientRect(),a.top<0&&(e(o).css("bottom","unset"),e(o).css("top",0));else{e(o).css("bottom",n);let t=e(".dokan-dash-sidebar")[0].getBoundingClientRect(),i=e(".entry-header")[0].getBoundingClientRect();a=o.getBoundingClientRect(),a.bottom>t.bottom?n+=a.bottom-t.bottom:a.bottom-i.bottom'+dokan[n]+"
    "),a.parent().find(".wc_error_tip").css("left",o.left+a.width()-a.width()/2-e(".wc_error_tip").width()/2).css("top",o.top+a.height()).fadeIn("100"))})).on("wc_remove_error_tip",(function(t,a,n){a.parent().find(".wc_error_tip."+n).fadeOut("100",(function(){e(this).remove()}))})).on("click",(function(){e(".wc_error_tip").fadeOut("100",(function(){e(this).remove()}))})).on("blur",".wc_input_decimal[type=text], .wc_input_price[type=text], .wc_input_country_iso[type=text]",(function(){e(".wc_error_tip").fadeOut("100",(function(){e(this).remove()}))})).on("change",".wc_input_price[type=text], .wc_input_decimal[type=text], .wc-order-totals #refund_amount[type=text]",(function(){var t,a,n=dokan.decimal_point;(e(this).is(".wc_input_price")||e(this).is("#refund_amount"))&&(n=dokan.mon_decimal_point),t=new RegExp("[^-0-9%\\"+n+"]+","gi"),a=new RegExp("\\"+n+"+","gi");var o=e(this).val(),i=o.replace(t,"").replace(a,n);o!==i&&e(this).val(i)})).on("keyup",".wc_input_price[type=text], .wc_input_decimal[type=text], .wc_input_country_iso[type=text], .wc-order-totals #refund_amount[type=text]",(function(){var t,a,n,o=!1;e(this).is(".wc_input_price")||e(this).is("#refund_amount")?(o=!0,t=new RegExp("[^-0-9%\\"+dokan.mon_decimal_point+"]+","gi"),n=new RegExp("[^\\"+dokan.mon_decimal_point+"]","gi"),a="i18n_mon_decimal_error"):e(this).is(".wc_input_country_iso")?(t=new RegExp("([^A-Z])+|(.){3,}","im"),a="i18n_country_iso_error"):(o=!0,t=new RegExp("[^-0-9%\\"+dokan.decimal_point+"]+","gi"),n=new RegExp("[^\\"+dokan.decimal_point+"]","gi"),a="i18n_decimal_error");var i=e(this).val(),r=i.replace(t,"");o&&1=parseFloat(window.accounting.unformat(t.val(),dokan.mon_decimal_point))&&e(this).val("")})).on("keyup","#_sale_price.wc_input_price[type=text], .wc_input_price[name^=variable_sale_price], #_subscription_sale_price.wc_input_price[type=text]",(function(){var t,a=e(this),n=e("#product_type");t=-1!==a.attr("name").indexOf("variable")?a.parents(".variable_pricing").find(".wc_input_price[name^=variable_regular_price]"):n.length&&"subscription"===n.find(":selected").val()?e("#_subscription_price"):e("#_regular_price"),parseFloat(window.accounting.unformat(a.val(),dokan.mon_decimal_point))>=parseFloat(window.accounting.unformat(t.val(),dokan.mon_decimal_point))?e(document.body).triggerHandler("wc_add_error_tip",[e(this),"i18n_sale_less_than_regular_error"]):e(document.body).triggerHandler("wc_remove_error_tip",[e(this),"i18n_sale_less_than_regular_error"])})).on("init_tooltips",(function(){e(".tips, .help_tip, .woocommerce-help-tip").tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200}),e(".column-wc_actions .wc-action-button").tipTip({fadeIn:50,fadeOut:50,delay:200}),e(".parent-tips").each((function(){e(this).closest("a, th").attr("data-tip",e(this).data("tip")).tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200}).css("cursor","help")}))})),e("#dokan-navigation .dokan-dashboard-menu li.has-submenu:not(.active)").on("mouseover",(e=>{t(e)})).on("mouseout",(e=>{t(e,!0)}))}(jQuery),window.dokan_show_delete_prompt=async function(e,t){e.preventDefault();let a=await dokan_sweetalert(t,{action:"confirm",icon:"warning"});if(a.isConfirmed&&void 0!==e.target.href)window.location.href=e.target.href;else{if(!a.isConfirmed||void 0===e.target.dataset.url)return!1;window.location.href=e.target.dataset.url}},window.dokan_bulk_delete_prompt=async function(e,t,a,n){"delete"===jQuery(a).val()&&(e.preventDefault(),(await dokan_sweetalert(t,{action:"confirm",icon:"warning"})).isConfirmed&&jQuery(n).submit())},function(e){var t={query:{},form:null,cateItemStringArray:[],init:function(){e("#dokan-store-listing-filter-wrap .sort-by #stores_orderby").on("change",this.buildSortByQuery),e("#dokan-store-listing-filter-wrap .toggle-view span").on("click",this.toggleView),e("#dokan-store-listing-filter-wrap .dokan-store-list-filter-button, #dokan-store-listing-filter-wrap .dokan-icons, #dokan-store-listing-filter-form-wrap .apply-filter #cancel-filter-btn ").on("click",this.toggleForm),e("#dokan-store-listing-filter-form-wrap .store-search-input").on("change",this.buildSearchQuery),e("#dokan-store-listing-filter-form-wrap .apply-filter #apply-filter-btn").on("click",this.submitForm),this.maybeHideListView();const a=t;a.form=document.forms.dokan_store_lists_filter_form;const n=a.getLocal("dokan-layout");if(n){const t=e(".toggle-view span");a.setView(n,t)}const o=a.getParams();if(o.length){let t=!1;o.forEach((function(e){const n=Object.keys(e),i=Object.values(e);(!n.includes("stores_orderby")||o.length>1)&&(t=!0),a.setParams(n,i)})),t&&e("#dokan-store-listing-filter-form-wrap").slideToggle()}var i,r;e("#dokan-store-listing-filter-form-wrap").length&&e(".store-search-input").on("keypress",(function(t){if(13==t.which)return e("#dokan-store-listing-filter-form-wrap").submit(),!1})),e("body").on("click",(function(t){e(t.target).is("div#dokan-store-products-search-result li")||(e("#dokan-store-products-search-result").html(""),e("#dokan-store-products-search-result").removeClass("dokan-store-products-search-has-results"))})),e("body").on("keyup",".dokan-store-products-filter-search",(i=function(t){t.preventDefault();var a=e(this),n=a.val(),o=a.data("store_id");n&&(e(".dokan-store-products-filter-search").addClass("dokan-ajax-search-loader"),e("#dokan-store-products-search-result").removeClass("dokan-store-products-search-has-results"),e("#dokan-store-products-search-result").hide(),e("#dokan-store-products-search-result").html(""),jQuery.ajax({type:"post",dataType:"json",url:dokan.ajaxurl,data:{search_term:n,store_id:o,_wpnonce:dokan.store_product_search_nonce,action:"dokan_store_product_search_action"},success:function(t){e(".dokan-store-products-filter-search").removeClass("dokan-ajax-search-loader"),e("#dokan-store-products-search-result").show(),e("#dokan-store-products-search-result").addClass("dokan-store-products-search-has-results"),"success"==t.type?e("#dokan-store-products-search-result").html("
      "+t.data_list+"
    "):e("#dokan-store-products-search-result").html('
      '+t.data_list+"
    ")}}))},500,r=0,function(){var e=this,t=arguments;clearTimeout(r),r=setTimeout((function(){i.apply(e,t)}),500)}))},buildSortByQuery:function(e){const a=t;a.query.stores_orderby=e.target.value,a.submitForm(e)},toggleView:function(a){const n=t,o=e(a.target),i=o.parent().find("span"),r=o.data("view");n.setView(r,i),n.setLocal("dokan-layout",r)},setView:function(t,a){if(void 0===t||t.length<1||void 0===a||a.length<1)return;const n=e("#dokan-seller-listing-wrap");[...a].forEach((function(a){const o=e(a);t===o.data("view")?(o.addClass("active"),n.addClass(t)):(o.removeClass("active"),n.removeClass(o.data("view")))}))},toggleForm:function(t){t.preventDefault(),e("#dokan-store-listing-filter-form-wrap").slideToggle()},buildSearchQuery:function(e){e.target.value?t.query.dokan_seller_search=e.target.value:delete t.query.dokan_seller_search},submitForm:function(a){a.preventDefault(),t.query._store_filter_nonce&&delete t.query._store_filter_nonce,t.query._store_filter_nonce=e('input[name="_store_filter_nonce"]').first().val();const n=decodeURIComponent(e.param(t.query)),o="/page",i=window.location.pathname,r=i.includes(o)?i.substr(0,i.indexOf(o)):"";window.history.pushState(null,null,`${r}?${n}`),window.location.reload()},setLocal:function(e,t){window.localStorage.setItem(e,t)},getLocal:function(e){return window.localStorage.getItem(e)},setParams:function(a,n){const o=t,i=o.form?o.form.elements:"",r=document.forms.stores_sorting,d=r?r.elements:"";Object.values(d).forEach((function(t){t.name===a[0]&&e(t).val(n[0])})),Object.values(i).forEach((function(t){if(a.includes(t.name)&&("checkbox"===t.type?t.checked=!!["yes","true","1"].includes(n[0]):["text","search"].includes(t.type)&&(t.value=n[0])),a[0].includes("store_categories[")||a[0].includes("store_category[")){const t=n[0].split(" ").join("-"),a=e(`[data-slug=${t}]`);o.cateItemStringArray.includes(a.text().trim())||o.cateItemStringArray.push(a.text().trim()),a.addClass("dokan-btn-theme")}else if("rating"===a[0]){const t=n[0].split(" ").join("-");e(`[data-${a[0]}=${t}]`).addClass("active"),e(`[data-rating=${t}]`).parent().addClass("selected")}})),a.forEach((function(e,t){e.includes("[")||(o.query[e]=n[t])}))},getParams:function(){const e=new URLSearchParams(location.search),t=[];return e.forEach((function(e,a){t.push({[a]:e})})),t},maybeHideListView:function(){const a=t;window.matchMedia("(max-width: 767px)").matches&&"list-view"===a.getLocal("dokan-layout")&&a.setLocal("dokan-layout","grid-view"),e(window).on("resize",(function(){e(this).width()<767?(e("#dokan-seller-listing-wrap").removeClass("list-view"),e("#dokan-seller-listing-wrap").addClass("grid-view")):(e(".toggle-view.item span").last().removeClass("active"),e(".toggle-view.item span").first().addClass("active"))}))}};window.dokan&&(window.dokan.storeLists=t,window.dokan.storeLists.init())}(jQuery),(e=>{const t={init:()=>{e("#dokan-request-withdraw-button").on("click",(e=>{e.preventDefault(),t.openRequestWithdrawWindow()})),e(".dokan-withdraw-make-default-button").on("click",(e=>{e.preventDefault(),t.makeDefault(e)})),e("#dokan-withdraw-request-submit").on("click",(e=>{t.handleWithdrawRequest(e)})),e("#dokan-withdraw-display-schedule-popup").on("click",(e=>{t.opensScheduleWindow(e)})),e("#dokan-withdraw-schedule-request-submit").on("click",(e=>{t.handleScheduleChangeRequest(e)})),e("input[name='withdraw-schedule']").on("change",(e=>{t.handleScheduleChange(e)}))},openRequestWithdrawWindow:()=>{const a=wp.template("withdraw-request-popup"),n=e("#dokan-withdraw-request-popup").iziModal({width:690,overlayColor:"rgba(0, 0, 0, 0.8)",headerColor:dokan.modal_header_color});n.iziModal("setContent",a().trim()),n.iziModal("open"),t.init()},opensScheduleWindow:()=>{const a=wp.template("withdraw-schedule-popup"),n=e("#dokan-withdraw-schedule-popup").iziModal({width:690,overlayColor:"rgba(0, 0, 0, 0.8)",headerColor:dokan.modal_header_color});n.iziModal("setContent",a().trim()),n.iziModal("open"),t.init()},makeDefault:t=>{const a=e(t.target),n=e("#dokan-withdraw-payment-method-list");n.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,{action:"dokan_withdraw_handle_make_default_method",nonce:n.data("security"),method:a.data("method")},(e=>{e.success?(dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"success",showConfirmButton:!1,timer:2e3,timerProgressBar:!0}),n.unblock(),window.location.reload()):(dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"error",showConfirmButton:!1,timer:2e3,timerProgressBar:!0}),n.unblock())}))},handleWithdrawRequest:t=>{t.preventDefault();const a=e("input#withdraw-amount").val(),n=e("input#dokan_withdraw_nonce").val(),o=e("#withdraw-request-popup"),i=e("#withdraw-method").val();o.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,{action:"dokan_handle_withdraw_request",_handle_withdraw_request:n,amount:a,method:i},(async e=>{e.success?await dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"success",showConfirmButton:!1,timer:2e3,timerProgressBar:!0,didOpen:e=>{setTimeout((function(){o.unblock(),window.location.reload()}),2e3)}}):(dokan_sweetalert("",{icon:"error",html:e.data}),o.unblock())}))},handleScheduleChangeRequest:t=>{t.preventDefault();const a=e("input[name='withdraw-schedule']:checked").val(),n=e("#dokan-withdraw-schedule-request-submit").data("security"),o=e("#withdraw-schedule-popup"),i=e("#withdraw-remaining-amount").val(),r=e("#minimum-withdraw-amount").val(),d=e("#preferred-payment-method").val();o.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),e.post(dokan.ajaxurl,{action:"dokan_handle_withdraw_schedule_change_request",nonce:n,schedule:a,reserve:i,minimum:r,method:d},(e=>{e.success?(dokan_sweetalert(e.data,{position:"bottom-end",toast:!0,icon:"success",showConfirmButton:!1,timer:2e3,timerProgressBar:!0}),o.unblock(),window.location.reload()):(dokan_sweetalert("",{icon:"error",html:e.data}),o.unblock())}))},handleScheduleChange:t=>{const a=e(t.target).data("next-schedule");e("#dokan-withdraw-next-scheduled-date").html(a)}};e(document).ready((function(){t.init()}))})(jQuery),function(e){!function(){let t={format:dokan_get_daterange_picker_format(),...dokan_helper.locale};e(".dokan-daterangepicker").daterangepicker({autoUpdateInput:!1,showDropdowns:!0,locale:t}),e(".dokan-daterangepicker").on("apply.daterangepicker",(function(a,n){e(this).val(n.startDate.format(t.format)+" - "+n.endDate.format(t.format)),e(this).siblings("input.dokan-daterangepicker-start-date").val(n.startDate.format("YYYY-MM-DD")),e(this).siblings("input.dokan-daterangepicker-end-date").val(n.endDate.format("YYYY-MM-DD"))})),e(".dokan-daterangepicker").on("cancel.daterangepicker",(function(t,a){e(this).data("clear")&&(e(this).val(""),e(this).siblings("input.dokan-daterangepicker-start-date").val(""),e(this).siblings("input.dokan-daterangepicker-end-date").val(""))}))}()}(jQuery)})(); \ No newline at end of file diff --git a/assets/js/helper.js b/assets/js/helper.js index 0a2adfa7f5..54ac3d310b 100644 --- a/assets/js/helper.js +++ b/assets/js/helper.js @@ -1 +1 @@ -!function(e,t){t.dokan_get_i18n_date_format=function(e=!0){if(!e)return dokan_helper.i18n_date_format;let t={d:"dd",D:"D",j:"d",l:"DD",F:"MM",m:"mm",M:"M",n:"m",o:"yy",Y:"yy",y:"y"},n=0,o="",r="";for(n=0;n=12?"pm":"am",m=i>=12?"PM":"AM",d=(e,t)=>e[t]?e[t]:t;convertTime=e=>((e=e.toString().match(/^([01]\d|2[0-3])(:)([0-5]\d)(:[0-5]\d)?$/)||[e]).length>1&&((e=e.slice(1))[0]=+e[0]%12||12),e[0]),hour12=convertTime(`${a(i)}:${a(_)}`),replaceMent={hh:a(hour12),h:hour12,HH:a(i),H:i,g:hour12,MM:a(_),M:_,mm:a(_),m:_,i:a(_),ss:a(c),s:c,A:m,a:s};let l="",f="",h="";for(let e=0;e0&&(l+=d(replaceMent,f),f=""),e++,l+=t[e]):0===f.length?f=h:f!==h?(l+=d(replaceMent,f),f=h):f===h&&(f+=h);return l+=f.length?d(replaceMent,f):"",l},t.dokan_get_daterange_picker_format=function(e=dokan_helper.i18n_date_format){let t={d:"D",D:"DD",j:"D",l:"DD",F:"MMMM",m:"MM",M:"MM",n:"M",o:"YYYY",Y:"YYYY",y:"YY",g:"h",G:"H",h:"hh",H:"HH",i:"mm",s:"ss"},n=0,o="",r="";for(n=0;n=12?"pm":"am",l=i>=12?"PM":"AM",h=(e,t)=>e[t]?e[t]:t;convertTime=e=>((e=e.toString().match(/^([01]\d|2[0-3])(:)([0-5]\d)(:[0-5]\d)?$/)||[e]).length>1&&((e=e.slice(1))[0]=+e[0]%12||12),e[0]),hour12=convertTime(`${a(i)}:${a(s)}`),replaceMent={hh:a(hour12),h:hour12,HH:a(i),H:i,g:hour12,MM:a(s),M:s,mm:a(s),m:s,i:a(s),ss:a(c),s:c,A:l,a:d};let p="",m="",_="";for(let e=0;e0&&(p+=h(replaceMent,m),m=""),e++,p+=t[e]):0===m.length?m=_:m!==_?(p+=h(replaceMent,m),m=_):m===_&&(m+=_);return p+=m.length?h(replaceMent,m):"",p},t.dokan_get_daterange_picker_format=function(e=dokan_helper.i18n_date_format){let t={d:"D",D:"DD",j:"D",l:"DD",F:"MMMM",m:"MM",M:"MM",n:"M",o:"YYYY",Y:"YYYY",y:"YY",g:"h",G:"H",h:"hh",H:"HH",i:"mm",s:"ss"},n=0,o="",r="";for(n=0;n\n \n '),setTimeout((()=>{t.html(o)}),1e3))}};n(e).ready((function(){a.init()}))}(document,window,jQuery); \ No newline at end of file diff --git a/assets/js/reverse-withdrawal.js b/assets/js/reverse-withdrawal.js index 9924a2f596..f0afb2673d 100644 --- a/assets/js/reverse-withdrawal.js +++ b/assets/js/reverse-withdrawal.js @@ -1 +1 @@ -!function(e,t,a){const r={init(){this.init_datepicker(),e(".reverse-balance-section").on("click","#reverse_pay",r.add_to_cart)},init_datepicker(){let t={format:dokan_get_daterange_picker_format(),...dokan_helper.daterange_picker_local};e("#trn_date_filter").daterangepicker({autoUpdateInput:!1,locale:t},(function(a,r,n){e("#trn_date_filter").on("apply.daterangepicker",(function(a,r){e(this).val(r.startDate.format(t.format)+" - "+r.endDate.format(t.format))})),e("#trn_date_form_filter_alt").val(a.format("YYYY-MM-DD")),e("#trn_date_to_filter_alt").val(r.format("YYYY-MM-DD"))})),e("#trn_date_filter").on("cancel.daterangepicker",(function(t,a){e(this).val(""),e("#trn_date_form_filter_alt").val(""),e("#trn_date_to_filter_alt").val("")}))},add_to_cart(){e(this);let t=e("#reverse_pay_balance");r.disableProps();let n={price:t.val(),_reverse_withdrawal_nonce:dokan.reverse_withdrawal.nonce};wp.ajax.post("dokan_reverse_withdrawal_payment_to_cart",n).then((async e=>{let t={action:"confirm",title:dokan.reverse_withdrawal.on_success_title,icon:"success",showCloseButton:!1,showCancelButton:!1,focusConfirm:!0};await dokan_sweetalert(e.message,t).then((()=>{a.location.replace(dokan.reverse_withdrawal.checkout_url)}))})).fail((e=>{r.disableProps(!1);let t=dokan_handle_ajax_error(e);t&&dokan_sweetalert(t,{action:"error",title:dokan.reverse_withdrawal.on_error_title,icon:"error"})}))},disableProps(t=!0){e("#reverse_pay_balance").prop("disabled",t),e("#reverse_pay").prop("disabled",t)}};e((function(){r.init()}))}(jQuery,document,window); \ No newline at end of file +!function(e,a,r){const t={init(){e(".reverse-balance-section").on("click","#reverse_pay",t.add_to_cart)},add_to_cart(){e(this);let a=e("#reverse_pay_balance");t.disableProps();let o={price:a.val(),_reverse_withdrawal_nonce:dokan.reverse_withdrawal.nonce};wp.ajax.post("dokan_reverse_withdrawal_payment_to_cart",o).then((async e=>{let a={action:"confirm",title:dokan.reverse_withdrawal.on_success_title,icon:"success",showCloseButton:!1,showCancelButton:!1,focusConfirm:!0};await dokan_sweetalert(e.message,a).then((()=>{r.location.replace(dokan.reverse_withdrawal.checkout_url)}))})).fail((e=>{t.disableProps(!1);let a=dokan_handle_ajax_error(e);a&&dokan_sweetalert(a,{action:"error",title:dokan.reverse_withdrawal.on_error_title,icon:"error"})}))},disableProps(a=!0){e("#reverse_pay_balance").prop("disabled",a),e("#reverse_pay").prop("disabled",a)}};e((function(){t.init()}))}(jQuery,document,window); \ No newline at end of file diff --git a/assets/js/vue-admin.js b/assets/js/vue-admin.js index 532b04d0f9..ec8624314b 100644 --- a/assets/js/vue-admin.js +++ b/assets/js/vue-admin.js @@ -1,2 +1,2 @@ /*! For license information please see vue-admin.js.LICENSE.txt */ -(()=>{var e={3302:e=>{e.exports=function(e,t,a){return ta?a:e:et?t:e}},6850:e=>{function t(e,t,a){var s,n,i,r,o;function d(){var l=Date.now()-r;l=0?s=setTimeout(d,t-l):(s=null,a||(o=e.apply(i,n),i=n=null))}null==t&&(t=100);var l=function(){i=this,n=arguments,r=Date.now();var l=a&&!s;return s||(s=setTimeout(d,t)),l&&(o=e.apply(i,n),i=n=null),o};return l.clear=function(){s&&(clearTimeout(s),s=null)},l.flush=function(){s&&(o=e.apply(i,n),i=n=null,clearTimeout(s),s=null)},l}t.debounce=t,e.exports=t},8882:(e,t,a)=>{var s="Expected a function",n=NaN,i="[object Symbol]",r=/^\s+|\s+$/g,o=/^[-+]0x[0-9a-f]+$/i,d=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt,c="object"==typeof a.g&&a.g&&a.g.Object===Object&&a.g,_="object"==typeof self&&self&&self.Object===Object&&self,m=c||_||Function("return this")(),h=Object.prototype.toString,p=Math.max,f=Math.min,v=function(){return m.Date.now()};function g(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function y(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&h.call(e)==i}(e))return n;if(g(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=g(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(r,"");var a=d.test(e);return a||l.test(e)?u(e.slice(2),a?2:8):o.test(e)?n:+e}e.exports=function(e,t,a){var n=!0,i=!0;if("function"!=typeof e)throw new TypeError(s);return g(a)&&(n="leading"in a?!!a.leading:n,i="trailing"in a?!!a.trailing:i),function(e,t,a){var n,i,r,o,d,l,u=0,c=!1,_=!1,m=!0;if("function"!=typeof e)throw new TypeError(s);function h(t){var a=n,s=i;return n=i=void 0,u=t,o=e.apply(s,a)}function k(e){var a=e-l;return void 0===l||a>=t||a<0||_&&e-u>=r}function M(){var e=v();if(k(e))return b(e);d=setTimeout(M,function(e){var a=t-(e-l);return _?f(a,r-(e-u)):a}(e))}function b(e){return d=void 0,m&&n?h(e):(n=i=void 0,o)}function L(){var e=v(),a=k(e);if(n=arguments,i=this,l=e,a){if(void 0===d)return function(e){return u=e,d=setTimeout(M,t),c?h(e):o}(l);if(_)return d=setTimeout(M,t),h(l)}return void 0===d&&(d=setTimeout(M,t)),o}return t=y(t)||0,g(a)&&(c=!!a.leading,r=(_="maxWait"in a)?p(y(a.maxWait)||0,t):r,m="trailing"in a?!!a.trailing:m),L.cancel=function(){void 0!==d&&clearTimeout(d),u=0,n=l=i=d=void 0},L.flush=function(){return void 0===d?o:b(v())},L}(e,t,{leading:n,maxWait:t,trailing:i})}},9127:function(e,t,a){!function(e){"use strict";e.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,t,a){return e<12?a?"vm":"VM":a?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(a(421))},2633:function(e,t,a){!function(e){"use strict";var t=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},a={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},s=function(e){return function(s,n,i,r){var o=t(s),d=a[e][t(s)];return 2===o&&(d=d[n?0:1]),d.replace(/%d/i,s)}},n=["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-dz",{months:n,monthsShort:n,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,a){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:s("s"),ss:s("s"),m:s("m"),mm:s("m"),h:s("h"),hh:s("h"),d:s("d"),dd:s("d"),M:s("M"),MM:s("M"),y:s("y"),yy:s("y")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:0,doy:4}})}(a(421))},3215:function(e,t,a){!function(e){"use strict";e.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}})}(a(421))},6968:function(e,t,a){!function(e){"use strict";var t={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},a=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},s={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},n=function(e){return function(t,n,i,r){var o=a(t),d=s[e][a(t)];return 2===o&&(d=d[n?0:1]),d.replace(/%d/i,t)}},i=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-ly",{months:i,monthsShort:i,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,a){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:n("s"),ss:n("s"),m:n("m"),mm:n("m"),h:n("h"),hh:n("h"),d:n("d"),dd:n("d"),M:n("M"),MM:n("M"),y:n("y"),yy:n("y")},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(a(421))},2572:function(e,t,a){!function(e){"use strict";e.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})}(a(421))},8319:function(e,t,a){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},a={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};e.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,a){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return a[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:0,doy:6}})}(a(421))},5629:function(e,t,a){!function(e){"use strict";e.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})}(a(421))},7006:function(e,t,a){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},a={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},s=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},n={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},i=function(e){return function(t,a,i,r){var o=s(t),d=n[e][s(t)];return 2===o&&(d=d[a?0:1]),d.replace(/%d/i,t)}},r=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar",{months:r,monthsShort:r,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,a){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:i("s"),ss:i("s"),m:i("m"),mm:i("m"),h:i("h"),hh:i("h"),d:i("d"),dd:i("d"),M:i("M"),MM:i("M"),y:i("y"),yy:i("y")},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return a[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(a(421))},6722:function(e,t,a){!function(e){"use strict";var t={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};e.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"bir neçə saniyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(e){return/^(gündüz|axşam)$/.test(e)},meridiem:function(e,t,a){return e<4?"gecə":e<12?"səhər":e<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(e){if(0===e)return e+"-ıncı";var a=e%10;return e+(t[a]||t[e%100-a]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(a(421))},5958:function(e,t,a){!function(e){"use strict";function t(e,t,a){return"m"===a?t?"хвіліна":"хвіліну":"h"===a?t?"гадзіна":"гадзіну":e+" "+(s=+e,n={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:t?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"}[a].split("_"),s%10==1&&s%100!=11?n[0]:s%10>=2&&s%10<=4&&(s%100<10||s%100>=20)?n[1]:n[2]);var s,n}e.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:t,mm:t,h:t,hh:t,d:"дзень",dd:t,M:"месяц",MM:t,y:"год",yy:t},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(e){return/^(дня|вечара)$/.test(e)},meridiem:function(e,t,a){return e<4?"ночы":e<12?"раніцы":e<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-ы":e+"-і";case"D":return e+"-га";default:return e}},week:{dow:1,doy:7}})}(a(421))},4921:function(e,t,a){!function(e){"use strict";e.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Миналата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[Миналия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",w:"седмица",ww:"%d седмици",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,a=e%100;return 0===e?e+"-ев":0===a?e+"-ен":a>10&&a<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(a(421))},7293:function(e,t,a){!function(e){"use strict";e.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}(a(421))},9907:function(e,t,a){!function(e){"use strict";var t={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},a={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};e.defineLocale("bn-bd",{months:"জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[১২৩৪৫৬৭৮৯০]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t?e<4?e:e+12:"ভোর"===t||"সকাল"===t?e:"দুপুর"===t?e>=3?e:e+12:"বিকাল"===t||"সন্ধ্যা"===t?e+12:void 0},meridiem:function(e,t,a){return e<4?"রাত":e<6?"ভোর":e<12?"সকাল":e<15?"দুপুর":e<18?"বিকাল":e<20?"সন্ধ্যা":"রাত"},week:{dow:0,doy:6}})}(a(421))},2288:function(e,t,a){!function(e){"use strict";var t={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},a={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};e.defineLocale("bn",{months:"জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[১২৩৪৫৬৭৮৯০]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t&&e>=4||"দুপুর"===t&&e<5||"বিকাল"===t?e+12:e},meridiem:function(e,t,a){return e<4?"রাত":e<10?"সকাল":e<17?"দুপুর":e<20?"বিকাল":"রাত"},week:{dow:0,doy:6}})}(a(421))},2127:function(e,t,a){!function(e){"use strict";var t={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},a={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};e.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12".split("_"),monthsShortRegex:/^(ཟླ་\d{1,2})/,monthsParseExact:!0,weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(e){return e.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(e,t){return 12===e&&(e=0),"མཚན་མོ"===t&&e>=4||"ཉིན་གུང"===t&&e<5||"དགོང་དག"===t?e+12:e},meridiem:function(e,t,a){return e<4?"མཚན་མོ":e<10?"ཞོགས་ཀས":e<17?"ཉིན་གུང":e<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}})}(a(421))},3922:function(e,t,a){!function(e){"use strict";function t(e,t,a){return e+" "+function(e,t){return 2===t?function(e){var t={m:"v",b:"v",d:"z"};return void 0===t[e.charAt(0)]?e:t[e.charAt(0)]+e.substring(1)}(e):e}({mm:"munutenn",MM:"miz",dd:"devezh"}[a],e)}function a(e){return e>9?a(e%10):e}var s=[/^gen/i,/^c[ʼ\']hwe/i,/^meu/i,/^ebr/i,/^mae/i,/^(mez|eve)/i,/^gou/i,/^eos/i,/^gwe/i,/^her/i,/^du/i,/^ker/i],n=/^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,i=[/^Su/i,/^Lu/i,/^Me([^r]|$)/i,/^Mer/i,/^Ya/i,/^Gw/i,/^Sa/i];e.defineLocale("br",{months:"Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParse:i,fullWeekdaysParse:[/^sul/i,/^lun/i,/^meurzh/i,/^merc[ʼ\']her/i,/^yaou/i,/^gwener/i,/^sadorn/i],shortWeekdaysParse:[/^Sul/i,/^Lun/i,/^Meu/i,/^Mer/i,/^Yao/i,/^Gwe/i,/^Sad/i],minWeekdaysParse:i,monthsRegex:n,monthsShortRegex:n,monthsStrictRegex:/^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,monthsShortStrictRegex:/^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,monthsParse:s,longMonthsParse:s,shortMonthsParse:s,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY HH:mm",LLLL:"dddd, D [a viz] MMMM YYYY HH:mm"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warcʼhoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Decʼh da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s ʼzo",s:"un nebeud segondennoù",ss:"%d eilenn",m:"ur vunutenn",mm:t,h:"un eur",hh:"%d eur",d:"un devezh",dd:t,M:"ur miz",MM:t,y:"ur bloaz",yy:function(e){switch(a(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(añ|vet)/,ordinal:function(e){return e+(1===e?"añ":"vet")},week:{dow:1,doy:4},meridiemParse:/a.m.|g.m./,isPM:function(e){return"g.m."===e},meridiem:function(e,t,a){return e<12?"a.m.":"g.m."}})}(a(421))},8932:function(e,t,a){!function(e){"use strict";function t(e,t,a){var s=e+" ";switch(a){case"ss":return s+(1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi");case"m":return t?"jedna minuta":"jedne minute";case"mm":return s+(1===e?"minuta":2===e||3===e||4===e?"minute":"minuta");case"h":return t?"jedan sat":"jednog sata";case"hh":return s+(1===e?"sat":2===e||3===e||4===e?"sata":"sati");case"dd":return s+(1===e?"dan":"dana");case"MM":return s+(1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci");case"yy":return s+(1===e?"godina":2===e||3===e||4===e?"godine":"godina")}}e.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(a(421))},3246:function(e,t,a){!function(e){"use strict";e.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var a=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(a="a"),e+a},week:{dow:1,doy:4}})}(a(421))},8208:function(e,t,a){!function(e){"use strict";var t={format:"leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),standalone:"ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince".split("_")},a="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),s=[/^led/i,/^úno/i,/^bře/i,/^dub/i,/^kvě/i,/^(čvn|červen$|června)/i,/^(čvc|červenec|července)/i,/^srp/i,/^zář/i,/^říj/i,/^lis/i,/^pro/i],n=/^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;function i(e){return e>1&&e<5&&1!=~~(e/10)}function r(e,t,a,s){var n=e+" ";switch(a){case"s":return t||s?"pár sekund":"pár sekundami";case"ss":return t||s?n+(i(e)?"sekundy":"sekund"):n+"sekundami";case"m":return t?"minuta":s?"minutu":"minutou";case"mm":return t||s?n+(i(e)?"minuty":"minut"):n+"minutami";case"h":return t?"hodina":s?"hodinu":"hodinou";case"hh":return t||s?n+(i(e)?"hodiny":"hodin"):n+"hodinami";case"d":return t||s?"den":"dnem";case"dd":return t||s?n+(i(e)?"dny":"dní"):n+"dny";case"M":return t||s?"měsíc":"měsícem";case"MM":return t||s?n+(i(e)?"měsíce":"měsíců"):n+"měsíci";case"y":return t||s?"rok":"rokem";case"yy":return t||s?n+(i(e)?"roky":"let"):n+"lety"}}e.defineLocale("cs",{months:t,monthsShort:a,monthsRegex:n,monthsShortRegex:n,monthsStrictRegex:/^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,monthsParse:s,longMonthsParse:s,shortMonthsParse:s,weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(421))},6492:function(e,t,a){!function(e){"use strict";e.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(e){return e+(/сехет$/i.exec(e)?"рен":/ҫул$/i.exec(e)?"тан":"ран")},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}})}(a(421))},1883:function(e,t,a){!function(e){"use strict";e.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(e){var t="";return e>20?t=40===e||50===e||60===e||80===e||100===e?"fed":"ain":e>0&&(t=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][e]),e+t},week:{dow:1,doy:4}})}(a(421))},2285:function(e,t,a){!function(e){"use strict";e.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(421))},3082:function(e,t,a){!function(e){"use strict";function t(e,t,a,s){var n={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?n[a][0]:n[a][1]}e.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(421))},9076:function(e,t,a){!function(e){"use strict";function t(e,t,a,s){var n={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?n[a][0]:n[a][1]}e.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(421))},6454:function(e,t,a){!function(e){"use strict";function t(e,t,a,s){var n={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?n[a][0]:n[a][1]}e.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(421))},9016:function(e,t,a){!function(e){"use strict";var t=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],a=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];e.defineLocale("dv",{months:t,monthsShort:t,weekdays:a,weekdaysShort:a,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(e){return"މފ"===e},meridiem:function(e,t,a){return e<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:7,doy:12}})}(a(421))},3093:function(e,t,a){!function(e){"use strict";e.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(e,t){return e?"string"==typeof t&&/D/.test(t.substring(0,t.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(e,t,a){return e>11?a?"μμ":"ΜΜ":a?"πμ":"ΠΜ"},isPM:function(e){return"μ"===(e+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){return 6===this.day()?"[το προηγούμενο] dddd [{}] LT":"[την προηγούμενη] dddd [{}] LT"},sameElse:"L"},calendar:function(e,t){var a,s=this._calendarEl[e],n=t&&t.hours();return a=s,("undefined"!=typeof Function&&a instanceof Function||"[object Function]"===Object.prototype.toString.call(a))&&(s=s.apply(t)),s.replace("{}",n%12==1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}})}(a(421))},5535:function(e,t,a){!function(e){"use strict";e.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:0,doy:4}})}(a(421))},2610:function(e,t,a){!function(e){"use strict";e.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(a(421))},8386:function(e,t,a){!function(e){"use strict";e.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(a(421))},5272:function(e,t,a){!function(e){"use strict";e.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(a(421))},3563:function(e,t,a){!function(e){"use strict";e.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(a(421))},8604:function(e,t,a){!function(e){"use strict";e.defineLocale("en-in",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:0,doy:6}})}(a(421))},2140:function(e,t,a){!function(e){"use strict";e.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(a(421))},8217:function(e,t,a){!function(e){"use strict";e.defineLocale("en-sg",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(a(421))},9823:function(e,t,a){!function(e){"use strict";e.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec".split("_"),weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"[la] D[-an de] MMMM, YYYY",LLL:"[la] D[-an de] MMMM, YYYY HH:mm",LLLL:"dddd[n], [la] D[-an de] MMMM, YYYY HH:mm",llll:"ddd, [la] D[-an de] MMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(e){return"p"===e.charAt(0).toLowerCase()},meridiem:function(e,t,a){return e>11?a?"p.t.m.":"P.T.M.":a?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd[n je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasintan] dddd[n je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %s",s:"kelkaj sekundoj",ss:"%d sekundoj",m:"unu minuto",mm:"%d minutoj",h:"unu horo",hh:"%d horoj",d:"unu tago",dd:"%d tagoj",M:"unu monato",MM:"%d monatoj",y:"unu jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}(a(421))},9546:function(e,t,a){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),a="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),s=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],n=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,s){return e?/-MMM-/.test(s)?a[e.month()]:t[e.month()]:t},monthsRegex:n,monthsShortRegex:n,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:s,longMonthsParse:s,shortMonthsParse:s,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(a(421))},9089:function(e,t,a){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),a="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),s=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],n=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-mx",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,s){return e?/-MMM-/.test(s)?a[e.month()]:t[e.month()]:t},monthsRegex:n,monthsShortRegex:n,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:s,longMonthsParse:s,shortMonthsParse:s,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:4},invalidDate:"Fecha inválida"})}(a(421))},7781:function(e,t,a){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),a="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),s=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],n=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,s){return e?/-MMM-/.test(s)?a[e.month()]:t[e.month()]:t},monthsRegex:n,monthsShortRegex:n,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:s,longMonthsParse:s,shortMonthsParse:s,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:6}})}(a(421))},312:function(e,t,a){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),a="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),s=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],n=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,s){return e?/-MMM-/.test(s)?a[e.month()]:t[e.month()]:t},monthsRegex:n,monthsShortRegex:n,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:s,longMonthsParse:s,shortMonthsParse:s,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4},invalidDate:"Fecha inválida"})}(a(421))},8563:function(e,t,a){!function(e){"use strict";function t(e,t,a,s){var n={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["ühe minuti","üks minut"],mm:[e+" minuti",e+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[e+" tunni",e+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[e+" kuu",e+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[e+" aasta",e+" aastat"]};return t?n[a][2]?n[a][2]:n[a][1]:s?n[a][0]:n[a][1]}e.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:"%d päeva",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(421))},4003:function(e,t,a){!function(e){"use strict";e.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(a(421))},463:function(e,t,a){!function(e){"use strict";var t={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},a={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};e.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(e){return/بعد از ظهر/.test(e)},meridiem:function(e,t,a){return e<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"%d ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[۰-۹]/g,(function(e){return a[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}})}(a(421))},8941:function(e,t,a){!function(e){"use strict";var t="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),a=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",t[7],t[8],t[9]];function s(e,s,n,i){var r="";switch(n){case"s":return i?"muutaman sekunnin":"muutama sekunti";case"ss":r=i?"sekunnin":"sekuntia";break;case"m":return i?"minuutin":"minuutti";case"mm":r=i?"minuutin":"minuuttia";break;case"h":return i?"tunnin":"tunti";case"hh":r=i?"tunnin":"tuntia";break;case"d":return i?"päivän":"päivä";case"dd":r=i?"päivän":"päivää";break;case"M":return i?"kuukauden":"kuukausi";case"MM":r=i?"kuukauden":"kuukautta";break;case"y":return i?"vuoden":"vuosi";case"yy":r=i?"vuoden":"vuotta"}return function(e,s){return e<10?s?a[e]:t[e]:e}(e,i)+" "+r}e.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s,ss:s,m:s,mm:s,h:s,hh:s,d:s,dd:s,M:s,MM:s,y:s,yy:s},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(421))},1742:function(e,t,a){!function(e){"use strict";e.defineLocale("fil",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(a(421))},6:function(e,t,a){!function(e){"use strict";e.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaður",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(421))},761:function(e,t,a){!function(e){"use strict";e.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}}})}(a(421))},982:function(e,t,a){!function(e){"use strict";e.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(a(421))},2346:function(e,t,a){!function(e){"use strict";var t=/(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,a=[/^janv/i,/^févr/i,/^mars/i,/^avr/i,/^mai/i,/^juin/i,/^juil/i,/^août/i,/^sept/i,/^oct/i,/^nov/i,/^déc/i];e.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsRegex:t,monthsShortRegex:t,monthsStrictRegex:/^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,monthsShortStrictRegex:/(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",w:"une semaine",ww:"%d semaines",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(e,t){switch(t){case"D":return e+(1===e?"er":"");default:case"M":case"Q":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(a(421))},4934:function(e,t,a){!function(e){"use strict";var t="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),a="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");e.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(e,s){return e?/-MMM-/.test(s)?a[e.month()]:t[e.month()]:t},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(a(421))},2670:function(e,t,a){!function(e){"use strict";e.defineLocale("ga",{months:["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Meitheamh","Iúil","Lúnasa","Meán Fómhair","Deireadh Fómhair","Samhain","Nollaig"],monthsShort:["Ean","Feabh","Márt","Aib","Beal","Meith","Iúil","Lún","M.F.","D.F.","Samh","Noll"],monthsParseExact:!0,weekdays:["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Sathairn"],weekdaysShort:["Domh","Luan","Máirt","Céad","Déar","Aoine","Sath"],weekdaysMin:["Do","Lu","Má","Cé","Dé","A","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Amárach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inné ag] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s ó shin",s:"cúpla soicind",ss:"%d soicind",m:"nóiméad",mm:"%d nóiméad",h:"uair an chloig",hh:"%d uair an chloig",d:"lá",dd:"%d lá",M:"mí",MM:"%d míonna",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(a(421))},1733:function(e,t,a){!function(e){"use strict";e.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],monthsShort:["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],monthsParseExact:!0,weekdays:["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["Dò","Lu","Mà","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(a(421))},2271:function(e,t,a){!function(e){"use strict";e.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return 0===e.indexOf("un")?"n"+e:"en "+e},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(a(421))},5537:function(e,t,a){!function(e){"use strict";function t(e,t,a,s){var n={s:["थोडया सॅकंडांनी","थोडे सॅकंड"],ss:[e+" सॅकंडांनी",e+" सॅकंड"],m:["एका मिणटान","एक मिनूट"],mm:[e+" मिणटांनी",e+" मिणटां"],h:["एका वरान","एक वर"],hh:[e+" वरांनी",e+" वरां"],d:["एका दिसान","एक दीस"],dd:[e+" दिसांनी",e+" दीस"],M:["एका म्हयन्यान","एक म्हयनो"],MM:[e+" म्हयन्यानी",e+" म्हयने"],y:["एका वर्सान","एक वर्स"],yy:[e+" वर्सांनी",e+" वर्सां"]};return s?n[a][0]:n[a][1]}e.defineLocale("gom-deva",{months:{standalone:"जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),format:"जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार".split("_"),weekdaysShort:"आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.".split("_"),weekdaysMin:"आ_सो_मं_बु_ब्रे_सु_शे".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [वाजतां]",LTS:"A h:mm:ss [वाजतां]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [वाजतां]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [वाजतां]",llll:"ddd, D MMM YYYY, A h:mm [वाजतां]"},calendar:{sameDay:"[आयज] LT",nextDay:"[फाल्यां] LT",nextWeek:"[फुडलो] dddd[,] LT",lastDay:"[काल] LT",lastWeek:"[फाटलो] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s आदीं",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(वेर)/,ordinal:function(e,t){return"D"===t?e+"वेर":e},week:{dow:0,doy:3},meridiemParse:/राती|सकाळीं|दनपारां|सांजे/,meridiemHour:function(e,t){return 12===e&&(e=0),"राती"===t?e<4?e:e+12:"सकाळीं"===t?e:"दनपारां"===t?e>12?e:e+12:"सांजे"===t?e+12:void 0},meridiem:function(e,t,a){return e<4?"राती":e<12?"सकाळीं":e<16?"दनपारां":e<20?"सांजे":"राती"}})}(a(421))},763:function(e,t,a){!function(e){"use strict";function t(e,t,a,s){var n={s:["thoddea sekondamni","thodde sekond"],ss:[e+" sekondamni",e+" sekond"],m:["eka mintan","ek minut"],mm:[e+" mintamni",e+" mintam"],h:["eka voran","ek vor"],hh:[e+" voramni",e+" voram"],d:["eka disan","ek dis"],dd:[e+" disamni",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineamni",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsamni",e+" vorsam"]};return s?n[a][0]:n[a][1]}e.defineLocale("gom-latn",{months:{standalone:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),format:"Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Fuddlo] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fattlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,t){return"D"===t?e+"er":e},week:{dow:0,doy:3},meridiemParse:/rati|sokallim|donparam|sanje/,meridiemHour:function(e,t){return 12===e&&(e=0),"rati"===t?e<4?e:e+12:"sokallim"===t?e:"donparam"===t?e>12?e:e+12:"sanje"===t?e+12:void 0},meridiem:function(e,t,a){return e<4?"rati":e<12?"sokallim":e<16?"donparam":e<20?"sanje":"rati"}})}(a(421))},4125:function(e,t,a){!function(e){"use strict";var t={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},a={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"};e.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".split("_"),longDateFormat:{LT:"A h:mm વાગ્યે",LTS:"A h:mm:ss વાગ્યે",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm વાગ્યે",LLLL:"dddd, D MMMM YYYY, A h:mm વાગ્યે"},calendar:{sameDay:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પહેલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(e){return e.replace(/[૧૨૩૪૫૬૭૮૯૦]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/રાત|બપોર|સવાર|સાંજ/,meridiemHour:function(e,t){return 12===e&&(e=0),"રાત"===t?e<4?e:e+12:"સવાર"===t?e:"બપોર"===t?e>=10?e:e+12:"સાંજ"===t?e+12:void 0},meridiem:function(e,t,a){return e<4?"રાત":e<10?"સવાર":e<17?"બપોર":e<20?"સાંજ":"રાત"},week:{dow:0,doy:6}})}(a(421))},1651:function(e,t,a){!function(e){"use strict";e.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(e){return 2===e?"שעתיים":e+" שעות"},d:"יום",dd:function(e){return 2===e?"יומיים":e+" ימים"},M:"חודש",MM:function(e){return 2===e?"חודשיים":e+" חודשים"},y:"שנה",yy:function(e){return 2===e?"שנתיים":e%10==0&&10!==e?e+" שנה":e+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(e){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(e)},meridiem:function(e,t,a){return e<5?"לפנות בוקר":e<10?"בבוקר":e<12?a?'לפנה"צ':"לפני הצהריים":e<18?a?'אחה"צ':"אחרי הצהריים":"בערב"}})}(a(421))},8602:function(e,t,a){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},a={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},s=[/^जन/i,/^फ़र|फर/i,/^मार्च/i,/^अप्रै/i,/^मई/i,/^जून/i,/^जुल/i,/^अग/i,/^सितं|सित/i,/^अक्टू/i,/^नव|नवं/i,/^दिसं|दिस/i];e.defineLocale("hi",{months:{format:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),standalone:"जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर".split("_")},monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},monthsParse:s,longMonthsParse:s,shortMonthsParse:[/^जन/i,/^फ़र/i,/^मार्च/i,/^अप्रै/i,/^मई/i,/^जून/i,/^जुल/i,/^अग/i,/^सित/i,/^अक्टू/i,/^नव/i,/^दिस/i],monthsRegex:/^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,monthsShortRegex:/^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,monthsStrictRegex:/^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,monthsShortStrictRegex:/^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i,calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात"===t?e<4?e:e+12:"सुबह"===t?e:"दोपहर"===t?e>=10?e:e+12:"शाम"===t?e+12:void 0},meridiem:function(e,t,a){return e<4?"रात":e<10?"सुबह":e<17?"दोपहर":e<20?"शाम":"रात"},week:{dow:0,doy:6}})}(a(421))},8641:function(e,t,a){!function(e){"use strict";function t(e,t,a){var s=e+" ";switch(a){case"ss":return s+(1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi");case"m":return t?"jedna minuta":"jedne minute";case"mm":return s+(1===e?"minuta":2===e||3===e||4===e?"minute":"minuta");case"h":return t?"jedan sat":"jednog sata";case"hh":return s+(1===e?"sat":2===e||3===e||4===e?"sata":"sati");case"dd":return s+(1===e?"dan":"dana");case"MM":return s+(1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci");case"yy":return s+(1===e?"godina":2===e||3===e||4===e?"godine":"godina")}}e.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"Do MMMM YYYY",LLL:"Do MMMM YYYY H:mm",LLLL:"dddd, Do MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:return"[prošlu] [nedjelju] [u] LT";case 3:return"[prošlu] [srijedu] [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(a(421))},3079:function(e,t,a){!function(e){"use strict";var t="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");function a(e,t,a,s){var n=e;switch(a){case"s":return s||t?"néhány másodperc":"néhány másodperce";case"ss":return n+(s||t)?" másodperc":" másodperce";case"m":return"egy"+(s||t?" perc":" perce");case"mm":return n+(s||t?" perc":" perce");case"h":return"egy"+(s||t?" óra":" órája");case"hh":return n+(s||t?" óra":" órája");case"d":return"egy"+(s||t?" nap":" napja");case"dd":return n+(s||t?" nap":" napja");case"M":return"egy"+(s||t?" hónap":" hónapja");case"MM":return n+(s||t?" hónap":" hónapja");case"y":return"egy"+(s||t?" év":" éve");case"yy":return n+(s||t?" év":" éve")}return""}function s(e){return(e?"":"[múlt] ")+"["+t[this.day()]+"] LT[-kor]"}e.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,t,a){return e<12?!0===a?"de":"DE":!0===a?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return s.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return s.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(421))},443:function(e,t,a){!function(e){"use strict";e.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(e){return/^(ցերեկվա|երեկոյան)$/.test(e)},meridiem:function(e){return e<4?"գիշերվա":e<12?"առավոտվա":e<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(e,t){switch(t){case"DDD":case"w":case"W":case"DDDo":return 1===e?e+"-ին":e+"-րդ";default:return e}},week:{dow:1,doy:7}})}(a(421))},8963:function(e,t,a){!function(e){"use strict";e.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"siang"===t?e>=11?e:e+12:"sore"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,a){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:0,doy:6}})}(a(421))},1343:function(e,t,a){!function(e){"use strict";function t(e){return e%100==11||e%10!=1}function a(e,a,s,n){var i=e+" ";switch(s){case"s":return a||n?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return t(e)?i+(a||n?"sekúndur":"sekúndum"):i+"sekúnda";case"m":return a?"mínúta":"mínútu";case"mm":return t(e)?i+(a||n?"mínútur":"mínútum"):a?i+"mínúta":i+"mínútu";case"hh":return t(e)?i+(a||n?"klukkustundir":"klukkustundum"):i+"klukkustund";case"d":return a?"dagur":n?"dag":"degi";case"dd":return t(e)?a?i+"dagar":i+(n?"daga":"dögum"):a?i+"dagur":i+(n?"dag":"degi");case"M":return a?"mánuður":n?"mánuð":"mánuði";case"MM":return t(e)?a?i+"mánuðir":i+(n?"mánuði":"mánuðum"):a?i+"mánuður":i+(n?"mánuð":"mánuði");case"y":return a||n?"ár":"ári";case"yy":return t(e)?i+(a||n?"ár":"árum"):i+(a||n?"ár":"ári")}}e.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:a,ss:a,m:a,mm:a,h:"klukkustund",hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(421))},3115:function(e,t,a){!function(e){"use strict";e.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){return 0===this.day()?"[la scorsa] dddd [alle] LT":"[lo scorso] dddd [alle] LT"},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(a(421))},8072:function(e,t,a){!function(e){"use strict";e.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:function(){return"[Oggi a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextDay:function(){return"[Domani a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextWeek:function(){return"dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastDay:function(){return"[Ieri a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastWeek:function(){return 0===this.day()?"[La scorsa] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT":"[Lo scorso] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},sameElse:"L"},relativeTime:{future:"tra %s",past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",w:"una settimana",ww:"%d settimane",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(a(421))},8183:function(e,t,a){!function(e){"use strict";e.defineLocale("ja",{eras:[{since:"2019-05-01",offset:1,name:"令和",narrow:"㋿",abbr:"R"},{since:"1989-01-08",until:"2019-04-30",offset:1,name:"平成",narrow:"㍻",abbr:"H"},{since:"1926-12-25",until:"1989-01-07",offset:1,name:"昭和",narrow:"㍼",abbr:"S"},{since:"1912-07-30",until:"1926-12-24",offset:1,name:"大正",narrow:"㍽",abbr:"T"},{since:"1873-01-01",until:"1912-07-29",offset:6,name:"明治",narrow:"㍾",abbr:"M"},{since:"0001-01-01",until:"1873-12-31",offset:1,name:"西暦",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"紀元前",narrow:"BC",abbr:"BC"}],eraYearOrdinalRegex:/(元|\d+)年/,eraYearOrdinalParse:function(e,t){return"元"===t[1]?1:parseInt(t[1]||e,10)},months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiemParse:/午前|午後/i,isPM:function(e){return"午後"===e},meridiem:function(e,t,a){return e<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:function(e){return e.week()!==this.week()?"[来週]dddd LT":"dddd LT"},lastDay:"[昨日] LT",lastWeek:function(e){return this.week()!==e.week()?"[先週]dddd LT":"dddd LT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}日/,ordinal:function(e,t){switch(t){case"y":return 1===e?"元年":e+"年";case"d":case"D":case"DDD":return e+"日";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",ss:"%d秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}})}(a(421))},1064:function(e,t,a){!function(e){"use strict";e.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(e,t){return 12===e&&(e=0),"enjing"===t?e:"siyang"===t?e>=11?e:e+12:"sonten"===t||"ndalu"===t?e+12:void 0},meridiem:function(e,t,a){return e<11?"enjing":e<15?"siyang":e<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}(a(421))},1999:function(e,t,a){!function(e){"use strict";e.defineLocale("ka",{months:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(e){return e.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,(function(e,t,a){return"ი"===a?t+"ში":t+a+"ში"}))},past:function(e){return/(წამი|წუთი|საათი|დღე|თვე)/.test(e)?e.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(e)?e.replace(/წელი$/,"წლის წინ"):e},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(e){return 0===e?e:1===e?e+"-ლი":e<20||e<=100&&e%20==0||e%100==0?"მე-"+e:e+"-ე"},week:{dow:1,doy:7}})}(a(421))},9360:function(e,t,a){!function(e){"use strict";var t={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};e.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",ss:"%d секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(a(421))},3667:function(e,t,a){!function(e){"use strict";var t={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},a={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"};e.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ព្រឹក|ល្ងាច/,isPM:function(e){return"ល្ងាច"===e},meridiem:function(e,t,a){return e<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/ទី\d{1,2}/,ordinal:"ទី%d",preparse:function(e){return e.replace(/[១២៣៤៥៦៧៨៩០]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},week:{dow:1,doy:4}})}(a(421))},1882:function(e,t,a){!function(e){"use strict";var t={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},a={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"};e.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[ಇಂದು] LT",nextDay:"[ನಾಳೆ] LT",nextWeek:"dddd, LT",lastDay:"[ನಿನ್ನೆ] LT",lastWeek:"[ಕೊನೆಯ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",ss:"%d ಸೆಕೆಂಡುಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"},preparse:function(e){return e.replace(/[೧೨೩೪೫೬೭೮೯೦]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ರಾತ್ರಿ"===t?e<4?e:e+12:"ಬೆಳಿಗ್ಗೆ"===t?e:"ಮಧ್ಯಾಹ್ನ"===t?e>=10?e:e+12:"ಸಂಜೆ"===t?e+12:void 0},meridiem:function(e,t,a){return e<4?"ರಾತ್ರಿ":e<10?"ಬೆಳಿಗ್ಗೆ":e<17?"ಮಧ್ಯಾಹ್ನ":e<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(ನೇ)/,ordinal:function(e){return e+"ನೇ"},week:{dow:0,doy:6}})}(a(421))},2401:function(e,t,a){!function(e){"use strict";e.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(일|월|주)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"일";case"M":return e+"월";case"w":case"W":return e+"주";default:return e}},meridiemParse:/오전|오후/,isPM:function(e){return"오후"===e},meridiem:function(e,t,a){return e<12?"오전":"오후"}})}(a(421))},2583:function(e,t,a){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},a={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},s=["کانونی دووەم","شوبات","ئازار","نیسان","ئایار","حوزەیران","تەمموز","ئاب","ئەیلوول","تشرینی یەكەم","تشرینی دووەم","كانونی یەکەم"];e.defineLocale("ku",{months:s,monthsShort:s,weekdays:"یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌".split("_"),weekdaysShort:"یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌".split("_"),weekdaysMin:"ی_د_س_چ_پ_ه_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ئێواره‌|به‌یانی/,isPM:function(e){return/ئێواره‌/.test(e)},meridiem:function(e,t,a){return e<12?"به‌یانی":"ئێواره‌"},calendar:{sameDay:"[ئه‌مرۆ كاتژمێر] LT",nextDay:"[به‌یانی كاتژمێر] LT",nextWeek:"dddd [كاتژمێر] LT",lastDay:"[دوێنێ كاتژمێر] LT",lastWeek:"dddd [كاتژمێر] LT",sameElse:"L"},relativeTime:{future:"له‌ %s",past:"%s",s:"چه‌ند چركه‌یه‌ك",ss:"چركه‌ %d",m:"یه‌ك خوله‌ك",mm:"%d خوله‌ك",h:"یه‌ك كاتژمێر",hh:"%d كاتژمێر",d:"یه‌ك ڕۆژ",dd:"%d ڕۆژ",M:"یه‌ك مانگ",MM:"%d مانگ",y:"یه‌ك ساڵ",yy:"%d ساڵ"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return a[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(a(421))},6751:function(e,t,a){!function(e){"use strict";var t={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};e.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(a(421))},1193:function(e,t,a){!function(e){"use strict";function t(e,t,a,s){var n={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return t?n[a][0]:n[a][1]}function a(e){if(e=parseInt(e,10),isNaN(e))return!1;if(e<0)return!0;if(e<10)return 4<=e&&e<=7;if(e<100){var t=e%10;return a(0===t?e/10:t)}if(e<1e4){for(;e>=10;)e/=10;return a(e)}return a(e/=1e3)}e.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function(e){return a(e.substr(0,e.indexOf(" ")))?"a "+e:"an "+e},past:function(e){return a(e.substr(0,e.indexOf(" ")))?"viru "+e:"virun "+e},s:"e puer Sekonnen",ss:"%d Sekonnen",m:t,mm:"%d Minutten",h:t,hh:"%d Stonnen",d:t,dd:"%d Deeg",M:t,MM:"%d Méint",y:t,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(421))},769:function(e,t,a){!function(e){"use strict";e.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(e){return"ຕອນແລງ"===e},meridiem:function(e,t,a){return e<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",ss:"%d ວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},dayOfMonthOrdinalParse:/(ທີ່)\d{1,2}/,ordinal:function(e){return"ທີ່"+e}})}(a(421))},4409:function(e,t,a){!function(e){"use strict";var t={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};function a(e,t,a,s){return t?n(a)[0]:s?n(a)[1]:n(a)[2]}function s(e){return e%10==0||e>10&&e<20}function n(e){return t[e].split("_")}function i(e,t,i,r){var o=e+" ";return 1===e?o+a(0,t,i[0],r):t?o+(s(e)?n(i)[1]:n(i)[0]):r?o+n(i)[1]:o+(s(e)?n(i)[1]:n(i)[2])}e.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:function(e,t,a,s){return t?"kelios sekundės":s?"kelių sekundžių":"kelias sekundes"},ss:i,m:a,mm:i,h:a,hh:i,d:a,dd:i,M:a,MM:i,y:a,yy:i},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}})}(a(421))},9262:function(e,t,a){!function(e){"use strict";var t={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function a(e,t,a){return a?t%10==1&&t%100!=11?e[2]:e[3]:t%10==1&&t%100!=11?e[0]:e[1]}function s(e,s,n){return e+" "+a(t[n],e,s)}function n(e,s,n){return a(t[n],e,s)}e.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:function(e,t){return t?"dažas sekundes":"dažām sekundēm"},ss:s,m:n,mm:s,h:n,hh:s,d:n,dd:s,M:n,MM:s,y:n,yy:s},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(421))},7514:function(e,t,a){!function(e){"use strict";var t={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,a,s){var n=t.words[s];return 1===s.length?a?n[0]:n[1]:e+" "+t.correctGrammaticalCase(e,n)}};e.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mjesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(a(421))},3434:function(e,t,a){!function(e){"use strict";e.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",ss:"%d hēkona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(a(421))},610:function(e,t,a){!function(e){"use strict";e.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"за %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"една минута",mm:"%d минути",h:"еден час",hh:"%d часа",d:"еден ден",dd:"%d дена",M:"еден месец",MM:"%d месеци",y:"една година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,a=e%100;return 0===e?e+"-ев":0===a?e+"-ен":a>10&&a<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(a(421))},1654:function(e,t,a){!function(e){"use strict";e.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(e,t){return 12===e&&(e=0),"രാത്രി"===t&&e>=4||"ഉച്ച കഴിഞ്ഞ്"===t||"വൈകുന്നേരം"===t?e+12:e},meridiem:function(e,t,a){return e<4?"രാത്രി":e<12?"രാവിലെ":e<17?"ഉച്ച കഴിഞ്ഞ്":e<20?"വൈകുന്നേരം":"രാത്രി"}})}(a(421))},6730:function(e,t,a){!function(e){"use strict";function t(e,t,a,s){switch(a){case"s":return t?"хэдхэн секунд":"хэдхэн секундын";case"ss":return e+(t?" секунд":" секундын");case"m":case"mm":return e+(t?" минут":" минутын");case"h":case"hh":return e+(t?" цаг":" цагийн");case"d":case"dd":return e+(t?" өдөр":" өдрийн");case"M":case"MM":return e+(t?" сар":" сарын");case"y":case"yy":return e+(t?" жил":" жилийн");default:return e}}e.defineLocale("mn",{months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),monthsParseExact:!0,weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},meridiemParse:/ҮӨ|ҮХ/i,isPM:function(e){return"ҮХ"===e},meridiem:function(e,t,a){return e<12?"ҮӨ":"ҮХ"},calendar:{sameDay:"[Өнөөдөр] LT",nextDay:"[Маргааш] LT",nextWeek:"[Ирэх] dddd LT",lastDay:"[Өчигдөр] LT",lastWeek:"[Өнгөрсөн] dddd LT",sameElse:"L"},relativeTime:{future:"%s дараа",past:"%s өмнө",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2} өдөр/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+" өдөр";default:return e}}})}(a(421))},7196:function(e,t,a){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},a={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function s(e,t,a,s){var n="";if(t)switch(a){case"s":n="काही सेकंद";break;case"ss":n="%d सेकंद";break;case"m":n="एक मिनिट";break;case"mm":n="%d मिनिटे";break;case"h":n="एक तास";break;case"hh":n="%d तास";break;case"d":n="एक दिवस";break;case"dd":n="%d दिवस";break;case"M":n="एक महिना";break;case"MM":n="%d महिने";break;case"y":n="एक वर्ष";break;case"yy":n="%d वर्षे"}else switch(a){case"s":n="काही सेकंदां";break;case"ss":n="%d सेकंदां";break;case"m":n="एका मिनिटा";break;case"mm":n="%d मिनिटां";break;case"h":n="एका तासा";break;case"hh":n="%d तासां";break;case"d":n="एका दिवसा";break;case"dd":n="%d दिवसां";break;case"M":n="एका महिन्या";break;case"MM":n="%d महिन्यां";break;case"y":n="एका वर्षा";break;case"yy":n="%d वर्षां"}return n.replace(/%d/i,e)}e.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s,ss:s,m:s,mm:s,h:s,hh:s,d:s,dd:s,M:s,MM:s,y:s,yy:s},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,meridiemHour:function(e,t){return 12===e&&(e=0),"पहाटे"===t||"सकाळी"===t?e:"दुपारी"===t||"सायंकाळी"===t||"रात्री"===t?e>=12?e:e+12:void 0},meridiem:function(e,t,a){return e>=0&&e<6?"पहाटे":e<12?"सकाळी":e<17?"दुपारी":e<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})}(a(421))},4750:function(e,t,a){!function(e){"use strict";e.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,a){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(a(421))},487:function(e,t,a){!function(e){"use strict";e.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,a){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(a(421))},8856:function(e,t,a){!function(e){"use strict";e.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[Għada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(a(421))},1240:function(e,t,a){!function(e){"use strict";var t={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},a={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};e.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(e){return e.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},week:{dow:1,doy:4}})}(a(421))},2121:function(e,t,a){!function(e){"use strict";e.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",w:"en uke",ww:"%d uker",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(421))},9802:function(e,t,a){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},a={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};e.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(e,t){return 12===e&&(e=0),"राति"===t?e<4?e:e+12:"बिहान"===t?e:"दिउँसो"===t?e>=10?e:e+12:"साँझ"===t?e+12:void 0},meridiem:function(e,t,a){return e<3?"राति":e<12?"बिहान":e<16?"दिउँसो":e<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}})}(a(421))},3497:function(e,t,a){!function(e){"use strict";var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),a="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),s=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],n=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,s){return e?/-MMM-/.test(s)?a[e.month()]:t[e.month()]:t},monthsRegex:n,monthsShortRegex:n,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:s,longMonthsParse:s,shortMonthsParse:s,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(a(421))},737:function(e,t,a){!function(e){"use strict";var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),a="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),s=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],n=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,s){return e?/-MMM-/.test(s)?a[e.month()]:t[e.month()]:t},monthsRegex:n,monthsShortRegex:n,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:s,longMonthsParse:s,shortMonthsParse:s,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",w:"één week",ww:"%d weken",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(a(421))},8153:function(e,t,a){!function(e){"use strict";e.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"su._må._ty._on._to._fr._lau.".split("_"),weekdaysMin:"su_må_ty_on_to_fr_la".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",w:"ei veke",ww:"%d veker",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(421))},5173:function(e,t,a){!function(e){"use strict";e.defineLocale("oc-lnc",{months:{standalone:"genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre".split("_"),format:"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dm._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dm_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:"[uèi a] LT",nextDay:"[deman a] LT",nextWeek:"dddd [a] LT",lastDay:"[ièr a] LT",lastWeek:"dddd [passat a] LT",sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"unas segondas",ss:"%d segondas",m:"una minuta",mm:"%d minutas",h:"una ora",hh:"%d oras",d:"un jorn",dd:"%d jorns",M:"un mes",MM:"%d meses",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var a=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(a="a"),e+a},week:{dow:1,doy:4}})}(a(421))},499:function(e,t,a){!function(e){"use strict";var t={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},a={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};e.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"[ਅਗਲਾ] dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",ss:"%d ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(e){return e.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ਰਾਤ"===t?e<4?e:e+12:"ਸਵੇਰ"===t?e:"ਦੁਪਹਿਰ"===t?e>=10?e:e+12:"ਸ਼ਾਮ"===t?e+12:void 0},meridiem:function(e,t,a){return e<4?"ਰਾਤ":e<10?"ਸਵੇਰ":e<17?"ਦੁਪਹਿਰ":e<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}})}(a(421))},3629:function(e,t,a){!function(e){"use strict";var t="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),a="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_"),s=[/^sty/i,/^lut/i,/^mar/i,/^kwi/i,/^maj/i,/^cze/i,/^lip/i,/^sie/i,/^wrz/i,/^paź/i,/^lis/i,/^gru/i];function n(e){return e%10<5&&e%10>1&&~~(e/10)%10!=1}function i(e,t,a){var s=e+" ";switch(a){case"ss":return s+(n(e)?"sekundy":"sekund");case"m":return t?"minuta":"minutę";case"mm":return s+(n(e)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return s+(n(e)?"godziny":"godzin");case"ww":return s+(n(e)?"tygodnie":"tygodni");case"MM":return s+(n(e)?"miesiące":"miesięcy");case"yy":return s+(n(e)?"lata":"lat")}}e.defineLocale("pl",{months:function(e,s){return e?/D MMMM/.test(s)?a[e.month()]:t[e.month()]:t},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),monthsParse:s,longMonthsParse:s,shortMonthsParse:s,weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:i,m:i,mm:i,h:i,hh:i,d:"1 dzień",dd:"%d dni",w:"tydzień",ww:i,M:"miesiąc",MM:i,y:"rok",yy:i},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(421))},3312:function(e,t,a){!function(e){"use strict";e.defineLocale("pt-br",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"do_2ª_3ª_4ª_5ª_6ª_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",invalidDate:"Data inválida"})}(a(421))},5702:function(e,t,a){!function(e){"use strict";e.defineLocale("pt",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",w:"uma semana",ww:"%d semanas",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(a(421))},719:function(e,t,a){!function(e){"use strict";function t(e,t,a){var s=" ";return(e%100>=20||e>=100&&e%100==0)&&(s=" de "),e+s+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",ww:"săptămâni",MM:"luni",yy:"ani"}[a]}e.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:t,m:"un minut",mm:t,h:"o oră",hh:t,d:"o zi",dd:t,w:"o săptămână",ww:t,M:"o lună",MM:t,y:"un an",yy:t},week:{dow:1,doy:7}})}(a(421))},3778:function(e,t,a){!function(e){"use strict";function t(e,t,a){return"m"===a?t?"минута":"минуту":e+" "+(s=+e,n={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",ww:"неделя_недели_недель",MM:"месяц_месяца_месяцев",yy:"год_года_лет"}[a].split("_"),s%10==1&&s%100!=11?n[0]:s%10>=2&&s%10<=4&&(s%100<10||s%100>=20)?n[1]:n[2]);var s,n}var a=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];e.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:a,longMonthsParse:a,shortMonthsParse:a,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:t,m:t,mm:t,h:"час",hh:t,d:"день",dd:t,w:"неделя",ww:t,M:"месяц",MM:t,y:"год",yy:t},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(e){return/^(дня|вечера)$/.test(e)},meridiem:function(e,t,a){return e<4?"ночи":e<12?"утра":e<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-я";default:return e}},week:{dow:1,doy:4}})}(a(421))},5545:function(e,t,a){!function(e){"use strict";var t=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],a=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];e.defineLocale("sd",{months:t,monthsShort:t,weekdays:a,weekdaysShort:a,weekdaysMin:a,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,a){return e<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(a(421))},5811:function(e,t,a){!function(e){"use strict";e.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(421))},2015:function(e,t,a){!function(e){"use strict";e.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} වැනි/,ordinal:function(e){return e+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(e){return"ප.ව."===e||"පස් වරු"===e},meridiem:function(e,t,a){return e>11?a?"ප.ව.":"පස් වරු":a?"පෙ.ව.":"පෙර වරු"}})}(a(421))},1587:function(e,t,a){!function(e){"use strict";var t="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),a="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");function s(e){return e>1&&e<5}function n(e,t,a,n){var i=e+" ";switch(a){case"s":return t||n?"pár sekúnd":"pár sekundami";case"ss":return t||n?i+(s(e)?"sekundy":"sekúnd"):i+"sekundami";case"m":return t?"minúta":n?"minútu":"minútou";case"mm":return t||n?i+(s(e)?"minúty":"minút"):i+"minútami";case"h":return t?"hodina":n?"hodinu":"hodinou";case"hh":return t||n?i+(s(e)?"hodiny":"hodín"):i+"hodinami";case"d":return t||n?"deň":"dňom";case"dd":return t||n?i+(s(e)?"dni":"dní"):i+"dňami";case"M":return t||n?"mesiac":"mesiacom";case"MM":return t||n?i+(s(e)?"mesiace":"mesiacov"):i+"mesiacmi";case"y":return t||n?"rok":"rokom";case"yy":return t||n?i+(s(e)?"roky":"rokov"):i+"rokmi"}}e.defineLocale("sk",{months:t,monthsShort:a,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:case 4:case 5:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(421))},147:function(e,t,a){!function(e){"use strict";function t(e,t,a,s){var n=e+" ";switch(a){case"s":return t||s?"nekaj sekund":"nekaj sekundami";case"ss":return n+(1===e?t?"sekundo":"sekundi":2===e?t||s?"sekundi":"sekundah":e<5?t||s?"sekunde":"sekundah":"sekund");case"m":return t?"ena minuta":"eno minuto";case"mm":return n+(1===e?t?"minuta":"minuto":2===e?t||s?"minuti":"minutama":e<5?t||s?"minute":"minutami":t||s?"minut":"minutami");case"h":return t?"ena ura":"eno uro";case"hh":return n+(1===e?t?"ura":"uro":2===e?t||s?"uri":"urama":e<5?t||s?"ure":"urami":t||s?"ur":"urami");case"d":return t||s?"en dan":"enim dnem";case"dd":return n+(1===e?t||s?"dan":"dnem":2===e?t||s?"dni":"dnevoma":t||s?"dni":"dnevi");case"M":return t||s?"en mesec":"enim mesecem";case"MM":return n+(1===e?t||s?"mesec":"mesecem":2===e?t||s?"meseca":"mesecema":e<5?t||s?"mesece":"meseci":t||s?"mesecev":"meseci");case"y":return t||s?"eno leto":"enim letom";case"yy":return n+(1===e?t||s?"leto":"letom":2===e?t||s?"leti":"letoma":e<5?t||s?"leta":"leti":t||s?"let":"leti")}}e.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(a(421))},6821:function(e,t,a){!function(e){"use strict";e.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,t,a){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(421))},7792:function(e,t,a){!function(e){"use strict";var t={words:{ss:["секунда","секунде","секунди"],m:["један минут","једног минута"],mm:["минут","минута","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],d:["један дан","једног дана"],dd:["дан","дана","дана"],M:["један месец","једног месеца"],MM:["месец","месеца","месеци"],y:["једну годину","једне године"],yy:["годину","године","година"]},correctGrammaticalCase:function(e,t){return e%10>=1&&e%10<=4&&(e%100<10||e%100>=20)?e%10==1?t[0]:t[1]:t[2]},translate:function(e,a,s,n){var i,r=t.words[s];return 1===s.length?"y"===s&&a?"једна година":n||a?r[0]:r[1]:(i=t.correctGrammaticalCase(e,r),"yy"===s&&a&&"годину"===i?e+" година":e+" "+i)}};e.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){return["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:t.translate,dd:t.translate,M:t.translate,MM:t.translate,y:t.translate,yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(a(421))},3019:function(e,t,a){!function(e){"use strict";var t={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],d:["jedan dan","jednog dana"],dd:["dan","dana","dana"],M:["jedan mesec","jednog meseca"],MM:["mesec","meseca","meseci"],y:["jednu godinu","jedne godine"],yy:["godinu","godine","godina"]},correctGrammaticalCase:function(e,t){return e%10>=1&&e%10<=4&&(e%100<10||e%100>=20)?e%10==1?t[0]:t[1]:t[2]},translate:function(e,a,s,n){var i,r=t.words[s];return 1===s.length?"y"===s&&a?"jedna godina":n||a?r[0]:r[1]:(i=t.correctGrammaticalCase(e,r),"yy"===s&&a&&"godinu"===i?e+" godina":e+" "+i)}};e.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:t.translate,dd:t.translate,M:t.translate,MM:t.translate,y:t.translate,yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(a(421))},5078:function(e,t,a){!function(e){"use strict";e.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(e,t,a){return e<11?"ekuseni":e<15?"emini":e<19?"entsambama":"ebusuku"},meridiemHour:function(e,t){return 12===e&&(e=0),"ekuseni"===t?e:"emini"===t?e>=11?e:e+12:"entsambama"===t||"ebusuku"===t?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(a(421))},3593:function(e,t,a){!function(e){"use strict";e.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(\:e|\:a)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?":e":1===t||2===t?":a":":e")},week:{dow:1,doy:4}})}(a(421))},7655:function(e,t,a){!function(e){"use strict";e.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"hh:mm A",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"siku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})}(a(421))},1553:function(e,t,a){!function(e){"use strict";var t={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},a={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};e.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}வது/,ordinal:function(e){return e+"வது"},preparse:function(e){return e.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(e,t,a){return e<2?" யாமம்":e<6?" வைகறை":e<10?" காலை":e<14?" நண்பகல்":e<18?" எற்பாடு":e<22?" மாலை":" யாமம்"},meridiemHour:function(e,t){return 12===e&&(e=0),"யாமம்"===t?e<2?e:e+12:"வைகறை"===t||"காலை"===t||"நண்பகல்"===t&&e>=10?e:e+12},week:{dow:0,doy:6}})}(a(421))},5967:function(e,t,a){!function(e){"use strict";e.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",ss:"%d సెకన్లు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(e,t){return 12===e&&(e=0),"రాత్రి"===t?e<4?e:e+12:"ఉదయం"===t?e:"మధ్యాహ్నం"===t?e>=10?e:e+12:"సాయంత్రం"===t?e+12:void 0},meridiem:function(e,t,a){return e<4?"రాత్రి":e<10?"ఉదయం":e<17?"మధ్యాహ్నం":e<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}})}(a(421))},9236:function(e,t,a){!function(e){"use strict";e.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"segundu balun",ss:"segundu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(a(421))},2091:function(e,t,a){!function(e){"use strict";var t={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"};e.defineLocale("tg",{months:{format:"январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри".split("_"),standalone:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_")},monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Имрӯз соати] LT",nextDay:"[Фардо соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/шаб|субҳ|рӯз|бегоҳ/,meridiemHour:function(e,t){return 12===e&&(e=0),"шаб"===t?e<4?e:e+12:"субҳ"===t?e:"рӯз"===t?e>=11?e:e+12:"бегоҳ"===t?e+12:void 0},meridiem:function(e,t,a){return e<4?"шаб":e<11?"субҳ":e<16?"рӯз":e<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(ум|юм)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(a(421))},4141:function(e,t,a){!function(e){"use strict";e.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(e){return"หลังเที่ยง"===e},meridiem:function(e,t,a){return e<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",w:"1 สัปดาห์",ww:"%d สัปดาห์",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}})}(a(421))},4204:function(e,t,a){!function(e){"use strict";var t={1:"'inji",5:"'inji",8:"'inji",70:"'inji",80:"'inji",2:"'nji",7:"'nji",20:"'nji",50:"'nji",3:"'ünji",4:"'ünji",100:"'ünji",6:"'njy",9:"'unjy",10:"'unjy",30:"'unjy",60:"'ynjy",90:"'ynjy"};e.defineLocale("tk",{months:"Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr".split("_"),monthsShort:"Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek".split("_"),weekdays:"Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe".split("_"),weekdaysShort:"Ýek_Duş_Siş_Çar_Pen_Ann_Şen".split("_"),weekdaysMin:"Ýk_Dş_Sş_Çr_Pn_An_Şn".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün sagat] LT",nextDay:"[ertir sagat] LT",nextWeek:"[indiki] dddd [sagat] LT",lastDay:"[düýn] LT",lastWeek:"[geçen] dddd [sagat] LT",sameElse:"L"},relativeTime:{future:"%s soň",past:"%s öň",s:"birnäçe sekunt",m:"bir minut",mm:"%d minut",h:"bir sagat",hh:"%d sagat",d:"bir gün",dd:"%d gün",M:"bir aý",MM:"%d aý",y:"bir ýyl",yy:"%d ýyl"},ordinal:function(e,a){switch(a){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'unjy";var s=e%10;return e+(t[s]||t[e%100-s]||t[e>=100?100:null])}},week:{dow:1,doy:7}})}(a(421))},8361:function(e,t,a){!function(e){"use strict";e.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(a(421))},9565:function(e,t,a){!function(e){"use strict";var t="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function a(e,a,s,n){var i=function(e){var a=Math.floor(e%1e3/100),s=Math.floor(e%100/10),n=e%10,i="";return a>0&&(i+=t[a]+"vatlh"),s>0&&(i+=(""!==i?" ":"")+t[s]+"maH"),n>0&&(i+=(""!==i?" ":"")+t[n]),""===i?"pagh":i}(e);switch(s){case"ss":return i+" lup";case"mm":return i+" tup";case"hh":return i+" rep";case"dd":return i+" jaj";case"MM":return i+" jar";case"yy":return i+" DIS"}}e.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function(e){var t=e;return-1!==e.indexOf("jaj")?t.slice(0,-3)+"leS":-1!==e.indexOf("jar")?t.slice(0,-3)+"waQ":-1!==e.indexOf("DIS")?t.slice(0,-3)+"nem":t+" pIq"},past:function(e){var t=e;return-1!==e.indexOf("jaj")?t.slice(0,-3)+"Hu’":-1!==e.indexOf("jar")?t.slice(0,-3)+"wen":-1!==e.indexOf("DIS")?t.slice(0,-3)+"ben":t+" ret"},s:"puS lup",ss:a,m:"wa’ tup",mm:a,h:"wa’ rep",hh:a,d:"wa’ jaj",dd:a,M:"wa’ jar",MM:a,y:"wa’ DIS",yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(421))},6075:function(e,t,a){!function(e){"use strict";var t={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};e.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pzt_Sal_Çar_Per_Cum_Cmt".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),meridiem:function(e,t,a){return e<12?a?"öö":"ÖÖ":a?"ös":"ÖS"},meridiemParse:/öö|ÖÖ|ös|ÖS/,isPM:function(e){return"ös"===e||"ÖS"===e},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",w:"bir hafta",ww:"%d hafta",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(e,a){switch(a){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'ıncı";var s=e%10;return e+(t[s]||t[e%100-s]||t[e>=100?100:null])}},week:{dow:1,doy:7}})}(a(421))},1637:function(e,t,a){!function(e){"use strict";function t(e,t,a,s){var n={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",e+" secunds"],m:["'n míut","'iens míut"],mm:[e+" míuts",e+" míuts"],h:["'n þora","'iensa þora"],hh:[e+" þoras",e+" þoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",e+" ars"]};return s||t?n[a][0]:n[a][1]}e.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,t,a){return e>11?a?"d'o":"D'O":a?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(421))},4943:function(e,t,a){!function(e){"use strict";e.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(a(421))},8231:function(e,t,a){!function(e){"use strict";e.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})}(a(421))},7822:function(e,t,a){!function(e){"use strict";e.defineLocale("ug-cn",{months:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),monthsShort:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekdays:"يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"),weekdaysShort:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),weekdaysMin:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-يىلىM-ئاينىڭD-كۈنى",LLL:"YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm",LLLL:"dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm"},meridiemParse:/يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,meridiemHour:function(e,t){return 12===e&&(e=0),"يېرىم كېچە"===t||"سەھەر"===t||"چۈشتىن بۇرۇن"===t?e:"چۈشتىن كېيىن"===t||"كەچ"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,a){var s=100*e+t;return s<600?"يېرىم كېچە":s<900?"سەھەر":s<1130?"چۈشتىن بۇرۇن":s<1230?"چۈش":s<1800?"چۈشتىن كېيىن":"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"-كۈنى";case"w":case"W":return e+"-ھەپتە";default:return e}},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:7}})}(a(421))},7263:function(e,t,a){!function(e){"use strict";function t(e,t,a){return"m"===a?t?"хвилина":"хвилину":"h"===a?t?"година":"годину":e+" "+(s=+e,n={ss:t?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:t?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:t?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"}[a].split("_"),s%10==1&&s%100!=11?n[0]:s%10>=2&&s%10<=4&&(s%100<10||s%100>=20)?n[1]:n[2]);var s,n}function a(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}e.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:function(e,t){var a={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};return!0===e?a.nominative.slice(1,7).concat(a.nominative.slice(0,1)):e?a[/(\[[ВвУу]\]) ?dddd/.test(t)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(t)?"genitive":"nominative"][e.day()]:a.nominative},weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:a("[Сьогодні "),nextDay:a("[Завтра "),lastDay:a("[Вчора "),nextWeek:a("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return a("[Минулої] dddd [").call(this);case 1:case 2:case 4:return a("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:t,m:t,mm:t,h:"годину",hh:t,d:"день",dd:t,M:"місяць",MM:t,y:"рік",yy:t},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(e){return/^(дня|вечора)$/.test(e)},meridiem:function(e,t,a){return e<4?"ночі":e<12?"ранку":e<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}})}(a(421))},1769:function(e,t,a){!function(e){"use strict";var t=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],a=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];e.defineLocale("ur",{months:t,monthsShort:t,weekdays:a,weekdaysShort:a,weekdaysMin:a,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,a){return e<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(a(421))},4725:function(e,t,a){!function(e){"use strict";e.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}(a(421))},9736:function(e,t,a){!function(e){"use strict";e.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}})}(a(421))},9562:function(e,t,a){!function(e){"use strict";e.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,t,a){return e<12?a?"sa":"SA":a?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần trước lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",w:"một tuần",ww:"%d tuần",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(a(421))},7219:function(e,t,a){!function(e){"use strict";e.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(a(421))},6195:function(e,t,a){!function(e){"use strict";e.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}})}(a(421))},7289:function(e,t,a){!function(e){"use strict";e.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"下午"===t||"晚上"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,a){var s=100*e+t;return s<600?"凌晨":s<900?"早上":s<1130?"上午":s<1230?"中午":s<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:function(e){return e.week()!==this.week()?"[下]dddLT":"[本]dddLT"},lastDay:"[昨天]LT",lastWeek:function(e){return this.week()!==e.week()?"[上]dddLT":"[本]dddLT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s后",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",w:"1 周",ww:"%d 周",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}})}(a(421))},1589:function(e,t,a){!function(e){"use strict";e.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,a){var s=100*e+t;return s<600?"凌晨":s<900?"早上":s<1200?"上午":1200===s?"中午":s<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(a(421))},9708:function(e,t,a){!function(e){"use strict";e.defineLocale("zh-mo",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"D/M/YYYY",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,a){var s=100*e+t;return s<600?"凌晨":s<900?"早上":s<1130?"上午":s<1230?"中午":s<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(a(421))},3384:function(e,t,a){!function(e){"use strict";e.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,a){var s=100*e+t;return s<600?"凌晨":s<900?"早上":s<1130?"上午":s<1230?"中午":s<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(a(421))},421:function(e,t,a){(e=a.nmd(e)).exports=function(){"use strict";var t,s;function n(){return t.apply(null,arguments)}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function r(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function o(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function d(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(o(e,t))return!1;return!0}function l(e){return void 0===e}function u(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function c(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function _(e,t){var a,s=[],n=e.length;for(a=0;a>>0;for(t=0;t0)for(a=0;a=0?a?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+s}var P=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,j=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,O={},A={};function V(e,t,a,s){var n=s;"string"==typeof s&&(n=function(){return this[s]()}),e&&(A[e]=n),t&&(A[t[0]]=function(){return H(n.apply(this,arguments),t[1],t[2])}),a&&(A[a]=function(){return this.localeData().ordinal(n.apply(this,arguments),e)})}function E(e,t){return e.isValid()?(t=F(t,e.localeData()),O[t]=O[t]||function(e){var t,a,s,n=e.match(P);for(t=0,a=n.length;t=0&&j.test(e);)e=e.replace(j,s),j.lastIndex=0,a-=1;return e}var $={};function I(e,t){var a=e.toLowerCase();$[a]=$[a+"s"]=$[t]=e}function W(e){return"string"==typeof e?$[e]||$[e.toLowerCase()]:void 0}function N(e){var t,a,s={};for(a in e)o(e,a)&&(t=W(a))&&(s[t]=e[a]);return s}var R={};function U(e,t){R[e]=t}function z(e){return e%4==0&&e%100!=0||e%400==0}function B(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function q(e){var t=+e,a=0;return 0!==t&&isFinite(t)&&(a=B(t)),a}function Z(e,t){return function(a){return null!=a?(G(this,e,a),n.updateOffset(this,t),this):J(this,e)}}function J(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function G(e,t,a){e.isValid()&&!isNaN(a)&&("FullYear"===t&&z(e.year())&&1===e.month()&&29===e.date()?(a=q(a),e._d["set"+(e._isUTC?"UTC":"")+t](a,e.month(),He(a,e.month()))):e._d["set"+(e._isUTC?"UTC":"")+t](a))}var K,X=/\d/,Q=/\d\d/,ee=/\d{3}/,te=/\d{4}/,ae=/[+-]?\d{6}/,se=/\d\d?/,ne=/\d\d\d\d?/,ie=/\d\d\d\d\d\d?/,re=/\d{1,3}/,oe=/\d{1,4}/,de=/[+-]?\d{1,6}/,le=/\d+/,ue=/[+-]?\d+/,ce=/Z|[+-]\d\d:?\d\d/gi,_e=/Z|[+-]\d\d(?::?\d\d)?/gi,me=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;function he(e,t,a){K[e]=T(t)?t:function(e,s){return e&&a?a:t}}function pe(e,t){return o(K,e)?K[e](t._strict,t._locale):new RegExp(fe(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,a,s,n){return t||a||s||n}))))}function fe(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}K={};var ve={};function ge(e,t){var a,s,n=t;for("string"==typeof e&&(e=[e]),u(t)&&(n=function(e,a){a[t]=q(e)}),s=e.length,a=0;a68?1900:2e3)};var Ne=Z("FullYear",!0);function Re(e,t,a,s,n,i,r){var o;return e<100&&e>=0?(o=new Date(e+400,t,a,s,n,i,r),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,a,s,n,i,r),o}function Ue(e){var t,a;return e<100&&e>=0?((a=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,a)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function ze(e,t,a){var s=7+t-a;return-(7+Ue(e,0,s).getUTCDay()-t)%7+s-1}function Be(e,t,a,s,n){var i,r,o=1+7*(t-1)+(7+a-s)%7+ze(e,s,n);return o<=0?r=We(i=e-1)+o:o>We(e)?(i=e+1,r=o-We(e)):(i=e,r=o),{year:i,dayOfYear:r}}function qe(e,t,a){var s,n,i=ze(e.year(),t,a),r=Math.floor((e.dayOfYear()-i-1)/7)+1;return r<1?s=r+Ze(n=e.year()-1,t,a):r>Ze(e.year(),t,a)?(s=r-Ze(e.year(),t,a),n=e.year()+1):(n=e.year(),s=r),{week:s,year:n}}function Ze(e,t,a){var s=ze(e,t,a),n=ze(e+1,t,a);return(We(e)-s+n)/7}V("w",["ww",2],"wo","week"),V("W",["WW",2],"Wo","isoWeek"),I("week","w"),I("isoWeek","W"),U("week",5),U("isoWeek",5),he("w",se),he("ww",se,Q),he("W",se),he("WW",se,Q),ye(["w","ww","W","WW"],(function(e,t,a,s){t[s.substr(0,1)]=q(e)}));function Je(e,t){return e.slice(t,7).concat(e.slice(0,t))}V("d",0,"do","day"),V("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),V("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),V("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),V("e",0,0,"weekday"),V("E",0,0,"isoWeekday"),I("day","d"),I("weekday","e"),I("isoWeekday","E"),U("day",11),U("weekday",11),U("isoWeekday",11),he("d",se),he("e",se),he("E",se),he("dd",(function(e,t){return t.weekdaysMinRegex(e)})),he("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),he("dddd",(function(e,t){return t.weekdaysRegex(e)})),ye(["dd","ddd","dddd"],(function(e,t,a,s){var n=a._locale.weekdaysParse(e,s,a._strict);null!=n?t.d=n:p(a).invalidWeekday=e})),ye(["d","e","E"],(function(e,t,a,s){t[s]=q(e)}));var Ge="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Ke="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Xe="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Qe=me,et=me,tt=me;function at(e,t,a){var s,n,i,r=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)i=h([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(i,"").toLocaleLowerCase();return a?"dddd"===t?-1!==(n=Me.call(this._weekdaysParse,r))?n:null:"ddd"===t?-1!==(n=Me.call(this._shortWeekdaysParse,r))?n:null:-1!==(n=Me.call(this._minWeekdaysParse,r))?n:null:"dddd"===t?-1!==(n=Me.call(this._weekdaysParse,r))||-1!==(n=Me.call(this._shortWeekdaysParse,r))||-1!==(n=Me.call(this._minWeekdaysParse,r))?n:null:"ddd"===t?-1!==(n=Me.call(this._shortWeekdaysParse,r))||-1!==(n=Me.call(this._weekdaysParse,r))||-1!==(n=Me.call(this._minWeekdaysParse,r))?n:null:-1!==(n=Me.call(this._minWeekdaysParse,r))||-1!==(n=Me.call(this._weekdaysParse,r))||-1!==(n=Me.call(this._shortWeekdaysParse,r))?n:null}function st(){function e(e,t){return t.length-e.length}var t,a,s,n,i,r=[],o=[],d=[],l=[];for(t=0;t<7;t++)a=h([2e3,1]).day(t),s=fe(this.weekdaysMin(a,"")),n=fe(this.weekdaysShort(a,"")),i=fe(this.weekdays(a,"")),r.push(s),o.push(n),d.push(i),l.push(s),l.push(n),l.push(i);r.sort(e),o.sort(e),d.sort(e),l.sort(e),this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function nt(){return this.hours()%12||12}function it(e,t){V(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function rt(e,t){return t._meridiemParse}V("H",["HH",2],0,"hour"),V("h",["hh",2],0,nt),V("k",["kk",2],0,(function(){return this.hours()||24})),V("hmm",0,0,(function(){return""+nt.apply(this)+H(this.minutes(),2)})),V("hmmss",0,0,(function(){return""+nt.apply(this)+H(this.minutes(),2)+H(this.seconds(),2)})),V("Hmm",0,0,(function(){return""+this.hours()+H(this.minutes(),2)})),V("Hmmss",0,0,(function(){return""+this.hours()+H(this.minutes(),2)+H(this.seconds(),2)})),it("a",!0),it("A",!1),I("hour","h"),U("hour",13),he("a",rt),he("A",rt),he("H",se),he("h",se),he("k",se),he("HH",se,Q),he("hh",se,Q),he("kk",se,Q),he("hmm",ne),he("hmmss",ie),he("Hmm",ne),he("Hmmss",ie),ge(["H","HH"],De),ge(["k","kk"],(function(e,t,a){var s=q(e);t[De]=24===s?0:s})),ge(["a","A"],(function(e,t,a){a._isPm=a._locale.isPM(e),a._meridiem=e})),ge(["h","hh"],(function(e,t,a){t[De]=q(e),p(a).bigHour=!0})),ge("hmm",(function(e,t,a){var s=e.length-2;t[De]=q(e.substr(0,s)),t[Ye]=q(e.substr(s)),p(a).bigHour=!0})),ge("hmmss",(function(e,t,a){var s=e.length-4,n=e.length-2;t[De]=q(e.substr(0,s)),t[Ye]=q(e.substr(s,2)),t[Ce]=q(e.substr(n)),p(a).bigHour=!0})),ge("Hmm",(function(e,t,a){var s=e.length-2;t[De]=q(e.substr(0,s)),t[Ye]=q(e.substr(s))})),ge("Hmmss",(function(e,t,a){var s=e.length-4,n=e.length-2;t[De]=q(e.substr(0,s)),t[Ye]=q(e.substr(s,2)),t[Ce]=q(e.substr(n))}));var ot=Z("Hours",!0);var dt,lt={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Pe,monthsShort:je,week:{dow:0,doy:6},weekdays:Ge,weekdaysMin:Xe,weekdaysShort:Ke,meridiemParse:/[ap]\.?m?\.?/i},ut={},ct={};function _t(e,t){var a,s=Math.min(e.length,t.length);for(a=0;a0;){if(s=ht(n.slice(0,t).join("-")))return s;if(a&&a.length>=t&&_t(n,a)>=t-1)break;t--}i++}return dt}(e)}function gt(e){var t,a=e._a;return a&&-2===p(e).overflow&&(t=a[Le]<0||a[Le]>11?Le:a[we]<1||a[we]>He(a[be],a[Le])?we:a[De]<0||a[De]>24||24===a[De]&&(0!==a[Ye]||0!==a[Ce]||0!==a[Te])?De:a[Ye]<0||a[Ye]>59?Ye:a[Ce]<0||a[Ce]>59?Ce:a[Te]<0||a[Te]>999?Te:-1,p(e)._overflowDayOfYear&&(twe)&&(t=we),p(e)._overflowWeeks&&-1===t&&(t=Se),p(e)._overflowWeekday&&-1===t&&(t=xe),p(e).overflow=t),e}var yt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,kt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Mt=/Z|[+-]\d\d(?::?\d\d)?/,bt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],Lt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],wt=/^\/?Date\((-?\d+)/i,Dt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Yt={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Ct(e){var t,a,s,n,i,r,o=e._i,d=yt.exec(o)||kt.exec(o),l=bt.length,u=Lt.length;if(d){for(p(e).iso=!0,t=0,a=l;t7)&&(d=!0)):(i=e._locale._week.dow,r=e._locale._week.doy,l=qe(At(),i,r),a=xt(t.gg,e._a[be],l.year),s=xt(t.w,l.week),null!=t.d?((n=t.d)<0||n>6)&&(d=!0):null!=t.e?(n=t.e+i,(t.e<0||t.e>6)&&(d=!0)):n=i),s<1||s>Ze(a,i,r)?p(e)._overflowWeeks=!0:null!=d?p(e)._overflowWeekday=!0:(o=Be(a,s,n,i,r),e._a[be]=o.year,e._dayOfYear=o.dayOfYear)}(e),null!=e._dayOfYear&&(r=xt(e._a[be],s[be]),(e._dayOfYear>We(r)||0===e._dayOfYear)&&(p(e)._overflowDayOfYear=!0),a=Ue(r,0,e._dayOfYear),e._a[Le]=a.getUTCMonth(),e._a[we]=a.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=o[t]=s[t];for(;t<7;t++)e._a[t]=o[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[De]&&0===e._a[Ye]&&0===e._a[Ce]&&0===e._a[Te]&&(e._nextDay=!0,e._a[De]=0),e._d=(e._useUTC?Ue:Re).apply(null,o),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[De]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(p(e).weekdayMismatch=!0)}}function Pt(e){if(e._f!==n.ISO_8601)if(e._f!==n.RFC_2822){e._a=[],p(e).empty=!0;var t,a,s,i,r,o,d,l=""+e._i,u=l.length,c=0;for(d=(s=F(e._f,e._locale).match(P)||[]).length,t=0;t0&&p(e).unusedInput.push(r),l=l.slice(l.indexOf(a)+a.length),c+=a.length),A[i]?(a?p(e).empty=!1:p(e).unusedTokens.push(i),ke(i,a,e)):e._strict&&!a&&p(e).unusedTokens.push(i);p(e).charsLeftOver=u-c,l.length>0&&p(e).unusedInput.push(l),e._a[De]<=12&&!0===p(e).bigHour&&e._a[De]>0&&(p(e).bigHour=void 0),p(e).parsedDateParts=e._a.slice(0),p(e).meridiem=e._meridiem,e._a[De]=function(e,t,a){var s;return null==a?t:null!=e.meridiemHour?e.meridiemHour(t,a):null!=e.isPM?((s=e.isPM(a))&&t<12&&(t+=12),s||12!==t||(t=0),t):t}(e._locale,e._a[De],e._meridiem),null!==(o=p(e).era)&&(e._a[be]=e._locale.erasConvertYear(o,e._a[be])),Ht(e),gt(e)}else St(e);else Ct(e)}function jt(e){var t=e._i,a=e._f;return e._locale=e._locale||vt(e._l),null===t||void 0===a&&""===t?v({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),b(t)?new M(gt(t)):(c(t)?e._d=t:i(a)?function(e){var t,a,s,n,i,r,o=!1,d=e._f.length;if(0===d)return p(e).invalidFormat=!0,void(e._d=new Date(NaN));for(n=0;nthis?this:e:v()}));function Ft(e,t){var a,s;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return At();for(a=t[0],s=1;s=0?new Date(e+400,t,a)-ma:new Date(e,t,a).valueOf()}function fa(e,t,a){return e<100&&e>=0?Date.UTC(e+400,t,a)-ma:Date.UTC(e,t,a)}function va(e,t){return t.erasAbbrRegex(e)}function ga(){var e,t,a=[],s=[],n=[],i=[],r=this.eras();for(e=0,t=r.length;e(i=Ze(e,s,n))&&(t=i),Ma.call(this,e,t,a,s,n))}function Ma(e,t,a,s,n){var i=Be(e,t,a,s,n),r=Ue(i.year,0,i.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}V("N",0,0,"eraAbbr"),V("NN",0,0,"eraAbbr"),V("NNN",0,0,"eraAbbr"),V("NNNN",0,0,"eraName"),V("NNNNN",0,0,"eraNarrow"),V("y",["y",1],"yo","eraYear"),V("y",["yy",2],0,"eraYear"),V("y",["yyy",3],0,"eraYear"),V("y",["yyyy",4],0,"eraYear"),he("N",va),he("NN",va),he("NNN",va),he("NNNN",(function(e,t){return t.erasNameRegex(e)})),he("NNNNN",(function(e,t){return t.erasNarrowRegex(e)})),ge(["N","NN","NNN","NNNN","NNNNN"],(function(e,t,a,s){var n=a._locale.erasParse(e,s,a._strict);n?p(a).era=n:p(a).invalidEra=e})),he("y",le),he("yy",le),he("yyy",le),he("yyyy",le),he("yo",(function(e,t){return t._eraYearOrdinalRegex||le})),ge(["y","yy","yyy","yyyy"],be),ge(["yo"],(function(e,t,a,s){var n;a._locale._eraYearOrdinalRegex&&(n=e.match(a._locale._eraYearOrdinalRegex)),a._locale.eraYearOrdinalParse?t[be]=a._locale.eraYearOrdinalParse(e,n):t[be]=parseInt(e,10)})),V(0,["gg",2],0,(function(){return this.weekYear()%100})),V(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),ya("gggg","weekYear"),ya("ggggg","weekYear"),ya("GGGG","isoWeekYear"),ya("GGGGG","isoWeekYear"),I("weekYear","gg"),I("isoWeekYear","GG"),U("weekYear",1),U("isoWeekYear",1),he("G",ue),he("g",ue),he("GG",se,Q),he("gg",se,Q),he("GGGG",oe,te),he("gggg",oe,te),he("GGGGG",de,ae),he("ggggg",de,ae),ye(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,a,s){t[s.substr(0,2)]=q(e)})),ye(["gg","GG"],(function(e,t,a,s){t[s]=n.parseTwoDigitYear(e)})),V("Q",0,"Qo","quarter"),I("quarter","Q"),U("quarter",7),he("Q",X),ge("Q",(function(e,t){t[Le]=3*(q(e)-1)})),V("D",["DD",2],"Do","date"),I("date","D"),U("date",9),he("D",se),he("DD",se,Q),he("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),ge(["D","DD"],we),ge("Do",(function(e,t){t[we]=q(e.match(se)[0])}));var ba=Z("Date",!0);V("DDD",["DDDD",3],"DDDo","dayOfYear"),I("dayOfYear","DDD"),U("dayOfYear",4),he("DDD",re),he("DDDD",ee),ge(["DDD","DDDD"],(function(e,t,a){a._dayOfYear=q(e)})),V("m",["mm",2],0,"minute"),I("minute","m"),U("minute",14),he("m",se),he("mm",se,Q),ge(["m","mm"],Ye);var La=Z("Minutes",!1);V("s",["ss",2],0,"second"),I("second","s"),U("second",15),he("s",se),he("ss",se,Q),ge(["s","ss"],Ce);var wa,Da,Ya=Z("Seconds",!1);for(V("S",0,0,(function(){return~~(this.millisecond()/100)})),V(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),V(0,["SSS",3],0,"millisecond"),V(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),V(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),V(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),V(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),V(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),V(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),I("millisecond","ms"),U("millisecond",16),he("S",re,X),he("SS",re,Q),he("SSS",re,ee),wa="SSSS";wa.length<=9;wa+="S")he(wa,le);function Ca(e,t){t[Te]=q(1e3*("0."+e))}for(wa="S";wa.length<=9;wa+="S")ge(wa,Ca);Da=Z("Milliseconds",!1),V("z",0,0,"zoneAbbr"),V("zz",0,0,"zoneName");var Ta=M.prototype;function Sa(e){return e}Ta.add=aa,Ta.calendar=function(e,t){1===arguments.length&&(arguments[0]?ia(arguments[0])?(e=arguments[0],t=void 0):function(e){var t,a=r(e)&&!d(e),s=!1,n=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"];for(t=0;ta.valueOf():a.valueOf()9999?E(a,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):T(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",E(a,"Z")):E(a,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},Ta.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,a,s="moment",n="";return this.isLocal()||(s=0===this.utcOffset()?"moment.utc":"moment.parseZone",n="Z"),e="["+s+'("]',t=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY","-MM-DD[T]HH:mm:ss.SSS",a=n+'[")]',this.format(e+t+"-MM-DD[T]HH:mm:ss.SSS"+a)},"undefined"!=typeof Symbol&&null!=Symbol.for&&(Ta[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),Ta.toJSON=function(){return this.isValid()?this.toISOString():null},Ta.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},Ta.unix=function(){return Math.floor(this.valueOf()/1e3)},Ta.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},Ta.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},Ta.eraName=function(){var e,t,a,s=this.localeData().eras();for(e=0,t=s.length;ethis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},Ta.isLocal=function(){return!!this.isValid()&&!this._isUTC},Ta.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},Ta.isUtc=Zt,Ta.isUTC=Zt,Ta.zoneAbbr=function(){return this._isUTC?"UTC":""},Ta.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},Ta.dates=w("dates accessor is deprecated. Use date instead.",ba),Ta.months=w("months accessor is deprecated. Use month instead",$e),Ta.years=w("years accessor is deprecated. Use year instead",Ne),Ta.zone=w("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()})),Ta.isDSTShifted=w("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e,t={};return k(t,this),(t=jt(t))._a?(e=t._isUTC?h(t._a):At(t._a),this._isDSTShifted=this.isValid()&&function(e,t,a){var s,n=Math.min(e.length,t.length),i=Math.abs(e.length-t.length),r=0;for(s=0;s0):this._isDSTShifted=!1,this._isDSTShifted}));var xa=x.prototype;function Ha(e,t,a,s){var n=vt(),i=h().set(s,t);return n[a](i,e)}function Pa(e,t,a){if(u(e)&&(t=e,e=void 0),e=e||"",null!=t)return Ha(e,t,a,"month");var s,n=[];for(s=0;s<12;s++)n[s]=Ha(e,s,a,"month");return n}function ja(e,t,a,s){"boolean"==typeof e?(u(t)&&(a=t,t=void 0),t=t||""):(a=t=e,e=!1,u(t)&&(a=t,t=void 0),t=t||"");var n,i=vt(),r=e?i._week.dow:0,o=[];if(null!=a)return Ha(t,(a+r)%7,s,"day");for(n=0;n<7;n++)o[n]=Ha(t,(n+r)%7,s,"day");return o}xa.calendar=function(e,t,a){var s=this._calendar[e]||this._calendar.sameElse;return T(s)?s.call(t,a):s},xa.longDateFormat=function(e){var t=this._longDateFormat[e],a=this._longDateFormat[e.toUpperCase()];return t||!a?t:(this._longDateFormat[e]=a.match(P).map((function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e})).join(""),this._longDateFormat[e])},xa.invalidDate=function(){return this._invalidDate},xa.ordinal=function(e){return this._ordinal.replace("%d",e)},xa.preparse=Sa,xa.postformat=Sa,xa.relativeTime=function(e,t,a,s){var n=this._relativeTime[a];return T(n)?n(e,t,a,s):n.replace(/%d/i,e)},xa.pastFuture=function(e,t){var a=this._relativeTime[e>0?"future":"past"];return T(a)?a(t):a.replace(/%s/i,t)},xa.set=function(e){var t,a;for(a in e)o(e,a)&&(T(t=e[a])?this[a]=t:this["_"+a]=t);this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},xa.eras=function(e,t){var a,s,i,r=this._eras||vt("en")._eras;for(a=0,s=r.length;a=0)return d[s]},xa.erasConvertYear=function(e,t){var a=e.since<=e.until?1:-1;return void 0===t?n(e.since).year():n(e.since).year()+(t-e.offset)*a},xa.erasAbbrRegex=function(e){return o(this,"_erasAbbrRegex")||ga.call(this),e?this._erasAbbrRegex:this._erasRegex},xa.erasNameRegex=function(e){return o(this,"_erasNameRegex")||ga.call(this),e?this._erasNameRegex:this._erasRegex},xa.erasNarrowRegex=function(e){return o(this,"_erasNarrowRegex")||ga.call(this),e?this._erasNarrowRegex:this._erasRegex},xa.months=function(e,t){return e?i(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Oe).test(t)?"format":"standalone"][e.month()]:i(this._months)?this._months:this._months.standalone},xa.monthsShort=function(e,t){return e?i(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Oe.test(t)?"format":"standalone"][e.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},xa.monthsParse=function(e,t,a){var s,n,i;if(this._monthsParseExact)return Ee.call(this,e,t,a);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(n=h([2e3,s]),a&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")),a||this._monthsParse[s]||(i="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[s]=new RegExp(i.replace(".",""),"i")),a&&"MMMM"===t&&this._longMonthsParse[s].test(e))return s;if(a&&"MMM"===t&&this._shortMonthsParse[s].test(e))return s;if(!a&&this._monthsParse[s].test(e))return s}},xa.monthsRegex=function(e){return this._monthsParseExact?(o(this,"_monthsRegex")||Ie.call(this),e?this._monthsStrictRegex:this._monthsRegex):(o(this,"_monthsRegex")||(this._monthsRegex=Ve),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},xa.monthsShortRegex=function(e){return this._monthsParseExact?(o(this,"_monthsRegex")||Ie.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(o(this,"_monthsShortRegex")||(this._monthsShortRegex=Ae),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},xa.week=function(e){return qe(e,this._week.dow,this._week.doy).week},xa.firstDayOfYear=function(){return this._week.doy},xa.firstDayOfWeek=function(){return this._week.dow},xa.weekdays=function(e,t){var a=i(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Je(a,this._week.dow):e?a[e.day()]:a},xa.weekdaysMin=function(e){return!0===e?Je(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},xa.weekdaysShort=function(e){return!0===e?Je(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},xa.weekdaysParse=function(e,t,a){var s,n,i;if(this._weekdaysParseExact)return at.call(this,e,t,a);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(n=h([2e3,1]).day(s),a&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(n,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(n,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(n,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[s]||(i="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[s]=new RegExp(i.replace(".",""),"i")),a&&"dddd"===t&&this._fullWeekdaysParse[s].test(e))return s;if(a&&"ddd"===t&&this._shortWeekdaysParse[s].test(e))return s;if(a&&"dd"===t&&this._minWeekdaysParse[s].test(e))return s;if(!a&&this._weekdaysParse[s].test(e))return s}},xa.weekdaysRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||st.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(o(this,"_weekdaysRegex")||(this._weekdaysRegex=Qe),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},xa.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||st.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(o(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=et),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},xa.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||st.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(o(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=tt),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},xa.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},xa.meridiem=function(e,t,a){return e>11?a?"pm":"PM":a?"am":"AM"},pt("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===q(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),n.lang=w("moment.lang is deprecated. Use moment.locale instead.",pt),n.langData=w("moment.langData is deprecated. Use moment.localeData instead.",vt);var Oa=Math.abs;function Aa(e,t,a,s){var n=Kt(t,a);return e._milliseconds+=s*n._milliseconds,e._days+=s*n._days,e._months+=s*n._months,e._bubble()}function Va(e){return e<0?Math.floor(e):Math.ceil(e)}function Ea(e){return 4800*e/146097}function Fa(e){return 146097*e/4800}function $a(e){return function(){return this.as(e)}}var Ia=$a("ms"),Wa=$a("s"),Na=$a("m"),Ra=$a("h"),Ua=$a("d"),za=$a("w"),Ba=$a("M"),qa=$a("Q"),Za=$a("y");function Ja(e){return function(){return this.isValid()?this._data[e]:NaN}}var Ga=Ja("milliseconds"),Ka=Ja("seconds"),Xa=Ja("minutes"),Qa=Ja("hours"),es=Ja("days"),ts=Ja("months"),as=Ja("years");var ss=Math.round,ns={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function is(e,t,a,s,n){return n.relativeTime(t||1,!!a,e,s)}var rs=Math.abs;function os(e){return(e>0)-(e<0)||+e}function ds(){if(!this.isValid())return this.localeData().invalidDate();var e,t,a,s,n,i,r,o,d=rs(this._milliseconds)/1e3,l=rs(this._days),u=rs(this._months),c=this.asSeconds();return c?(e=B(d/60),t=B(e/60),d%=60,e%=60,a=B(u/12),u%=12,s=d?d.toFixed(3).replace(/\.?0+$/,""):"",n=c<0?"-":"",i=os(this._months)!==os(c)?"-":"",r=os(this._days)!==os(c)?"-":"",o=os(this._milliseconds)!==os(c)?"-":"",n+"P"+(a?i+a+"Y":"")+(u?i+u+"M":"")+(l?r+l+"D":"")+(t||e||d?"T":"")+(t?o+t+"H":"")+(e?o+e+"M":"")+(d?o+s+"S":"")):"P0D"}var ls=It.prototype;return ls.isValid=function(){return this._isValid},ls.abs=function(){var e=this._data;return this._milliseconds=Oa(this._milliseconds),this._days=Oa(this._days),this._months=Oa(this._months),e.milliseconds=Oa(e.milliseconds),e.seconds=Oa(e.seconds),e.minutes=Oa(e.minutes),e.hours=Oa(e.hours),e.months=Oa(e.months),e.years=Oa(e.years),this},ls.add=function(e,t){return Aa(this,e,t,1)},ls.subtract=function(e,t){return Aa(this,e,t,-1)},ls.as=function(e){if(!this.isValid())return NaN;var t,a,s=this._milliseconds;if("month"===(e=W(e))||"quarter"===e||"year"===e)switch(t=this._days+s/864e5,a=this._months+Ea(t),e){case"month":return a;case"quarter":return a/3;case"year":return a/12}else switch(t=this._days+Math.round(Fa(this._months)),e){case"week":return t/7+s/6048e5;case"day":return t+s/864e5;case"hour":return 24*t+s/36e5;case"minute":return 1440*t+s/6e4;case"second":return 86400*t+s/1e3;case"millisecond":return Math.floor(864e5*t)+s;default:throw new Error("Unknown unit "+e)}},ls.asMilliseconds=Ia,ls.asSeconds=Wa,ls.asMinutes=Na,ls.asHours=Ra,ls.asDays=Ua,ls.asWeeks=za,ls.asMonths=Ba,ls.asQuarters=qa,ls.asYears=Za,ls.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*q(this._months/12):NaN},ls._bubble=function(){var e,t,a,s,n,i=this._milliseconds,r=this._days,o=this._months,d=this._data;return i>=0&&r>=0&&o>=0||i<=0&&r<=0&&o<=0||(i+=864e5*Va(Fa(o)+r),r=0,o=0),d.milliseconds=i%1e3,e=B(i/1e3),d.seconds=e%60,t=B(e/60),d.minutes=t%60,a=B(t/60),d.hours=a%24,r+=B(a/24),o+=n=B(Ea(r)),r-=Va(Fa(n)),s=B(o/12),o%=12,d.days=r,d.months=o,d.years=s,this},ls.clone=function(){return Kt(this)},ls.get=function(e){return e=W(e),this.isValid()?this[e+"s"]():NaN},ls.milliseconds=Ga,ls.seconds=Ka,ls.minutes=Xa,ls.hours=Qa,ls.days=es,ls.weeks=function(){return B(this.days()/7)},ls.months=ts,ls.years=as,ls.humanize=function(e,t){if(!this.isValid())return this.localeData().invalidDate();var a,s,n=!1,i=ns;return"object"==typeof e&&(t=e,e=!1),"boolean"==typeof e&&(n=e),"object"==typeof t&&(i=Object.assign({},ns,t),null!=t.s&&null==t.ss&&(i.ss=t.s-1)),s=function(e,t,a,s){var n=Kt(e).abs(),i=ss(n.as("s")),r=ss(n.as("m")),o=ss(n.as("h")),d=ss(n.as("d")),l=ss(n.as("M")),u=ss(n.as("w")),c=ss(n.as("y")),_=i<=a.ss&&["s",i]||i0,_[4]=s,is.apply(null,_)}(this,!n,i,a=this.localeData()),n&&(s=a.pastFuture(+this,s)),a.postformat(s)},ls.toISOString=ds,ls.toString=ds,ls.toJSON=ds,ls.locale=oa,ls.localeData=la,ls.toIsoString=w("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",ds),ls.lang=da,V("X",0,0,"unix"),V("x",0,0,"valueOf"),he("x",ue),he("X",/[+-]?\d+(\.\d{1,3})?/),ge("X",(function(e,t,a){a._d=new Date(1e3*parseFloat(e))})),ge("x",(function(e,t,a){a._d=new Date(q(e))})),n.version="2.29.4",t=At,n.fn=Ta,n.min=function(){return Ft("isBefore",[].slice.call(arguments,0))},n.max=function(){return Ft("isAfter",[].slice.call(arguments,0))},n.now=function(){return Date.now?Date.now():+new Date},n.utc=h,n.unix=function(e){return At(1e3*e)},n.months=function(e,t){return Pa(e,t,"months")},n.isDate=c,n.locale=pt,n.invalid=v,n.duration=Kt,n.isMoment=b,n.weekdays=function(e,t,a){return ja(e,t,a,"weekdays")},n.parseZone=function(){return At.apply(null,arguments).parseZone()},n.localeData=vt,n.isDuration=Wt,n.monthsShort=function(e,t){return Pa(e,t,"monthsShort")},n.weekdaysMin=function(e,t,a){return ja(e,t,a,"weekdaysMin")},n.defineLocale=ft,n.updateLocale=function(e,t){if(null!=t){var a,s,n=lt;null!=ut[e]&&null!=ut[e].parentLocale?ut[e].set(S(ut[e]._config,t)):(null!=(s=ht(e))&&(n=s._config),t=S(n,t),null==s&&(t.abbr=e),(a=new x(t)).parentLocale=ut[e],ut[e]=a),pt(e)}else null!=ut[e]&&(null!=ut[e].parentLocale?(ut[e]=ut[e].parentLocale,e===pt()&&pt(e)):null!=ut[e]&&delete ut[e]);return ut[e]},n.locales=function(){return D(ut)},n.weekdaysShort=function(e,t,a){return ja(e,t,a,"weekdaysShort")},n.normalizeUnits=W,n.relativeTimeRounding=function(e){return void 0===e?ss:"function"==typeof e&&(ss=e,!0)},n.relativeTimeThreshold=function(e,t){return void 0!==ns[e]&&(void 0===t?ns[e]:(ns[e]=t,"s"===e&&(ns.ss=t-1),!0))},n.calendarFormat=function(e,t){var a=e.diff(t,"days",!0);return a<-6?"sameElse":a<-1?"lastWeek":a<0?"lastDay":a<1?"sameDay":a<2?"nextDay":a<7?"nextWeek":"sameElse"},n.prototype=Ta,n.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},n}()},3490:function(e,t){var a,s;a=function e(){"use strict";var t="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==t?t:{},a=!t.document&&!!t.postMessage,s=t.IS_PAPA_WORKER||!1,n={},i=0,r={parse:function(a,s){var o=(s=s||{}).dynamicTyping||!1;if(M(o)&&(s.dynamicTypingFunction=o,o={}),s.dynamicTyping=o,s.transform=!!M(s.transform)&&s.transform,s.worker&&r.WORKERS_SUPPORTED){var d=function(){if(!r.WORKERS_SUPPORTED)return!1;var a,s,o=(a=t.URL||t.webkitURL||null,s=e.toString(),r.BLOB_URL||(r.BLOB_URL=a.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",s,")();"],{type:"text/javascript"})))),d=new t.Worker(o);return d.onmessage=f,d.id=i++,n[d.id]=d}();return d.userStep=s.step,d.userChunk=s.chunk,d.userComplete=s.complete,d.userError=s.error,s.step=M(s.step),s.chunk=M(s.chunk),s.complete=M(s.complete),s.error=M(s.error),delete s.worker,void d.postMessage({input:a,config:s,workerId:d.id})}var m=null;return r.NODE_STREAM_INPUT,"string"==typeof a?(a=function(e){return 65279===e.charCodeAt(0)?e.slice(1):e}(a),m=s.download?new l(s):new c(s)):!0===a.readable&&M(a.read)&&M(a.on)?m=new _(s):(t.File&&a instanceof File||a instanceof Object)&&(m=new u(s)),m.stream(a)},unparse:function(e,t){var a=!1,s=!0,n=",",i="\r\n",o='"',d=o+o,l=!1,u=null,c=!1;!function(){if("object"==typeof t){if("string"!=typeof t.delimiter||r.BAD_DELIMITERS.filter((function(e){return-1!==t.delimiter.indexOf(e)})).length||(n=t.delimiter),("boolean"==typeof t.quotes||"function"==typeof t.quotes||Array.isArray(t.quotes))&&(a=t.quotes),"boolean"!=typeof t.skipEmptyLines&&"string"!=typeof t.skipEmptyLines||(l=t.skipEmptyLines),"string"==typeof t.newline&&(i=t.newline),"string"==typeof t.quoteChar&&(o=t.quoteChar),"boolean"==typeof t.header&&(s=t.header),Array.isArray(t.columns)){if(0===t.columns.length)throw new Error("Option columns is empty");u=t.columns}void 0!==t.escapeChar&&(d=t.escapeChar+o),("boolean"==typeof t.escapeFormulae||t.escapeFormulae instanceof RegExp)&&(c=t.escapeFormulae instanceof RegExp?t.escapeFormulae:/^[=+\-@\t\r].*$/)}}();var _=new RegExp(h(o),"g");if("string"==typeof e&&(e=JSON.parse(e)),Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return m(null,e,l);if("object"==typeof e[0])return m(u||Object.keys(e[0]),e,l)}else if("object"==typeof e)return"string"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields||u),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:"object"==typeof e.data[0]?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||"object"==typeof e.data[0]||(e.data=[e.data])),m(e.fields||[],e.data||[],l);throw new Error("Unable to serialize unrecognized input");function m(e,t,a){var r="";"string"==typeof e&&(e=JSON.parse(e)),"string"==typeof t&&(t=JSON.parse(t));var o=Array.isArray(e)&&0=this._config.preview;if(s)t.postMessage({results:o,workerId:r.WORKER_ID,finished:l});else if(M(this._config.chunk)&&!a){if(this._config.chunk(o,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);o=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(o.data),this._completeResults.errors=this._completeResults.errors.concat(o.errors),this._completeResults.meta=o.meta),this._completed||!l||!M(this._config.complete)||o&&o.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),l||o&&o.meta.paused||this._nextChunk(),o}this._halted=!0},this._sendError=function(e){M(this._config.error)?this._config.error(e):s&&this._config.error&&t.postMessage({workerId:r.WORKER_ID,error:e,finished:!1})}}function l(e){var t;(e=e||{}).chunkSize||(e.chunkSize=r.RemoteChunkSize),d.call(this,e),this._nextChunk=a?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(t=new XMLHttpRequest,this._config.withCredentials&&(t.withCredentials=this._config.withCredentials),a||(t.onload=k(this._chunkLoaded,this),t.onerror=k(this._chunkError,this)),t.open(this._config.downloadRequestBody?"POST":"GET",this._input,!a),this._config.downloadRequestHeaders){var e=this._config.downloadRequestHeaders;for(var s in e)t.setRequestHeader(s,e[s])}if(this._config.chunkSize){var n=this._start+this._config.chunkSize-1;t.setRequestHeader("Range","bytes="+this._start+"-"+n)}try{t.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}a&&0===t.status&&this._chunkError()}},this._chunkLoaded=function(){4===t.readyState&&(t.status<200||400<=t.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:t.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(e){var t=e.getResponseHeader("Content-Range");return null===t?-1:parseInt(t.substring(t.lastIndexOf("/")+1))}(t),this.parseChunk(t.responseText)))},this._chunkError=function(e){var a=t.statusText||e;this._sendError(new Error(a))}}function u(e){var t,a;(e=e||{}).chunkSize||(e.chunkSize=r.LocalChunkSize),d.call(this,e);var s="undefined"!=typeof FileReader;this.stream=function(e){this._input=e,a=e.slice||e.webkitSlice||e.mozSlice,s?((t=new FileReader).onload=k(this._chunkLoaded,this),t.onerror=k(this._chunkError,this)):t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(t.error)}}function c(e){var t;d.call(this,e=e||{}),this.stream=function(e){return t=e,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var e,a=this._config.chunkSize;return a?(e=t.substring(0,a),t=t.substring(a)):(e=t,t=""),this._finished=!t,this.parseChunk(e)}}}function _(e){d.call(this,e=e||{});var t=[],a=!0,s=!1;this.pause=function(){d.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){d.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){s&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):a=!0},this._streamData=k((function(e){try{t.push("string"==typeof e?e:e.toString(this._config.encoding)),a&&(a=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}}),this),this._streamError=k((function(e){this._streamCleanUp(),this._sendError(e)}),this),this._streamEnd=k((function(){this._streamCleanUp(),s=!0,this._streamData("")}),this),this._streamCleanUp=k((function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)}),this)}function m(e){var t,a,s,n=Math.pow(2,53),i=-n,o=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,d=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,l=this,u=0,c=0,_=!1,m=!1,f=[],v={data:[],errors:[],meta:{}};if(M(e.step)){var g=e.step;e.step=function(t){if(v=t,L())b();else{if(b(),0===v.data.length)return;u+=t.data.length,e.preview&&u>e.preview?a.abort():(v.data=v.data[0],g(v,l))}}}function k(t){return"greedy"===e.skipEmptyLines?""===t.join("").trim():1===t.length&&0===t[0].length}function b(){return v&&s&&(D("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+r.DefaultDelimiter+"'"),s=!1),e.skipEmptyLines&&(v.data=v.data.filter((function(e){return!k(e)}))),L()&&function(){if(v)if(Array.isArray(v.data[0])){for(var t=0;L()&&t=f.length?"__parsed_extra":f[s]),e.transform&&(r=e.transform(r,i)),r=w(i,r),"__parsed_extra"===i?(n[i]=n[i]||[],n[i].push(r)):n[i]=r}return e.header&&(s>f.length?D("FieldMismatch","TooManyFields","Too many fields: expected "+f.length+" fields but parsed "+s,c+a):s=s.length/2?"\r\n":"\r"}(n,d)),s=!1,e.delimiter)M(e.delimiter)&&(e.delimiter=e.delimiter(n),v.meta.delimiter=e.delimiter);else{var l=function(t,a,s,n,i){var o,d,l,u;i=i||[",","\t","|",";",r.RECORD_SEP,r.UNIT_SEP];for(var c=0;c=o)return B(!0)}else for($=u,u++;;){if(-1===($=r.indexOf(t,$+1)))return m||b.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:k.length,index:u}),U();if($===p-1)return U(r.substring(u,$).replace(F,t));if(t!==l||r[$+1]!==l){if(t===l||0===$||r[$-1]!==l){-1!==V&&V<$+1&&(V=r.indexOf(a,$+1)),-1!==E&&E<$+1&&(E=r.indexOf(s,$+1));var I=R(-1===E?V:Math.min(V,E));if(r.substr($+1+I,f)===a){L.push(r.substring(u,$).replace(F,t)),r[u=$+1+I+f]!==t&&($=r.indexOf(t,u)),V=r.indexOf(a,u),E=r.indexOf(s,u);break}var W=R(E);if(r.substring($+1+W,$+1+W+v)===s){if(L.push(r.substring(u,$).replace(F,t)),z($+1+W+v),V=r.indexOf(a,u),$=r.indexOf(t,u),y&&(q(),c))return B();if(o&&k.length>=o)return B(!0);break}b.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:k.length,index:u}),$++}}else $++}return U();function N(e){k.push(e),w=u}function R(e){var t=0;if(-1!==e){var a=r.substring($+1,e);a&&""===a.trim()&&(t=a.length)}return t}function U(e){return m||(void 0===e&&(e=r.substring(u)),L.push(e),u=p,N(L),y&&q()),B()}function z(e){u=e,N(L),L=[],E=r.indexOf(s,u)}function B(e){return{data:k,errors:b,meta:{delimiter:a,linebreak:s,aborted:c,truncated:!!e,cursor:w+(_||0)}}}function q(){i(B()),k=[],b=[]}},this.abort=function(){c=!0},this.getCharIndex=function(){return u}}function f(e){var t=e.data,a=n[t.workerId],s=!1;if(t.error)a.userError(t.error,t.file);else if(t.results&&t.results.data){var i={abort:function(){s=!0,v(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:g,resume:g};if(M(a.userStep)){for(var r=0;r{var s,n,i;!function(r){"use strict";n=[a(5311)],s=function(e){var t,a=window.Slick||{};(t=0,a=function(a,s){var n,i=this;i.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:e(a),appendDots:e(a),arrows:!0,asNavFor:null,prevArrow:'',nextArrow:'',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(t,a){return e('